Re: Enable data checksums by default
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Tomas Vondra <tomas@vondra.me>, Nathan Bossart <nathandbossart@gmail.com>
Cc: Greg Sabino Mullane <htamfids@gmail.com>, Bruce Momjian
<bruce@momjian.us>, Michael Paquier <michael@paquier.xyz>,
Michael Banck <mbanck@gmx.net>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-04-24T11:26:04Z
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.04.25 00:24, Tomas Vondra wrote: >> The patch that flips the default has been committed. >> >> I also started a PG18 open items page and made a note that we follow up >> on the upgrade experience, as was discussed in this thread. >> >> https://wiki.postgresql.org/wiki/PostgreSQL_18_Open_Items >> > Regarding the open item, can someone explain what exactly are we > planning to evaluate mid-beta? If you have a PG <=17 installation without checksums (the default), and you do the usual upgrade procedure to PG 18 involving initdb + pg_upgrade, then pg_upgrade will reject the upgrade, because the checksum settings don't match. The workaround is to run initdb with --no-data-checksums and try again. That's probably not all that bad, but if this is all below a bunch of layers of scripts, users will have to do some work on their end to get this working smoothly. The point of the open item was (a) to make sure this is adequately documented, for instance in the release notes, (b) to think about technological solutions to simplify this, such as [0], and (c) to just check the general feedback. Nothing from [0] ended up being committed, so that part of obsolete. The action for beta1 is (a). And then for (c) perhaps monitor the feedback between beta1 and beta2. [0]: https://www.postgresql.org/message-id/flat/57957aca-3eae-4106-afb2-3008122b9950%40eisentraut.org