Я пытаюсь понять алгоритм консенсуса рафта для его реализации, чего я не понял, так это алгоритма выбора лидера, termId увеличивается, когда один узел переходит от ведомого государства к кандидату, но как мы можем быть уверены, что фактический увеличенный termid является актуальным, и нет другого узла, который в будущем будет иметь такой же termid?
TermId в алгоритме выбора лидера плота?
Ответы (1)
Нет никакой гарантии, что в будущем другой узел не попытается повторно использовать termId, который уже был использован.
Но для Рафта это нормально. Если будет одноранговый узел, который пытается начать выборы с termId, который меньше текущего termId, голос не будет предоставлен.
Этот одноранговый узел, который начал выборы, получит ответ RPC, содержащий текущий termId кластера, и ему потребуется обновить его состояние, чтобы оно соответствовало текущему состоянию системы, повернувшись к ведомому и изменив его termId.
По сути, каждый раз, когда одноранговый узел получает ответ или запрос с termId, превышающим его "локальный" termId, этот одноранговый узел должен обновить свое локальное состояние и обратиться к подписчику.
person
msantl
schedule
27.01.2020