形式陈述
Raft 把复制日志共识分为 leader election、log replication 和 safety。时间划分为任期,每任期至多一个获多数票 leader;leader 只在当前任期条目复制到多数后推进提交,并用日志匹配与选举限制保证已提交条目不会丢失。标准模型容忍少于半数崩溃,活性依赖最终存在足够长的通信稳定期和随机化超时。
直觉
大多数时间只让一个 leader 排序客户端命令;多数交集和任期规则确保新 leader 携带所有已提交历史。
例子与边界
五节点集群可容忍两节点故障。旧 leader 网络隔离后可能继续接受请求,但无法获得多数提交;新任期消息会使其退位。Raft 的“易理解”不代表协议证明简单,成员变更需 joint consensus 等专门机制。
推论与应用
Raft 用于配置服务、元数据存储和复制状态机,是工程中常见的崩溃容错共识协议。
参考资料
- Diego Ongaro and John Ousterhout, In Search of an Understandable Consensus Algorithm, USENIX ATC 2014,pp. 305–319。
- Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。