-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
area/ysqlYugabyte SQL (YSQL)Yugabyte SQL (YSQL)kind/enhancementThis is an enhancement of an existing featureThis is an enhancement of an existing featurepriority/mediumMedium priority issueMedium priority issueroadmap-tracking-issueThis issue tracks a major roadmap item, and usually appears in the roadmap list.This issue tracks a major roadmap item, and usually appears in the roadmap list.
Description
Jira Link: DB-1590
Add support for PostgreSQL-style partitions and row-level geo-partitioned tables. Note that table partitioning support is a pre-requisite for row-level geo-partitioning. With this feature, we can control the placement of rows into partitions as well as the physical placement of partitions (into different geographic regions for example). This can help with the following:
- Reduce latencies by keeping data closer to users
- Simplify implementing regulatory compliance such as GDPR
- Tier data (hot / cold, old / new) to appropriate tiers
Prerequisites
Status | Feature |
---|---|
✅ | Design doc for YSQL table partitioning |
⬜️ | Design doc for geo-partitioned tables |
Phase 1 - Table Partitions
Status | Feature |
---|---|
✅ | Support creating LIST partitions and basic operations (INSERT , UPDATE , SELECT , DELETE ) |
✅ | Support RANGE and HASH partitions (note these are different from range and hash shards) |
✅ | Other operations and options on partitions (attach and detaching partitions, sub-partitions) |
✅ | Support cross-partition UPDATE operations |
✅ | Port over PostgreSQL unit tests to ensure most features are covered and work as expected |
Phase 2 - Geo-partitioning support
Status | Feature | GitHub Issue | Comments |
---|---|---|---|
✅ | Ability to override placement policy at a per-partition (per-table) level in DocDB | - | PR #5368 |
✅ | YSQL syntax (Tablespaces) to query/specify placement info for a table | #6497, #6638 | - |
Phase 3 - Further Enhancements
Status | Feature | GitHub Issue | Comments |
---|---|---|---|
⬜️ | Support a way to read from local partitions first | #10477 | Main task complete, enhancements in progress |
✅ | Geo-partitioning support for the transaction status table | #9980 | Complete |
⬜️ | Support per-region backup | #8732 | Backend changes complete, UI changes pending |
⬜️ | Remove dependency on WHERE clause | #11688 | - |
⬜️ | Support unique key constraint across partitions | - | |
⬜️ | Support colocation of geo-partitioned tables | #5823 | - |
trho, bithavoc, macneib, orhanhenrik, azam and 6 moresdil and SebJansen
Metadata
Metadata
Assignees
Labels
area/ysqlYugabyte SQL (YSQL)Yugabyte SQL (YSQL)kind/enhancementThis is an enhancement of an existing featureThis is an enhancement of an existing featurepriority/mediumMedium priority issueMedium priority issueroadmap-tracking-issueThis issue tracks a major roadmap item, and usually appears in the roadmap list.This issue tracks a major roadmap item, and usually appears in the roadmap list.
Type
Projects
Status
No status