Re: max_slot_wal_keep_size and wal_keep_segments

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: pgsql-hackers@postgresql.org
Date: 2020-07-08T16:20:31Z
Lists: pgsql-hackers
On 2020-Jul-09, Fujii Masao wrote:

> I attached the patch that renames wal_keep_segments to wal_keep_size.

Looks good in a quick once-over.  Just two small wording comments:

>    <para>
>     Independently of <varname>max_wal_size</varname>,
> -   <xref linkend="guc-wal-keep-segments"/> + 1 most recent WAL files are
> +   most recent <xref linkend="guc-wal-keep-size"/> megabytes
> +   WAL files plus one WAL file are
>     kept at all times. Also, if WAL archiving is used, old segments can not be
>     removed or recycled until they are archived. If WAL archiving cannot keep up
>     with the pace that WAL is generated, or if <varname>archive_command</varname>

This reads a little strange to me.  Maybe "the N most recent megabytes
plus ..."

>  			/* determine how many segments slots can be kept by slots ... */
> -			keepSegs = XLogMBVarToSegs(max_slot_wal_keep_size_mb, wal_segment_size);
> -			/* ... and override by wal_keep_segments as needed */
> -			keepSegs = Max(keepSegs, wal_keep_segments);
> +			slotKeepSegs = XLogMBVarToSegs(max_slot_wal_keep_size_mb, wal_segment_size);
> +			/* ... and override by wal_keep_size as needed */
> +			keepSegs = XLogMBVarToSegs(wal_keep_size_mb, wal_segment_size);

Since you change the way these two variables are used, I would not say
"override" in the above comment, nor keep the ellipses; perhaps just
change them to "determine how many segments can be kept by slots" and
"ditto for wal_keep_size".

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. doc: Mention the rename of wal_keep_segments GUC in release note.

  2. Rename wal_keep_segments to wal_keep_size.