Re: Enable data checksums by default
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Greg Sabino Mullane <htamfids@gmail.com>,
Robert Haas <robertmhaas@gmail.com>
Date: 2024-08-22T06:11:06Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Avoid BufferGetLSNAtomic() calls during nbtree scans.
- e6eed40e4441 18.0 cited
-
doc PG 18 relnotes: Add incompatibility note about checksums now default
- 48814415d5aa 18.0 landed
-
Fix pg_upgrade's cross-version tests when old < 18
- 38c18710b37a 18.0 landed
-
initdb: Change default to using data checksums.
- 04bec894a04c 18.0 landed
-
Allow TAP tests to force checksums off when calling init()
- e7d0cf42b1ac 18.0 landed
-
initdb: Add new option "--no-data-checksums"
- 983a588e0b86 18.0 landed
-
Tweak docs to reduce possible impact of data checksums
- efd72a3d422b 18.0 landed
Attachments
- v1-0001-pg_upgrade-Support-for-upgrading-to-checksums-ena.patch (text/plain) patch v1-0001
On 15.08.24 08:38, Peter Eisentraut wrote: > On 08.08.24 19:42, Robert Haas wrote: >>> I'm thinking pg_upgrade could have a mode where it adds the >>> checksum during the upgrade as it copies the files (essentially a subset >>> of pg_checksums). I think that would be useful for that middle tier of >>> users who just want a good default experience. >> That would be very nice. > > Here is a demo patch for that. It turned out to be quite simple. > > I wrote above about a separate mode for that (like > --copy-and-make-adjustments), but it was just as easy to stick it into > the existing --copy mode. > > It would be useful to check what the performance overhead of this is > versus a copy that does not have to make adjustments. I expect it's > very little. > > A drawback is that as written this does not work on Windows, because > Windows uses a different code path in copyFile(). I don't know the > reasons for that. But it would need to be figured out. Here is an updated patch for this. I simplified the logic a bit and also handle the case where the read() reads less than a round number of blocks. I did some performance testing. The overhead of computing the checksums versus a straight --copy without checksum adjustments appears to be around 5% wall clock time, which seems ok to me. I also looked around the documentation to see if there is anything to update, but didn't find anything. I think if we can work out what to do on Windows, this could be a useful little feature for facilitating $subject.