Re: Online enabling of checksums
Greg Stark <stark@mit.edu>
From: Greg Stark <stark@mit.edu>
To: Magnus Hagander <magnus@hagander.net>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>,
Daniel Gustafsson <daniel@yesql.se>
Date: 2018-02-25T00:21:25Z
Lists: pgsql-hackers
> The change of the checksum state is WAL logged with a new xlog record. All the buffers written by the background worker are forcibly enabled full page writes to make sure the checksum is fully updated on the standby even if no actual contents of the buffer changed. Hm. That doesn't sound necessary to me. If you generate a checkpoint (or just wait until a new checkpoint has started) then go through and do a normal xlog record for every page (any xlog record, a noop record even) then the normal logic for full page writes ought to be sufficient. If the noop record doesn't need a full page write it's because someone else has already come in and done one and that one will set the checksum. In fact if any page has an lsn > the checkpoint start lsn for the checkpoint after the flag was flipped then you wouldn't need to issue any record at all.
Commits
-
Online enabling and disabling of data checksums
- f19c0eccae96 19 (unreleased) landed
-
Deactive flapping checksum isolation tests.
- bf75fe47e444 11.0 landed
-
Add support for coordinating record typmods among parallel workers.
- cc5f81366c36 11.0 cited