Track invalidation_reason in pg_replication_slots.
Amit Kapila <akapila@postgresql.org>
Track invalidation_reason in pg_replication_slots. Till now, the reason for replication slot invalidation is not tracked directly in pg_replication_slots. A recent commit 007693f2a3 added 'conflict_reason' to show the reasons for slot conflict/invalidation, but only for logical slots. This commit adds a new column 'invalidation_reason' to show invalidation reasons for both physical and logical slots. And, this commit also turns 'conflict_reason' text column to 'conflicting' boolean column (effectively reverting commit 007693f2a3). The 'conflicting' column is true for invalidation reasons 'rows_removed' and 'wal_level_insufficient' because those make the slot conflict with recovery. When 'conflicting' is true, one can now look at the new 'invalidation_reason' column for the reason for the logical slot's conflict with recovery. The new 'invalidation_reason' column will also be useful to track other invalidation reasons in the future commit. Author: Bharath Rupireddy Reviewed-by: Bertrand Drouvot, Amit Kapila, Shveta Malik Discussion: https://www.postgresql.org/message-id/ZfR7HuzFEswakt/a%40ip-10-97-1-34.eu-west-3.compute.internal Discussion: https://www.postgresql.org/message-id/CALj2ACW4aUe-_uFQOjdWCEN-xXoLGhmvRFnL8SNw_TZ5nJe+aw@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/ref/pgupgrade.sgml | modified | +2 −2 |
| doc/src/sgml/system-views.sgml | modified | +18 −7 |
| src/backend/catalog/system_views.sql | modified | +2 −1 |
| src/backend/replication/logical/slotsync.c | modified | +1 −1 |
| src/backend/replication/slot.c | modified | +23 −26 |
| src/backend/replication/slotfuncs.c | modified | +18 −7 |
| src/bin/pg_upgrade/info.c | modified | +2 −2 |
| src/include/catalog/catversion.h | modified | +1 −1 |
| src/include/catalog/pg_proc.dat | modified | +3 −3 |
| src/include/replication/slot.h | modified | +1 −1 |
| src/test/recovery/t/035_standby_logical_decoding.pl | modified | +18 −17 |
| src/test/recovery/t/040_standby_failover_slots_sync.pl | modified | +2 −2 |
| src/test/regress/expected/rules.out | modified | +3 −2 |
Documentation touched
Discussion
- Introduce XID age and inactive timeout based replication slot invalidation 414 messages · 2024-01-11 → 2025-02-20