Parallel Recovery in PostgreSQL
summary
Prototype adds a parallel recovery engine to startup that reads WAL into a shared circular WAL buffer and dispatches records to reader/distributor/block/txn/invalid-page workers; block workers replay page-oriented WAL in parallel while a txn worker serializes commits and prepare/commit-prepared points. Implementation uses shared memory, spinlocks, Unix domain sockets and POSIX message queues, runs under PG 14/15 branches, is ~7k lines of patch (≈4k without debug), defaults off, appears functional but lacks full resource-manager testing and measured performance.
AI-written summary · about
chapters (7)
- 0:00Start
- 7:37EDB Motivation of parallelism in the recovery?
- 10:45EDB Basic idea of constraints in parallel replay
- 16:06EDB Worker processes for parallel recovery (cont.) ⚫ Block worker (multiple, configurable)
- 25:34EDB Transaction status
- 28:00EDB Synchronization among workers
- 38:51EDB Issues for discussion
related talks
24mPostgreSQL physical replication - internals, latest development and opportunities
22mPostgreSQL Disaster Recovery Fundamentals
38mParallelism in PostgreSQL 15
22mSecuring Postgres with streaming replication
31mPostgreSQL WAL and Commit Synchronization, Optimization Opportunities
33mFun with Postgres High Availability Poker
55mHigh Availability with PostgreSQL and Pacemaker
43mPostgreSQL 17 and beyond
