TermId в алгоритме выборов лидера плота? - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь понять алгоритм консенсуса на плоту, пытаясь его реализовать, но я не понял, это алгоритм выбора лидера, termId увеличивается, когда один узел переходит от последователя состояния к кандидату, но как мы можем быть уверенным, что фактический приращенный терминид обновлен, и нет другого узла, который в будущем будет иметь такой же термин?

1 Ответ

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

Нет гарантии, что в будущем другой узел не будет пытаться повторно использовать termId, который уже использовался.

Но это все хорошо для Рафта. Если будет пир, который попытается начать выборы с помощью termId, который ниже текущего termId, голосование не будет предоставлено.

Этот узел, который начал выборы, получит ответ RP C, содержащий текущий termId кластера, и ему потребуется обновить его состояние, чтобы оно соответствовало текущему состоянию системы, поворачиваясь к подписчику и изменяя его. termId.

По сути, каждый раз, когда одноранговый узел получает ответ или запрос с помощью termId, который выше, чем его "local" termId, этому узлу необходимо обновить свое локальное состояние и обратиться к подписчику.

...