Я изучаю Raft с нуля с помощью Raft paper, и я не могу понять лидера избирательный процесс. Я прочитал в 5.4.1, что лидер должен иметь в своем журнале все зафиксированные записи кластера:
Raft использует более простой подход, при котором он гарантирует, что все зафиксированные записи из предыдущих условий присутствуют на каждом новом лидере с момента его избрания, без необходимости передавать эти записи лидеру.
Raft использует процесс голосования, чтобы предотвратить победу кандидата на выборах, если его журнал не содержит всех зафиксированных записей.
Но позже говорят, что кандидат хранит все зафиксированные записи, если они, по крайней мере, так же актуальны, как и любой другой журнал в большинстве. И механизм для определения этой актуальности - это сравнение индекса и срока последних записей. Журнал с более высоким сроком на последней записи будет более актуальным.
Не могло ли это привести к ситуации, когда лидер был избран без всех предыдущих заявленных записей? Например:
В этом случае, если сервер 4 выйдет из строя, сервер 2 может стать лидером, поскольку у него есть запись с большим сроком, чем у большинства. Но в его журнале не было бы двух зафиксированных записей из условия 2. Верно? Я что-то неправильно понимаю, но могу понять, что это такое ...