Re: docs should mention that max_wal_size default depends on WAL segment size

From: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: docs should mention that max_wal_size default depends on WAL segment size
Date: 2018-11-18 22:50:30
Message-ID: 5cad9629-df98-6788-ef1d-879aec417b1b@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 11/18/18 10:22 PM, Andres Freund wrote:
> Hi,
>
> On 2018-11-18 22:16:12 +0100, Tomas Vondra wrote:
>> while investigating something on a cluster with a non-default WAL
>> segment (say 256MB), I've noticed a somewhat surprising behavior of
>> max_wal_size default. While the docs claim the default is 1GB, the
>> actual default depends on the WAL segment size.
>>
>> For example with the 256MB WAL segments, you end up with this:
>>
>> test=# show max_wal_size ;
>> max_wal_size
>> --------------
>> 16GB
>> (1 row)
>>
>> This behavior is not entirely new - I've noticed it on 10, before the
>> WAL segment size was moved to initdb (which made it more likely to be
>> used). It's even more surprising there, because it leaves
>>
>> #max_wal_size = 1GB
>>
>> in the sample config, while fc49e24f at least emits the actual value.
>>
>> But I'd say not mentioning this behavior in the docs is a bug.
>
> Hm, you're not wrong there. Wonder if it'd be better to make it so that
> the default actually has the effect of being 1GB - I think that ought to
> be doable?
>

I've actually thought about that, initially, but I'm not sure that's a
good idea for a couple of reasons:

(1) WAL segments can go up to 1GB now, and we need at least two of
those, so there are at least some cases where we can't stick to the 1GB
max_wal_size default.

(2) If you're messing with WAL segment size, chances are you either have
very large/busy or very small system, and so the changes to max_wal_size
probably make sense.

(3) If we decide to enforce the 1GB default, we should probably
backpatch it, otherwise you'll get surprisingly different behavior on
different versions. Not great. But backpatching may influence existing
systems quite a bit. Of course, there are probably few systems tweaking
WAL segment size, and I'd expect them to set max_wal_size explicitly
(rendering the default irrelevant).

So, not sure.

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2018-11-18 23:32:42 Re: has_table_privilege for a table in unprivileged schema causes an error
Previous Message Tom Lane 2018-11-18 22:02:48 Re: Fixing AC_CHECK_DECLS to do the right thing with clang