Postgres 16 highlight: Logical decoding on standby
summary
Postgres 16 implements logical decoding on standby by moving decoding off the primary, adding code to detect catalog vs non‑catalog WAL conflicts, passing relation objects into recovery functions, and adding a WAL flag so logical WAL is decoded only after replay. Demos show decoding from standby, subscriptions created against a standby, and promotion without breaking decoding. Work is eight commits, large test coverage, and a planned slot synchronization planned for 17 (primary→standby automatic recreation of failoverable slots).
AI-written summary · about
chapters (23)
- 0:00Introduction to talk
- 1:32What is logical decoding on standby
- 2:36History and challenges faced
- 5:12Catalog conflicts and solutions
- 10:38Feedback setting workaround
- 12:09Detecting and handling conflicts
- 12:58Promotion and logical decoding
- 13:42Logical vs physical WAL records
- 15:51Testing and development effort
- 16:38Live demo introduction
- 17:37Demo: Logical decoding in PostgreSQL 15
- 18:22Demo: New feature in PostgreSQL 16
- 20:11Demo: Subscribing from standby
- 21:51Demo: Cascading standby scenario
- 23:44Demo: Conflict demonstration
- 26:45Demo: World level conflicts
- 28:20Demo: Slot synchronization
- 30:26Q&A: Plans for PostgreSQL 17
- 32:38Q&A: Testing and impact of changes
- 34:51Q&A: Performance and testing details
- 35:37Q&A: Multiple standby slots
- 36:00Q&A: Plugin compatibility
- 36:56Q&A: Conflict resolution summary
related talks
22mHazards of logical decoding in PostgreSQL
31mPast, Present, and Future: Logical Decoding and Replication in PostgreSQL
54mUnderstanding Logical Decoding and Replication
24mPostgreSQL physical replication - internals, latest development and opportunities
43mPostgreSQL 17 and beyond
53mThe journey towards active replication in PostgreSQL
46mPostgreSQL 16 and beyond
29mLogical replication theory and concepts
