apple / apple/foundationdb

Support generic cross-DC replication plans

Open
#323 2 comments 5 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.