Re: increasing the default WAL segment size

David Steele <david@pgmasters.net>

From: David Steele <david@pgmasters.net>
To: Beena Emerson <memissemerson@gmail.com>, Robert Haas <robertmhaas@gmail.com>
Cc: tushar <tushar.ahuja@enterprisedb.com>, Prabhat Sahu <prabhat.sahu@enterprisedb.com>, Ashutosh Sharma <ashu.coek88@gmail.com>, Jim Nasby <Jim.Nasby@bluetreble.com>, Kuntal Ghosh <kuntalghosh.2007@gmail.com>, Andres Freund <andres@anarazel.de>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-03-20T23:23:46Z
Lists: pgsql-hackers
Hi Beena,

On 3/20/17 2:07 PM, Beena Emerson wrote:
> Added check for the version, the SHOW command will be run only in v10
> and above. Previous versions do not need this.

I've just had the chance to have a look at this patch.  This is not a 
complete review, just a test of something I've been curious about.

With 16MB WAL segments the filename neatly aligns with the LSN.  For 
example:

WAL FILE 0000000100000001000000FE = LSN 1/FE000000

This no longer holds true with this patch.  I created a cluster with 1GB 
segments and the sequence looked like:

000000010000000000000001
000000010000000000000002
000000010000000000000003
000000010000000100000000

Whereas I had expected something like:

000000010000000000000040
000000010000000000000080
0000000100000000000000CO
000000010000000100000000

I scanned the thread but couldn't find any mention of this so I'm 
curious to know if it was considered? Was the prior correspondence 
merely serendipitous?

I'm honestly not sure which way I think is better, but I know either way 
it represents a pretty big behavioral change for any tools looking at 
pg_wal or using the various helper functions.

It's a probably a good thing to do at the same time as the rename, just 
want to make sure we are all aware of the changes.

-- 
-David
david@pgmasters.net


Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Make WAL segment size configurable at initdb time.

  2. Perform only one ReadControlFile() during startup.

  3. Introduce BYTES unit for GUCs.

  4. Remove useless duplicate inclusions of system header files.

  5. Refactor other replication commands to use DestRemoteSimple.

  6. Add a SHOW command to the replication command language.

  7. Add a new DestReceiver for printing tuples without catalog access.

  8. Support fls().

  9. Extend yesterday's patch making BLCKSZ and RELSEG_SIZE configurable to also

  10. Commit the reasonably uncontroversial parts of J.R. Nield's PITR patch, to

  11. XLOG (also known as WAL -:)) Bootstrap/Startup/Shutdown.

  12. Transaction log manager core code.