pgsql: Adjust max_slot_wal_keep_size behavior per review - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Adjust max_slot_wal_keep_size behavior per review
Date
Msg-id E1joA4p-0007NE-FF@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Adjust max_slot_wal_keep_size behavior per review

In pg_replication_slot, change output from normal/reserved/lost to
reserved/extended/unreserved/ lost, which better expresses the possible
states particularly near the time where segments are no longer safe but
checkpoint has not run yet.

Under the new definition, reserved means the slot is consuming WAL
that's still under the normal WAL size constraints; extended means it's
consuming WAL that's being protected by wal_keep_segments or the slot
itself, whose size is below max_slot_wal_keep_size; unreserved means the
WAL is no longer safe, but checkpoint has not yet removed those files.
Such as slot is in imminent danger, but can still continue for a little
while and may catch up to the reserved WAL space.

Also, there were some bugs in the calculations used to report the
status; fixed those.

Backpatch to 13.

Reported-by: Fujii Masao <masao.fujii@oss.nttdata.com>
Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@oss.nttdata.com>
Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/20200616.120236.1809496990963386593.horikyota.ntt@gmail.com

Branch
------
REL_13_STABLE

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

Modified Files
--------------
doc/src/sgml/catalogs.sgml                | 24 +++++++++----
src/backend/access/transam/xlog.c         | 57 +++++++++++++++++--------------
src/backend/replication/slotfuncs.c       | 39 ++++++++++++++++-----
src/include/access/xlog.h                 |  6 ++--
src/test/recovery/t/019_replslot_limit.pl | 23 +++++++------
5 files changed, 96 insertions(+), 53 deletions(-)


pgsql-committers by date:

Previous
From: Alvaro Herrera
Date:
Subject: pgsql: Save slot's restart_lsn when invalidated due to size
Next
From: Peter Eisentraut
Date:
Subject: Re: pgsql: Sync our copy of the timezone library with IANA releasetzcode20