01
解法
Paxos是公认的共识算法,但难以理解且难以实现,因此基于它的生产系统容易出现微妙缺陷,这些缺陷只在领导者故障时才会显现。
Raft以不同的优先级编写:它在容错性和性能上与Paxos相当,区别在于它被设计为易于理解。其作者将共识分解为领导者选举、按顺序复制的日志以及一条安全规则。
这种分离让更广泛的受众能够正确实现它。可理解性被视为首要需求,结果是产生了一种团队能够真正推理并部署的共识算法。
02
取得了什么结果
为必须验证它的人类设计算法
03
为什么有效
可理解的阶段对应于程序员能够验证的内容。
共识中的聪明才智往往滋生实现缺陷。
更广泛的正确采用胜过微弱的性能优势。
04
可以借鉴什么
当正确性依赖于许多其他人的正确性时,让困难的事情易于验证;仅仅聪明的设计会通过缺陷花费更多,而不是在优雅上获得收益。
05
后续
Raft被etcd、Consul、CockroachDB等许多分布式系统采用,并成为工程师学习和构建共识的默认方式。
从这里,追溯依据
参考来源
- In Search of an Understandable Consensus Algorithm (Raft) Stanford University · raft.github.io
- etcd documentation etcd · etcd.io