pgsql: Track last_inactive_time in pg_replication_slots.
Amit Kapila <akapila@postgresql.org>
From: Amit Kapila <akapila@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Date: 2024-03-25T11:11:27Z
Lists: pgsql-hackers
Track last_inactive_time in pg_replication_slots. This commit adds a new property called last_inactive_time for slots. It is set to 0 whenever a slot is made active/acquired and set to the current timestamp whenever the slot is inactive/released or restored from the disk. Note that we don't set the last_inactive_time for the slots currently being synced from the primary to the standby because such slots are typically inactive as decoding is not allowed on those. The 'last_inactive_time' will be useful on production servers to debug and analyze inactive replication slots. It will also help to know the lifetime of a replication slot - one can know how long a streaming standby, logical subscriber, or replication slot consumer is down. The 'last_inactive_time' will also be useful to implement inactive timeout-based replication slot invalidation in a future commit. Author: Bharath Rupireddy Reviewed-by: Bertrand Drouvot, Amit Kapila, Shveta Malik Discussion: https://www.postgresql.org/message-id/CALj2ACW4aUe-_uFQOjdWCEN-xXoLGhmvRFnL8SNw_TZ5nJe+aw@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/a11f330b5584f2430371d68871e00f5c63735299 Modified Files -------------- doc/src/sgml/system-views.sgml | 10 ++ src/backend/catalog/system_views.sql | 1 + src/backend/replication/slot.c | 35 +++++++ src/backend/replication/slotfuncs.c | 7 +- src/include/catalog/catversion.h | 2 +- src/include/catalog/pg_proc.dat | 6 +- src/include/replication/slot.h | 3 + src/test/recovery/t/019_replslot_limit.pl | 152 ++++++++++++++++++++++++++++++ src/test/regress/expected/rules.out | 3 +- 9 files changed, 213 insertions(+), 6 deletions(-)
Commits
-
Allow synced slots to have their inactive_since.
- 6f132ed693b6 17.0 landed
-
Change last_inactive_time to inactive_since in pg_replication_slots.
- 6d49c8d4b4f4 17.0 landed
-
Track last_inactive_time in pg_replication_slots.
- a11f330b5584 17.0 cited
-
Remove vacuum_defer_cleanup_age
- 1118cd37eb61 16.0 cited