TermId в алгоритме выбора лидера плота?

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


person pinotto    schedule 25.01.2020    source источник


Ответы (1)


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

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

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

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

person msantl    schedule 27.01.2020