Когда лидер получает запись в журнале, он копирует его на другие серверы в кластере. Затем он фиксирует запись и сообщает другим серверам также зафиксировать. Здесь, по-видимому, есть два случая:
1) Лидер совершает запись, а затем сообщает другим серверам также зафиксировать.
2) Лидер сообщает всем, что совершает, а затем он это делает.Состояние гонки в RAFT?
В # 1, если лидер падает, прежде чем сообщать другим о совершении, то делает ли кто-либо, кто станет новым лидером, запись, даже если она не совершена? Если нет, то у нас есть несколько журналов, которые не синхронизированы для последней записи. (Старый лидер применил бы это, а другой не имел бы.) Если да, то как он знает, что это нормально, чтобы зафиксировать это?
В случае, если лидер падает до того, как он может совершить ошибку, тогда все остальные узлы потерпят крах после того, как они совершают, а затем на выборах, старый лидер снова станет новым лидером, а затем другие серверы совершили записи, которые нового лидера нет. Что происходит в этом случае?
BTW форум 'raft-dev' - отличное место, где можно задавать эти вопросы. Я не уверен, что Диего следует за этим тегом: https://groups.google.com/forum/m/#!forum/raft-dev – kuujo