Allow synced slots to have their inactive_since.

This commit does two things:
1) Maintains inactive_since for sync slots whenever the slot is released
just like any other regular slot.

2) Ensures the value is set to the current timestamp during the promotion
of standby to help correctly interpret the time after promotion. We don't
want the slots to appear inactive for a long time after promotion if they
haven't been synchronized recently. This would also avoid the invalidation
of such slots immediately after promotion if tomorrow we have a feature
that invalidates slots based on their inactivity time. Whoever acquires
the slot i.e. makes the slot active will reset it to NULL.

Author: Bharath Rupireddy
Reviewed-by: Bertrand Drouvot, Amit Kapila, Shveta Malik, Masahiko Sawada
Discussion: 
https://postgr.es/m/CAA4eK1KrPGwfZV9LYGidjxHeW+rxJ=E2ThjXvwRGLO=iLNuo=q...@mail.gmail.com
Discussion: 
https://postgr.es/m/calj2acw4aue-_ufqojdwcen-xxolghmvrfnl8snw_tz5nje...@mail.gmail.com
Discussion: 
https://postgr.es/m/ca+tgmob_ta-t2ty8qrkhbgnnlrf4zycwhghgfsuuofraedw...@mail.gmail.com

Branch
------
master

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

Modified Files
--------------
doc/src/sgml/system-views.sgml                     |  7 +++
src/backend/replication/logical/slotsync.c         | 57 ++++++++++++++++++++++
src/backend/replication/slot.c                     | 22 +++------
src/test/perl/PostgreSQL/Test/Cluster.pm           | 31 ++++++++++++
src/test/recovery/t/019_replslot_limit.pl          | 26 +---------
.../recovery/t/040_standby_failover_slots_sync.pl  | 56 +++++++++++++++++++++
6 files changed, 160 insertions(+), 39 deletions(-)

Reply via email to