An open API service indexing awesome lists of open source software.

https://github.com/drmingdrmer/consensus-essence

distributed consensus protocol's bugs, flaws, deceptive traps, improvements
https://github.com/drmingdrmer/consensus-essence

distributed-systems paxos raft

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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](src/list/classic-paxos-forget-decided-value/classic-paxos-forget-decided-value.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/classic-paxos-forget-decided-value/classic-paxos-forget-decided-value.cn.md)
- [Paxos: (Optimize): Asymmetric Acceptors](src/list/asymmetric-paxos/asymmetric-paxos.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/asymmetric-paxos/asymmetric-paxos.cn.md)
- [Paxos/Raft: (Generalize): Round Number Reversion](src/list/paxos-revert-rnd/paxos-revert-rnd.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/paxos-revert-rnd/paxos-revert-rnd.cn.md)
- [Paxos: (Generalize): Partial Order Round Number = Paxos + 2PC](src/list/paxos-partial-order-rnd/paxos-partial-order-rnd.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/paxos-partial-order-rnd/paxos-partial-order-rnd.cn.md)
- [Raft: (Suboptimal): Leader Step Down](src/list/raft-leader-step-down/raft-leader-step-down.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/raft-leader-step-down/raft-leader-step-down.cn.md)
- [Raft: (Optimize): Commit log via RequestVote RPC](src/list/raft-election-append-entries/raft-election-append-entries.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/raft-election-append-entries/raft-election-append-entries.cn.md)
- [Raft: (Optimize): ReadIndex: Less Wait](src/list/raft-read-index/raft-read-index.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/raft-read-index/raft-read-index.cn.md)
- [Raft: (Optimize): ReadIndex: Less Latency through Relaxed Ordering](src/list/raft-read-index-relaxed-order/raft-read-index-relaxed-order.md)
| 🌎 [δΈ­ζ–‡η‰ˆ](src/list/raft-read-index-relaxed-order/raft-read-index-relaxed-order-cn.md)
| by [neog24](https://github.com/neog24)

---

**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](src/list).

- Update the link entries in [README.md](README.md).