Не забывайте, что эти изменения уже сохранены в журнале плота.Плот даже не гарантирует, что как только изменение будет зафиксировано, x (например, записать изменение в другой файл) произойдет в течение любого периода времени.Так что
C не будет иметь данных "abc"
Это не точно.Данные были сохранены в журнале плота, они просто не были записаны в какой-либо другой файл после их фиксации.Здесь вы описываете поведение постоянного конечного автомата, в котором данные сохраняются в каком-то отдельном хранилище , после они фиксируются в журнале Raft.Но не забывайте, что фиксация данных в журнале Raft равносильна его сохранению.
Постоянные конечные автоматы имеют требования, выходящие за рамки базового протокола Raft, и больше о них можно найти в диссертации raft.Как правило, в постоянном автомате состояний необходимо сохранить индекс lastApplied
в дополнение к term
и votedFor
.Поскольку записи фиксируются и применяются к постоянному конечному автомату (например, записываются в файл данных на каждом узле), индекс lastApplied
сохраняется.Записи не удаляются из журнала плотов, пока они не будут успешно применены.Таким образом вы гарантируете, что ваши данные "abc"
не будут потеряны, даже если они не могут быть записаны в файл на узле C
.