Первичные выборы с приоритетом в MongoDB - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть мой монго кластер в 3 DC.

DC1 - 3 узла DC2 - 3 узла DC3 - 3 узла

DC1 имеет высокий приоритет, за ним следуют DC2 и затем DC3.Таким образом, DC1 будет отдан 1-й приоритет для ПЕРВИЧНЫХ выборов, за которыми следует DC2, а затем DC3.

Предположим, один из узлов в DC1 является первичным, а данные синхронизируются с DC3, но не в DC2.Теперь DC1 понижается.Из-за приоритета один из узлов в DC2 должен стать ПЕРВИЧНЫМ, но он устарел.Итак, какой узел станет ПЕРВИЧНЫМ?Это будет один из узлов из DC2 или один из узлов из DC3?

1 Ответ

0 голосов
/ 17 сентября 2018

MongoDB применяет операции базы данных на первичном сервере, а затем записывает операции в оплог первичного сервера. Затем вторичные члены копируют и применяют эти операции в асинхронном процессе.

Настройки приоритетов членов набора реплик влияют как на время, так и на исход выборов в первичную группу. Члены с более высоким приоритетом более могут назначить выборы и более могут победить. Они могут победить, но не обязательно.

Оплог определяет, какой узел должен стать основным. Сначала вторичный сервер (на короткое время) с более низким приоритетом может стать первичным, если у него больше оплогов (т. Е. Он обновлен). После того, как набор реплик имеет стабильный первичный, алгоритм выбора предпримет попытку «из лучших сил» получить второстепенные с наивысшим приоритетом называют выборы Экземпляр с более низким приоритетом может быть выбран в качестве основного для коротких периодов, даже если доступен вторичный объект с более высоким приоритетом. Члены набора реплик продолжают назначать выборы до тех пор, пока доступный элемент с самым высоким приоритетом не станет основным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...