Re: [HACKERS] increasing the default WAL segment size - Mailing list pgsql-hackers

From David Steele
Subject Re: [HACKERS] increasing the default WAL segment size
Date
Msg-id bcd0f1c8-7d69-f78b-c8f9-79ff75cf608a@pgmasters.net
Whole thread Raw
In response to Re: [HACKERS] increasing the default WAL segment size  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: [HACKERS] increasing the default WAL segment size  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On 3/21/17 3:22 PM, Robert Haas wrote:
> On Tue, Mar 21, 2017 at 9:04 AM, Stephen Frost <sfrost@snowman.net> wrote:
>> In short, I'm also concerned about this change to make WAL file names no
>> longer match up with LSNs and also about the odd stepping that you get
>> as a result of this change when it comes to WAL file names.
>
> OK, that's a bit surprising to me, but what do you want to do about
> it?  If you take the approach that Beena did, then you lose the
> correspondence with LSNs, which is admittedly not great but there are
> already helper functions available to deal with LSN -> filename
> mappings and I assume those will continue to work. If you take the
> opposite approach, then WAL filenames stop being consecutive, which
> seems to me to be far worse in terms of user and tool confusion.

They are already non-consecutive.  Does 000000010000000200000000 really 
logically follow 0000000100000001000000FF?  Yeah, sort of, if you know 
the rules.

> Also
> note that, both currently and with the patch, you can also reduce the
> WAL segment size.  David's proposed naming scheme doesn't handle that
> case, I think, and I think it would be all kinds of a bad idea to use
> one file-naming approach for segments < 16MB and a separate approach
> for segments > 16MB.  That's not making anything easier for users or
> tool authors.

I believe it does handle that case, actually.  The minimum WAL segment 
size is 1MB so they would increase like:

000000010000000100000000
000000010000000100100000
000000010000000100200000
...
0000000100000001FFF00000

You could always calculate the next WAL file by adding 
(wal_seg_size_in_mb << 20) to the previous WAL file's LSN.  This would 
even work for WAL segments > 4GB.  Overall, I think this would make 
calculating WAL ranges simpler than it is now.

The biggest downside I can see is that this would change the naming 
scheme for the default of 16MB compared to previous versions of 
Postgres.  However, for all other wal-seg-size values changes would need 
to be made anyway.

-- 
-David
david@pgmasters.net



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: [HACKERS] pg_dump, pg_dumpall and data durability
Next
From: Mithun Cy
Date:
Subject: Re: [HACKERS] Patch: Write Amplification Reduction Method (WARM)