Когда термин начинается и заканчивается в Плоте? - PullRequest
0 голосов
/ 10 января 2020

Я читал статью "В поисках понятного алгоритма консенсуса". Меня смущает, как работает «термин».

У меня две мысли.

  1. Термин начинается с выборов и заканчивается следующими выборами. Следующие выборы могут произойти из-за вздора нынешнего лидера. Пока текущий лидер работает отлично, срок может длиться очень долго.

  2. Окончание срока определяется, когда он начинается. Например, после того, как сервер выигрывает выборы, срок начинается и заканчивается через 30 минут. Затем через 30 минут лидер перестает посылать биения, чтобы вызвать новые выборы.

Так, какой из них правильный? Я чувствую, что первая мысль имеет больше смысла и обеспечивает лучшую производительность.

1 Ответ

0 голосов
/ 11 января 2020

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

Также обратите внимание, что термины на самом деле не имеют четко определенных (глобальных) начало и конец из-за асинхронного характера общения и сложности закрепления понятия времени в распределенной системе. Узел может полагать, что термин все еще продолжается, хотя все остальные узлы считают, что он не запущен или завершился.

...