Re: AdvanceXLInsertBuffer vs. WAL segment compressibility
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Chapman Flack <chap@anastigmatix.net>,
Robert Haas <robertmhaas@gmail.com>, Bruce Momjian <bruce@momjian.us>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2017-07-17T15:29:33Z
Lists: pgsql-hackers
On Thu, Jul 6, 2017 at 3:48 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote: > On 07/03/2017 06:30 PM, Chapman Flack wrote: >> Although it's moot in the straightforward approach of re-zeroing in >> the loop, it would still help my understanding of the system to know >> if there is some subtlety that would have broken what I proposed >> earlier, which was an extra flag to AdvanceXLInsertBuffer() that >> would tell it not only to skip initializing headers, but also to >> skip the WaitXLogInsertionsToFinish() check ... because I have >> the entire region reserved and I hold all the writer slots >> at that moment, it seems safe to assure AdvanceXLInsertBuffer() >> that there are no outstanding writes to wait for. > > Yeah, I suppose that would work, too. FWIW, I would rather see any optimization done in AdvanceXLInsertBuffer() instead of seeing a second memset re-zeroing the WAL page header after its data has been initialized by AdvanceXLInsertBuffer() once. That's too late for 10, but you still have time for a patch to be integrated in 11. -- Michael
Commits
-
Ensure that WAL pages skipped by a forced WAL switch are zero-filled.
- 4a33bb59dfc3 11.0 landed
-
Improve scalability of WAL insertions.
- 9a20a9b21baa 9.4.0 cited
-
Move BKP_REMOVABLE bit from individual WAL records to WAL page headers.
- 2dd9322ba6ee 9.2.0 cited