Скажем, у меня в плоту 3 узла. Из-за сбоя сети узел 3 отделен от двух других узлов. Затем узел 3 просто всегда становится кандидатом, отправляет аргументы requestVote другим и обнаруживает, что не может получить достаточно голосов. Затем узел 3 увеличивает срок действия и снова пытается запросить голоса. Таким образом, срок узла 3 значительно больше, чем у других, которые фиксируют журналы 102, 103, 104, 105
.
Через некоторое время сеть восстанавливается, и узел 3 снова присоединяется к группе и становится последователем. Однако из-за большого срока он всегда отклоняет AppendEntries от лидера (узел 1). Как узел 3 может восстановить логи от 102 до 105?
Node 1(leader):
* logs [101, 102, 103, 104, 105]
* term [1, 2, 2, 2, 2 ...]
Node 2 (follower)
* logs [101, 102, 103, 104, 105]
* term [1, 2, 2, 2, 2 ...]
Node 3
* logs [101]
* term [1, 2, 3, 4, 5 ...]