Replicated table improvements
- Dominant language
- C
- Stars
- 12.8k
- Forks
- 794
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 31
Description
Although Citus currently suggesting/supporting replication via PostgreSQL's replication tools (see the [blog](https://www.citusdata.com/blog/2016/12/15/citus-replication-model-today-and-tomorrow/)), there is also the legacy statement based replication via `citus.shard_replication_factor` = 2.
Now that we prevent 1PC and shard state changes via #5379, #5380 and #5381, we can remove some limitations around replicated tables.
- [ ] Enable modifications on replicated partitioned tables (we currently only allow modifications over parent)
- [ ] Consider https://github.com/citusdata/citus/pull/5392/files#r748288532
- [ ] Enable foreign keys between replicated tables (we currently only allow foreign keys between distributed tables when replication == 1). See https://github.com/citusdata/citus/pull/5392#discussion_r744681709
Contributor guide
Research direction
Start by reading the linked Citus replication blog and the discussion in pull request #5392, along with issues #5379, #5380, and #5381. Investigate how replicated partitioned-table modifications and foreign keys between replicated tables are currently restricted. Done means both listed limitations are removed without reintroducing the prevented 1PC or shard-state-change behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, sql
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100