Репликация и отказоустойчивость Yandex StoreDoc
Yandex StoreDoc поддерживает репликацию по умолчанию: если в кластере есть больше 1 активного хоста, среди них автоматически выбирается первичная реплика (мастер), обрабатывающая запросы на запись.
При переключении первичной реплики вручную Yandex StoreDoc автоматически выберет новую из доступных хостов.
Отказоустойчивость
Чтобы хосты кластера могли при необходимости автоматически выбирать первичную реплику, абсолютное большинство хостов должно быть работоспособно. Поэтому экономичнее разворачивать кластеры с нечетным количеством хостов. Например, кластер с 3 хостами может потерять 1 хост и продолжить работу, но кластер с 4 хостами также может потерять не более 1 хоста — при потере второго хоста оставшихся не хватит, чтобы выбрать новую первичную реплику.
Кластер из 2 хостов не обеспечивает полной отказоустойчивости по той же причине: единственный оставшийся хост не сможет назначить себя первичной репликой самостоятельно. В этой ситуации кластер может обрабатывать только запросы на чтение.
Назначение мастером другого хоста при выходе из строя основного мастера
Если хост-мастер выйдет из строя, то Yandex StoreDoc автоматически выберет новый хост-мастер из доступных хостов.
Повлиять на выбор мастера в кластере Yandex StoreDoc можно с помощью настройки приоритетов для хостов кластера. Новым мастером станет хост с наибольшим приоритетом.
Задать приоритет хоста можно с помощью YC CLI, API или Terraform:
- при создании кластера или хоста в кластере;
- при изменении настроек хоста.
Минимальное значение (наименьший приоритет) — 0. Хост с таким приоритетом может стать мастером, только если нет других подходящих на роль мастера хостов. Значение приоритета по умолчанию — 1. Возможен ввод значения больше 100.