Re: min_safe_lsn column in pg_replication_slots view
Fujii Masao <masao.fujii@oss.nttdata.com>
From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Amit Kapila <amit.kapila16@gmail.com>,
Michael Paquier <michael@paquier.xyz>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>,
Kyotaro Horiguchi <horikyota.ntt@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-06-22T13:02:51Z
Lists: pgsql-hackers
On 2020/06/22 21:01, Amit Kapila wrote: > On Mon, Jun 22, 2020 at 11:19 AM Michael Paquier <michael@paquier.xyz> wrote: >> >> On Sat, Jun 20, 2020 at 03:53:54PM +0900, Michael Paquier wrote: >>> On Sat, Jun 20, 2020 at 09:45:52AM +0530, Amit Kapila wrote: >>>> Isn't this information specific to checkpoints, so maybe better to >>>> display in view pg_stat_bgwriter? >>> >>> Not sure that's a good match. If we decide to expose that, a separate >>> function returning a LSN based on the segment number from >>> XLogGetLastRemovedSegno() sounds fine to me, like >>> pg_wal_last_recycled_lsn(). Perhaps somebody has a better name in >>> mind? >> >> I was thinking on this one for the last couple of days, and came up >> with the name pg_wal_oldest_lsn(), as per the attached, traking the >> oldest WAL location still available. Thanks for the patch! + <literal>NULL</literal> if no WAL segments have been removed since + startup. Isn't this confusing? I think that we should store the last removed WAL segment to somewhere (e.g., pg_control) and restore it at the startup, so that we can see the actual value even after the startup. Or we should scan pg_wal directory and find the "minimal" WAL segment and return its LSN. > I feel such a function is good to have but I am not sure if there is a > need to tie it with the removal of min_safe_lsn column. We should expose the LSN calculated from "the current WAL LSN - max(wal_keep_segments * 16MB, max_slot_wal_keep_size)"? This indicates the minimum LSN of WAL files that are guaraneed to be currently retained by wal_keep_segments and max_slot_wal_keep_size. That is, if checkpoint occurs when restart_lsn of replication slot is smaller than that minimum LSN, some required WAL files may be removed. So DBAs can periodically monitor and compare restart_lsn and that minimum LSN. If they see frequently that difference of those LSN is very small, they can decide to increase wal_keep_segments or max_slot_wal_keep_size, to prevent required WAL files from being removed. Thought? Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION
Commits
-
Fix uninitialized value in segno calculation
- b5b4c0fef9fb 14.0 landed
- 794e8e32bb5a 13.0 landed
-
Morph pg_replication_slots.min_safe_lsn to safe_wal_size
- c54b5891f415 13.0 landed
- a8aaa0c786b3 14.0 landed