pgsql: Ignore invalidated slots while computing oldest catalog Xmin - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Ignore invalidated slots while computing oldest catalog Xmin
Date
Msg-id E1oxQ1Q-000L9k-VZ@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Ignore invalidated slots while computing oldest catalog Xmin

Once a logical slot has acquired a catalog_xmin, it doesn't let go of
it, even when invalidated by exceeding the max_slot_wal_keep_size, which
means that dead catalog tuples are not removed by vacuum anymore since
the point is invalidated, until the slot is dropped.  This could be
catastrophic if catalog churn is high.

Change the computation of Xmin to ignore invalidated slots,
to prevent dead rows from accumulating.

Backpatch to 13, where slot invalidation appeared.

Author: Sirisha Chamarthi <sirichamarthi22@gmail.com>
Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Discussion: https://postgr.es/m/CAKrAKeUEDeqquN9vwzNeG-CN8wuVsfRYbeOUV9qKO_RHok=j+g@mail.gmail.com

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/36eeb37cd611c0a0bfb5743d9ddbef8f04fc87f3

Modified Files
--------------
src/backend/replication/slot.c      | 7 +++++++
src/backend/storage/ipc/procarray.c | 3 +++
2 files changed, 10 insertions(+)


pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: pgsql: Add wait event for pg_usleep() in perform_spin_delay()
Next
From: Amit Kapila
Date:
Subject: pgsql: Improve comments atop pg_get_replication_slots.