Re: Enable data checksums by default
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Peter Eisentraut <peter@eisentraut.org>,
Tomas Vondra <tomas@vondra.me>,
Nathan Bossart <nathandbossart@gmail.com>,
Greg Sabino Mullane <htamfids@gmail.com>,
Bruce Momjian <bruce@momjian.us>,
Michael Paquier <michael@paquier.xyz>,
Michael Banck <mbanck@gmx.net>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-05-23T09:25:56Z
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
> On 23 May 2025, at 10:10, Heikki Linnakangas <hlinnaka@iki.fi> wrote: > Aside from just documenting it, I see two things we could do: > > 1. Have pg_upgrade run initdb for you. It's always felt silly that you need to run initdb with the new version yourself, when there's really only one correct way to do it. pg_upgrade has all the checks to verify that you did it right, so why doesn't it just do it itself? I think that'd be a good long-term solution. Might be too late for 18, but I'm not sure. If someone wrote the patch we could evaluate it. To use that mode, the scripts calling pg_upgrade would need to be changed, though, so we'd perhaps want to do #2 or something else in addition to this. I can see this being desired longer term, but as you mention there is likely to be many moving parts outside of our immediate control making it much harder than just adding the call to initdb. It doesn't seem like a post-beta patch to me given the implications for packagers and others in the ecosystem. > 2. If the new cluster has checksums enabled, but the old one has them disabled, have pg_upgrade disable checksums in the new cluster. IF we do this it should be Very visible, since a user otherwise might think that their upgraded cluster will have checksums since they added them in initdb. I think we should document how to deal with checksums in upgrades, and perhaps even tweak the errormessage in the pg_upgrade check with explanatory comments if needed, and leave the functionality as is today. -- Daniel Gustafsson