consensus
共识算法通常伴随着复制状态机(replicated state machines)问题,它是分布式系统能够容错的基础,多台服务器就一系列值达成一致,一旦它们就某个值做出决定,该决定就不能被改变。
任何具有 TAV 特性的算法都可以被认为在解决共识问题
- termination: all non-faulty processes make a decision
- agreement: all deciding processes make the same decision
- validity: some process proposed the decision
- Impossibility of Distributed Consensus with One Faulty Process
- Paxos Made Simple
- Paxos Made Live
- Viewstamped Replication
- Zab: High-performance broadcast for primary-backup systems
- Vive La Difference: Paxos vs. Viewstamped Replication vs. Zab
- In Search of an Understandable Consensus Algorithm
- Paxos vs Raft: have we reached consensus on distributed consensus?
Further readings
[1] Disk Paxos by Eli Gafni & Leslie Lamport, 2002
[2] The ABCD’s of Paxos by Butler W. Lampson, PODC 2001
[3] Paxos for System Builders: An Overview and The Complete Specification by Yair Amir and Jonathan Kirsch, 2008
[4] How to Build a Highly Available System Using Consensus by Butler W. Lampson, 1996
[5] There is no now by Justin Sheehy, 2015
References
[1] Can’t we all just agree?
[2] Distributed Consensus Reading List 📚 maintained by Heidi Howard