consensus-essence icon indicating copy to clipboard operation
consensus-essence copied to clipboard

distributed consensus protocol's bugs, flaws, deceptive traps, improvements

Distributed Consensus Essence

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.

Ideas

  • 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.

  • Update or add a snippet in the src/list.

  • Update the link entries in README.md.