На рисунке 8 (d) записи с термином 2 отсутствуют в локальном журнале лидера S5, поэтому они не считаются зафиксированными. Можно перезаписать их записями с термином 3. Только записи в текущем журнале лидера могут считаться зафиксированными путем подсчета количества реплик.

тубумага раздел 5.4.2

Если один из лидеров потерпит крах перед тем, как совершить запись, будущие лидеры попытаются завершить репликацию записи. Однако лидер не может сразу сделать вывод о том, что запись из предыдущего термина фиксируется, как только она сохраняется на большинстве серверов. Может возникнуть ситуация, когда старая запись журнала хранится на большинстве серверов, но все же может быть перезаписана будущим лидером.

Автор отметил, что, чтобы избежать ситуации выше

Чтобы устранить проблемы, подобные той, что показана на рисунке 8, Raft никогда не фиксирует записи в журналах из предыдущих терминов путем подсчета реплик. Только записи журнала с текущего срока лидера фиксируются путем подсчета реплик; как только запись из текущего термина была зафиксирована таким образом, то все предыдущие записи фиксируются косвенно из-за свойства соответствия журнала.

Но разве такая же проблема не возникнет?

Учитывая следующую ситуацию, которую предоставил автор

когдаS5 избранный лидер, он смотрит только на свой текущий зафиксированный журнал, который(term3, index1) и это собирается переопределитьterm2 записи во всех подписчиках.

Как решение проблемы с помощью лидера, смотрящего на свой собственный журнал?

Ответы на вопрос(3)

Ваш ответ на вопрос