Raft — различия между версиями
Yeputons (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 3: | Строка 3: | ||
В отличие от [[Paxos]] он не опускает деталей: помимо решения [[Консенсус в распределённой системе|задачи консенсуса]] подробно описывает и выбор лидера, и синхронизацию журнала операций между репликами. | В отличие от [[Paxos]] он не опускает деталей: помимо решения [[Консенсус в распределённой системе|задачи консенсуса]] подробно описывает и выбор лидера, и синхронизацию журнала операций между репликами. | ||
− | Можно прочитать [http://blog.egrik.ru/2015/10/raft.html беглое описание], посмотреть [http://thesecretlivesofdata.com/raft/ интерактивную презентацию] для введения и посмотреть [https://raft.github.io/ официальный сайт] (с визуализацией и возможностью поиграться). | + | Также одна из целей Raft — быть понятным. |
+ | Можно прочитать [http://blog.egrik.ru/2015/10/raft.html беглое описание на русском], посмотреть [http://thesecretlivesofdata.com/raft/ интерактивную презентацию] для введения и посмотреть [https://raft.github.io/ официальный сайт] (с визуализацией и возможностью поиграться) и [https://raft.github.io/raft.pdf исходную статью] (там чётко выписано состояние процессов, все сообщения и правила). | ||
+ | |||
+ | В визуализации точкой помечен <code>matchIndex[]</code> (лидер знает, что до этого места лог follower'а совпадает с логом лидера), а стрелочкой — <code>nextIndex[]</code> (что лидер попробует прислать follower'у). | ||
== Алгоритм == | == Алгоритм == | ||
+ | === Состояние узлов === | ||
=== Выбор лидера === | === Выбор лидера === | ||
=== Репликация логов === | === Репликация логов === |
Текущая версия на 19:08, 4 сентября 2022
Raft — алгоритм для решения задачи Replicated State Machine. В отличие от Paxos он не опускает деталей: помимо решения задачи консенсуса подробно описывает и выбор лидера, и синхронизацию журнала операций между репликами.
Также одна из целей Raft — быть понятным. Можно прочитать беглое описание на русском, посмотреть интерактивную презентацию для введения и посмотреть официальный сайт (с визуализацией и возможностью поиграться) и исходную статью (там чётко выписано состояние процессов, все сообщения и правила).
В визуализации точкой помечен matchIndex[]
(лидер знает, что до этого места лог follower'а совпадает с логом лидера), а стрелочкой — nextIndex[]
(что лидер попробует прислать follower'у).