citusdata / citusdata/citus

Replicated table improvements

Open
#5,450 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.