Re: pgsql: Make WAL segment size configurable at initdb time.

David Steele <david@pgmasters.net>

From: David Steele <david@pgmasters.net>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-committers@postgresql.org
Date: 2018-10-05T17:03:44Z
Lists: pgsql-hackers
Hi Andres,

On 10/5/18 5:54 PM, Andres Freund wrote:
> On 2018-09-20 11:48:08 -0400, David Steele wrote:
> 
>> diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
>> index e1073ac6d3..3bfd172441 100644
>> --- a/doc/src/sgml/config.sgml
>> +++ b/doc/src/sgml/config.sgml
>> @@ -8440,10 +8440,8 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
>>         </term>
>>         <listitem>
>>          <para>
>> -        Reports the number of blocks (pages) in a WAL segment file.
>> -        The total size of a WAL segment file in bytes is equal to
>> -        <varname>wal_segment_size</varname> multiplied by <varname>wal_block_size</varname>;
>> -        by default this is 16MB.  See <xref linkend="wal-configuration"/> for
>> +        Reports the size of write ahead log segments.
>> +        The default value is 16MB. See <xref linkend="wal-configuration"/> for
>>           more information.
>>          </para>
>>         </listitem>
> 
> Why is this actually more correct? You mean because we have a conversion
> that does the mb conversion at display time?

In pre-11 versions of Postgres, you get this:

postgres=# select setting, unit from pg_settings where name = 
'wal_segment_size';
  setting | unit
---------+------
  2048    | 8kB

But in v11 you get this:

select setting, unit from pg_settings where name = 'wal_segment_size';
  setting  | unit
----------+------
  16777216 | B

So, while the WAL segment size used to be expressed in terms of 8K pages 
it is now expressed in terms of absolute bytes.  This seemed to me to be 
a very deliberate change in the original commit so I guessed it was done 
for clarity, but that the docs didn't get the message.

Regards,
-- 
-David
david@pgmasters.net


Commits

  1. docs: Adapt wal_segment_size docs to fc49e24fa69.

  2. Fix s/intidb/initdb/ typo.

  3. Make WAL segment size configurable at initdb time.