Implement Clustering (VSR)
- Dominant language
- Rust
- Stars
- 4.9k
- Forks
- 432
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 173
Description
### This issue provides insight into the technical details of implementing View-stamped Replication for Apache Iggy.
[Viewstamped Replication](http://pmg.csail.mit.edu/papers/vr-revisited.pdf)
- [ ] Clocking mechanism
- [Algorithm](https://en.wikipedia.org/wiki/Marzullo%27s_algorithm)
- [Cluster Time](https://tigerbeetle.com/blog/three-clocks-are-better-than-one/)
- [ ] Quorum
- To be finalized: [Heidi Howard’s flexible quorums](https://arxiv.org/pdf/1608.06696v1)
- [ ] Internode Wire Protocol
**Extras**
- [ ] Storage Fault Tolerance/Protocol Aware Recovery
- [ ] Handle grey failures
- [ ] Deterministic Testing - no Async libraries? [tokio](https://turso.tech/blog/a-deep-look-into-our-new-massive-multitenant-architecture)
**Inspiration**
[Tigerbeetle implements VSR in a Financial Database](https://tigerbeetle.com/)
**Relevant Issues**
- https://github.com/apache/iggy/issues/1291#issue-2583940703
Contributor guide
Research direction
Start with the linked View-stamped Replication paper, the clocking and quorum references, and relevant issue #1291; the issue names no source files, tests, or entry points. Define the clustering design around clocking, quorum, and the internode wire protocol, then address the listed fault-tolerance and deterministic-testing extras as scope is finalized.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100