Support generic cross-DC replication plans
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
We need to change DatabaseConfiguration to allow specifying many more cross-DC replication plans. Some DCs may want synchronous replication, while others that are farther away may want async replication.
Affected code:
* Data distribution needs to track each DC separately. Currently it only tracks up to two DCs based on the remote TLog replication value.
* New epoch needs to process the new DatabaseConfiguration and start appropriate log sets.
* Multiple async replicas for different DCs requires a lot of work handling log router tags.
* Consider cross logSet anti-quorums so you could wait for mutations to be durable in 2 out of 3 DCs.
* Cluster controller log recruitment and better master exists needs to change
* How to specify and change the configuration from fdbcli (or a new tool)
Contributor guide
Research direction
Start with DatabaseConfiguration and the affected data distribution, new epoch, log router tags, cluster controller log recruitment, and fdbcli areas listed in the issue. Done means supporting multiple synchronous and asynchronous cross-DC replication plans, including the proposed quorum behavior and configuration workflow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100