Re: increasing the default WAL segment size

From: Beena Emerson <memissemerson(at)gmail(dot)com>
To: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
Cc: Kuntal Ghosh <kuntalghosh(dot)2007(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Stephen Frost <sfrost(at)snowman(dot)net>, David Steele <david(at)pgmasters(dot)net>, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com>, Prabhat Sahu <prabhat(dot)sahu(at)enterprisedb(dot)com>, Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>, Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: increasing the default WAL segment size
Date: 2017-03-27 19:36:13
Views: Raw Message | Whole Thread | Download mbox
Lists: pgsql-hackers


On Sat, Mar 25, 2017 at 10:32 PM, Peter Eisentraut <
peter(dot)eisentraut(at)2ndquadrant(dot)com> wrote:

> At this point, I suggest splitting this patch up into several
> potentially less controversial pieces.
> One big piece is that we currently don't support segment sizes larger
> than 64 GB, for various internal arithmetic reasons. Your patch appears
> to address that. So I suggest isolating that. Assuming it works
> correctly, I think there would be no great concern about it.
> The next piece would be making the various tools aware of varying
> segment sizes without having to rely on a built-in value.
> The third piece would then be the rest that allows you to set the size
> at initdb
> If we take these in order, we would make it easier to test various sizes
> and see if there are any more unforeseen issues when changing sizes. It
> would also make it easier to do performance testing so we can address
> the original question of what the default size should be.

PFA the patches divided into 3 parts:

02-increase-max-wal-segsize.patch - Increases the wal-segsize and changes
the internal representation of max_wal_size and min_wal_size to mb.

03-modify-tools.patch - Makes XLogSegSize into a variable, currently set as
XLOG_SEG_SIZE and modifies the tools to fetch the size instead of using
inbuilt value.

04-initdb-walsegsize.patch - Adds the initdb option to set wal-segsize and
make related changes. Update pg_test_fsync to use DEFAULT_XLOG_SEG_SIZE
instead of XLOG_SEG_SIZE

> One concern I have is that your patch does not contain any tests. There
> should probably be lots of tests.

05-initdb_tests.patch adds tap tests to initialize cluster with different
wal_segment_size and then check the config values. What other tests do you
have in mind? Checking the various tools?

Beena Emerson

The Enterprise PostgreSQL Company

Attachment Content-Type Size
01-add-XLogSegmentOffset-macro.patch application/octet-stream 16.5 KB
02-increase-max-wal-segsize.patch application/octet-stream 8.2 KB
03-modify-tools.patch application/octet-stream 15.8 KB
05-initdb_tests.patch application/octet-stream 2.5 KB
04-initdb-walsegsize.patch application/octet-stream 23.6 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Corey Huinker 2017-03-27 19:51:04 Re: \if, \elseif, \else, \endif (was Re: PSQL commands: \quit_if, \quit_unless)
Previous Message Fabien COELHO 2017-03-27 19:25:39 Re: \if, \elseif, \else, \endif (was Re: PSQL commands: \quit_if, \quit_unless)