#Регионы приёма
Регион — это точка, куда агент пишет и откуда читает. У каждого свой путь: агент не ходит через общий вход, а работает с регионом напрямую, поэтому и задержка, и пропускная способность зависят только от маршрута до него.
Регион фиксируется у объекта в момент открытия сессии и потом не меняется. Перенести уже принятый объект в другой регион нельзя — только записать заново.
#Как выбирается регион
Порядок простой и обрывается на первом совпадении:
-
Поле region при открытии сессии
Явное указание всегда сильнее остального. Если региона с таким кодом нет, придёт 400.
-
Регион по умолчанию из токена
Задаётся при выпуске токена. Обычный способ: администратор выдаёт агентам московского контура токены с регионом ru, и в конфиге агента про регион нет ни слова.
-
Регион пространства
Последний рубеж, если токен выпущен без региона. Меняется в кабинете и влияет только на новые сессии.
Автоматического выбора «ближайшего» региона нет и не планируется. Для резервных копий предсказуемость важнее пары десятков миллисекунд: администратор должен знать, в какой юрисдикции лежат данные, не заглядывая в логи.
#Надёжность хранения
Внутри региона каждая часть объекта лежит в трёх копиях на разных дисковых узлах. Потеря одного узла не задевает ни чтение, ни приём: недостающая копия восстанавливается из двух оставшихся в фоне.
Целостность проверяется дважды — при записи и при выдаче. У каждой части хранится её отпечаток; если он разошёлся, часть считается битой, отдаётся не она, а восстановленная копия, и в кабинете появляется запись в журнале.
Данные не покидают регион
Мы сознательно не делаем копий между регионами. Клиенту, который выбрал ru, важно, чтобы данные физически оставались там, а не разъезжались по площадкам в других юрисдикциях. Если вам нужна копия в двух странах — заведите два пространства с разными регионами и пишите в оба; так решение остаётся вашим и видимым.
Из этого следует ограничение, о котором лучше знать заранее: регион — это единица отказа. Если площадка целиком недоступна, объекты этого региона недоступны вместе с ней, и восстановление придётся ждать. Для действительно критичных копий держите второе пространство в другом регионе.
#Режим только для чтения
Во время работ регион переводится в режим чтения: выгрузка и докачка уже открытых сессий работают, новые сессии не открываются и получают E1102.
Агенты узнают об этом заранее — событием region.readonly в канале синхронизации. Правильная реакция агента: отложить копию до снятия режима, а не пытаться открыть сессию по кругу.
Плановые работы объявляются на странице статуса минимум за трое суток. Внеплановый перевод в чтение возможен — так мы разбираем аварии, не теряя доступ к уже сохранённым данным.