У меня есть следующий вопрос о реализации RAFT:
Рассмотрим следующий сценарий \ реализацию:
- Лидер RAFT получает ввод команды, он добавляет запись к массиву в памяти, а затем отправляет записи последователям (с тактовым импульсом)
- Последователи получают запись и добавляют ее в свой массив в памяти, а затем отправляют ответ, что он получил запись.
- Затем лидер фиксирует запись, записывая ее в долговременное хранилище (файл). Лидер отправляет последний индекс фиксации в тактовом импульсе.
- Затем последователи фиксируют записи на основе индекса фиксации лидера, сохраняя запись в своем долговременном хранилище (файле).
Одна из реализаций RAFT (ссылка: https://github.com/peterbourgon/raft/) похоже, реализует это таким образом. Я хотел подтвердить, хорошо ли это.
Можно ли, если записи хранятся «в памяти» лидером и последователями до тех пор, пока они не будут зафиксированы? При каких обстоятельствах этот сценарий может потерпеть неудачу?