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
- Host: GitHub
- URL: https://github.com/drmingdrmer/consensus-essence
- Owner: drmingdrmer
- License: apache-2.0
- Created: 2022-03-19T11:34:05.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-11T07:45:35.000Z (about 1 year ago)
- Last Synced: 2024-04-14T02:29:30.291Z (about 1 year ago)
- Topics: distributed-systems, paxos, raft
- Language: Makefile
- Homepage:
- Size: 11.1 MB
- Stars: 100
- Watchers: 4
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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).