Re: increasing the default WAL segment size
Andres Freund <andres@anarazel.de>
On 2016-09-20 16:18:02 -0400, Robert Haas wrote: > On Tue, Sep 20, 2016 at 4:09 PM, Andres Freund <andres@anarazel.de> wrote: > > That sounds way too big to me. WAL file allocation would trigger pretty > > massive IO storms during zeroing, max_wal_size is going to be hard to > > tune, the amounts of dirty data during bulk loads is going to be very > > hard to control. If somebody wants to do something like this they > > better be well informed enough to override a #define. > > EnterpriseDB has customers generating multiple TB of WAL per day. Sure, that's kind of common. > Even with a 1GB segment size, some of them will fill multiple files > per minute. At the current limit of 64MB, a few of them would still > fill more than one file per second. That is not sane. I doubt generating much larger files actually helps a lot there. I bet you a patch review that 1GB files are going to regress in pretty much every situation; especially when taking latency into account. I think what's actually needed for that is: - make it easier to implement archiving via streaming WAL; i.e. make pg_receivexlog actually usable - make archiving parallel - decouple WAL write & fsyncing granularity from segment size Requiring a non-default compile time or even just cluster creation time option for tuning isn't something worth expanding energy on imo. Andres
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Make WAL segment size configurable at initdb time.
- fc49e24fa69a 11.0 landed
-
Perform only one ReadControlFile() during startup.
- 8356753c212a 11.0 landed
-
Introduce BYTES unit for GUCs.
- 6e7baa322773 11.0 landed
-
Remove useless duplicate inclusions of system header files.
- 9e3755ecb2d0 10.0 cited
-
Refactor other replication commands to use DestRemoteSimple.
- bbd8550bce14 10.0 landed
-
Add a SHOW command to the replication command language.
- d1ecd539477f 10.0 landed
-
Add a new DestReceiver for printing tuples without catalog access.
- a84069d93504 10.0 landed
-
Support fls().
- 4f658dc851a7 9.2.0 cited
-
Extend yesterday's patch making BLCKSZ and RELSEG_SIZE configurable to also
- cf9f6c8d8e9d 8.4.0 cited
-
Commit the reasonably uncontroversial parts of J.R. Nield's PITR patch, to
- c3c09be34b6b 8.0.0 cited
-
XLOG (also known as WAL -:)) Bootstrap/Startup/Shutdown.
- 47937403676d 7.1.1 cited
-
Transaction log manager core code.
- 30659d43eb73 7.1.1 cited