Re: max_slot_wal_keep_size unit is not specified

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: b1000101@pm.me, pgsql-docs@lists.postgresql.org
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Date: 2021-11-23T14:21:05Z
Lists: pgsql-docs
On 2021-Nov-22, PG Doc comments form wrote:

> The unit (I assume it's MB) of max_slot_wal_keep_size is not explicitly
> specified in the docs. If it's intentional then please, disregards, but I've
> not been able to deduct that from this page alone. Thanks!

Well, that's embarrasing.  I'll see about fixing it.

It is a size-based unit.  You would typically specify some unit (say,
MB) together with the number; internally, because the way this works is
in terms of whole files, it is rounded down to an integer number of WAL
segments.  If you don't specify a unit, it is taken to be a number of
megabytes.

I wonder why did we make it round down rather than up.  Does this mean
that if you have max_slot_wal_keep_size=8MB and wal segments of 16 MB,
the slot gets invalidated with more than zero reserved segments?

Thanks for reporting.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
"I'm impressed how quickly you are fixing this obscure issue. I came from 
MS SQL and it would be hard for me to put into words how much of a better job
you all are doing on [PostgreSQL]."
 Steve Midgley, http://archives.postgresql.org/pgsql-sql/2008-08/msg00000.php



Commits

  1. Document units for max_slot_wal_keep_size