feat: use native PG17+ logical slot failover; retire spock worker on PG18#432
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 19 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
…PG18 Backport of PR #409 (SPOC-74) from main, squashed into a single commit. - On PG17+, all logical replication slots are created with the FAILOVER flag, enabling PostgreSQL's built-in slotsync worker to synchronize them to physical standbys automatically. - On PG18+, spock_failover_slots background worker is not registered; the native slotsync worker fully replaces it. - On PG17, spock's worker remains active but yields (skips its sync loop) when sync_replication_slots = on is set, preventing conflicts. - Fix PG15/16 failover slot loss on promotion: reconnect with retry and guard against zero WAL flush LSN. - ZODAN: upgrade wait_for_sync_event calls to 5-arg form with timeout result checking; raise EXCEPTION on timeout/failure. - Add tests/tap/t/018_failover_slots.pl and schedule entry. - Add docs/logical_slot_failover.md and configuring.md section. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1e02249 to
88013e7
Compare
Backport of PR #409 (SPOC-74) from main, squashed into a single commit.
flag, enabling PostgreSQL's built-in slotsync worker to synchronize
them to physical standbys automatically.
the native slotsync worker fully replaces it.
loop) when sync_replication_slots = on is set, preventing conflicts.
and guard against zero WAL flush LSN.
result checking; raise EXCEPTION on timeout/failure.
🤖 Generated with Claude Code