pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Amit Kapila <akapila@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Track invalidation_reason in pg_replication_slots.
Date: Fri, 22 Mar 2024 08:38:03 +0000
Message-ID: <E1rnaPb-0054A2-5y@gemulon.postgresql.org> (raw)

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...

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/6ae701b4378db2284c77314560e95a93d0ba9484

Modified Files
--------------
doc/src/sgml/ref/pgupgrade.sgml                    |  4 +-
doc/src/sgml/system-views.sgml                     | 25 +++++++----
src/backend/catalog/system_views.sql               |  3 +-
src/backend/replication/logical/slotsync.c         |  2 +-
src/backend/replication/slot.c                     | 49 ++++++++++------------
src/backend/replication/slotfuncs.c                | 25 +++++++----
src/bin/pg_upgrade/info.c                          |  4 +-
src/include/catalog/catversion.h                   |  2 +-
src/include/catalog/pg_proc.dat                    |  6 +--
src/include/replication/slot.h                     |  2 +-
.../recovery/t/035_standby_logical_decoding.pl     | 35 ++++++++--------
.../recovery/t/040_standby_failover_slots_sync.pl  |  4 +-
src/test/regress/expected/rules.out                |  5 ++-
13 files changed, 94 insertions(+), 72 deletions(-)



view thread (3+ messages)

Message-ID: <E1rnaPb-0054A2-5y@gemulon.postgresql.org>
Permalink:  ../E1rnaPb-0054A2-5y@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1rnaPb-0054A2-5y@gemulon.postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: akapila@postgresql.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Track invalidation_reason in pg_replication_slots.
  In-Reply-To: <E1rnaPb-0054A2-5y@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox