It's challenging to design, to implement or to detect bugs in the realm of distributed consensus, and even a small problem could result in data loss. This repo is a list of distributed consensus protocol's bugs, flaws, deceptive traps, and improvements.
Type | description |
---|---|
Bug | a bug that will break the consensus. |
Trap | not a bug, but somehow misleading. People may believe it is a bug. |
Suboptimal | a solution that works, but not in the best way. |
Optimize | Improvement to a current design. |
Variant | Another way to implement a consensus. |
- Paxos: (Trap): The Bug in Paxos Made Simple | 🌎 中文版
- Paxos: (Optimize): Asymmetric Acceptors | 🌎 中文版
- Paxos/Raft: (Generalize): Round Number Reversion | 🌎 中文版
- Paxos: (Generalize): Partial Order Round Number = Paxos + 2PC | 🌎 中文版
- Raft: (Suboptimal): Leader Step Down | 🌎 中文版
- Raft: (Optimize): Commit log via RequestVote RPC | 🌎 中文版
- Raft: (Optimize): ReadIndex: Less Wait | 🌎 中文版
Contribution
Thank you for sharing a distributed consensus bug/issue. Even a small problem could result in data loss.