Re: increasing the default WAL segment size

From: David Steele <david(at)pgmasters(dot)net>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Stephen Frost <sfrost(at)snowman(dot)net>, Beena Emerson <memissemerson(at)gmail(dot)com>, 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>, Kuntal Ghosh <kuntalghosh(dot)2007(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: increasing the default WAL segment size
Date: 2017-03-22 22:05:16
Message-ID: 1dac9a13-8b47-14a5-8b7d-cad50b9984a5@pgmasters.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Robert,

On 3/22/17 3:45 PM, Robert Haas wrote:
> On Wed, Mar 22, 2017 at 3:24 PM, David Steele <david(at)pgmasters(dot)net> wrote:
>>> One of the reasons to go with the LSN is that we would actually be
>>> maintaining what happens when the WAL files are 16MB in size.
>>>
>>> David's initial expectation was this for 64MB WAL files:
>>>
>>> 000000010000000000000040
>>> 000000010000000000000080
>>> 0000000100000000000000CO
>>> 000000010000000100000000
>>
>>
>> This is the 1GB sequence, actually, but idea would be the same for 64MB
>> files.
>
> Wait, really? I thought you abandoned this approach because there's
> then no principled way to handle WAL segments of less than the default
> size.

I did say that, but I thought I had hit on a compromise.

But, as I originally pointed out the hex characters in the filename are
not aligned correctly for > 8 bits (< 16MB segments) and using different
alignments just made it less consistent.

It would be OK if we were willing to drop the 1,2,4,8 segment sizes
because then the alignment would make sense and not change the current
16MB sequence.

Even then, there are some interesting side effects. For 1GB segments
the "0000000100000001000000C0" segment would include LSNs 1/C0000000
through 1/FFFFFFFF. This is correct but is not an obvious filename to
LSN mapping, at least for LSNs that appear later in the segment.

--
-David
david(at)pgmasters(dot)net

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2017-03-22 22:09:47 Re: exposing wait events for non-backends (was: Tracking wait event for latches)
Previous Message David Steele 2017-03-22 21:34:40 Re: PATCH: Make pg_stop_backup() archive wait optional