Есть ли какая-либо гарантия прекращения выборов лидера алгоритма плота? - PullRequest
0 голосов
/ 08 ноября 2019

Я пытался понять, как алгоритм Рафта преодолевает теорему ФЛП. Для того чтобы FLP был действительным, согласованный алгоритм должен быть детерминированным, завершающим и асинхронным. Как говорит докторская диссертация об алгоритме консенсуса по Плоту ,

К сожалению, трудно установить ограничение по времени или количеству сообщений, которые получат выборы лидера. Согласно результату невозможности FLP [28], ни один отказоустойчивый консенсусный протокол не может окончательно завершиться в чисто асинхронной модели. Это проявляется в разделении голосов в Плоте, что потенциально может неоднократно препятствовать прогрессу во время выборов лидера. Плот также использует случайные тайм-ауты во время выборов лидера, что делает его анализ вероятностным. Таким образом, мы можем только сказать, что выборы лидера проходят хорошо с высокой вероятностью, и даже тогда только при различных предположениях. Например, серверы должны выбирать тайм-ауты из случайного распределения (они не каким-то образом синхронизированы), часы должны работать с примерно одинаковыми скоростями, а серверы и сети должны быть своевременными (или остановлены). Если эти предположения не будут выполнены в течение некоторого периода времени, кластер не сможет выбрать лидера в течение этого периода (хотя безопасность всегда будет поддерживаться).

Так что, даже если это труднопоставить ограничение на время или количество сообщений, которые примут выборы лидера. Можно ли гарантировать, что в любом случае в конечном итоге будет избран лидер? Если нет, то в каком случае выборы лидера никогда не прекратятся?

1 Ответ

0 голосов
/ 08 ноября 2019

У вас нет гарантии, что в всех случаях лидер будет в конечном итоге избран. Существует лишь высокая вероятность того, что выборы лидера пройдут хорошо.

В приведенной вами цитате приведен пример случая:

Например, серверы должны выбрать тайм-ауты изслучайное распределение (они не каким-то образом синхронизированы), часы должны работать примерно с одинаковой скоростью, а серверы и сети должны быть своевременными (или остановленными). Если эти предположения не будут выполнены в течение некоторого периода времени, кластер не сможет выбрать лидера в течение этого периода (хотя безопасность всегда будет поддерживаться).

...