Zero-downtime Postgres major upgrades
Physical2logical + PAUSE/RESUME technique for true zero-downtime, reversible, zero-data-loss Postgres major version upgrades. Battle-tested on mission-critical clusters with dozens of terabytes of data and 100,000s TPS.
Three critical guarantees
Our solution delivers all three essential characteristics for enterprise-grade major upgrades for Postgres:
- Zero downtime
- Reversible
- Zero data loss (in both directions)
The problem
Traditional Postgres major version upgrades require:
- Hours of downtime for multi-terabyte databases if you want to properly test things (otherwise, operations like
ANALYZEcan take significant time and are not automated) - Complete database shutdown during
pg_upgrade - Irreversible process — no easy way back if issues arise
- Hard to test and verify procedures for various issues like incompatibilities
- Risks of plan flips and performance regressions after upgrade
Our solution: Four-component approach
A complete system:
- Reliable, safe, battle-proven
physical2logicalconversion technique for zero data loss - PgBouncer's
PAUSE/RESUMEfor true zero-downtime connection management - Reverse replication enabling full reversibility — go back if needed with zero data loss
- Extensive testing before deployment including for plan flips and compatibility issues
Case studies
- GitLab's conference talks about their zero-downtime upgrade experience
- pganalyze technical review of zero-downtime upgrade approaches including our method
- Gadget's zero-downtime upgrade of their core production database from Postgres 13 to 15
- More cases (TBD)
Get preview access
This solution is fully developed and battle-tested. We're offering preview access to select enterprise customers.