Консенсус позволяет узлам согласовать один порядок изменений несмотря на отдельные отказы. В Raft лидер реплицирует журнал, записи фиксируются по правилам большинства, а сроки полномочий помогают безопасно менять лидера.
Как работает алгоритм консенсуса, например Raft или Paxos? Зачем он нужен в распределенных базах данных и хранилищах конфигураций, таких как etcd или Consul?
Консенсус позволяет узлам согласовать один порядок изменений несмотря на отдельные отказы. В Raft лидер реплицирует журнал, записи фиксируются по правилам большинства, а сроки полномочий помогают безопасно менять лидера.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Консенсус позволяет узлам согласовать один порядок изменений несмотря на отдельные отказы. В Raft лидер реплицирует журнал, записи фиксируются по правилам большинства, а сроки полномочий помогают безопасно менять лидера.
Пересечение кворумов и правила выбора лидера защищают уже подтверждённые записи от исчезновения при смене лидера. При потере большинства система обычно жертвует возможностью новых подтверждённых записей, а не создаёт две независимые истины. Консенсус нужен для конфигурации, locks и метаданных с сильной согласованностью. Он не решает произвольные внешние эффекты и не защищает сам по себе от византийских участников; модель отказов должна быть явно определена.
Источник: raft.github.io.