Re: Enable data checksums by default
Tomas Vondra <tomas@vondra.me>
From: Tomas Vondra <tomas@vondra.me>
To: Greg Burd <greg@burd.me>, Daniel Gustafsson <daniel@yesql.se>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>,
Peter Eisentraut <peter@eisentraut.org>, Heikki Linnakangas
<hlinnaka@iki.fi>, 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>,
Jeff Davis <pgsql@j-davis.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2025-07-31T15:21:11Z
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 7/31/25 15:39, Greg Burd wrote: > > >> On Jul 30, 2025, at 8:09 AM, Daniel Gustafsson <daniel@yesql.se> wrote: >> >>> On 30 Jul 2025, at 11:58, Laurenz Albe <laurenz.albe@cybertec.at> wrote: >>> >>> On Tue, 2025-07-29 at 20:24 +0200, Tomas Vondra wrote: >>>> So, what should we do with the PG18 open item? We (the RMT team) would >>>> like to know if we shall keep the checksums enabled by default, and if >>>> there's something that still needs to be done for PG18. >>> >>> I don't have a strong opinion, but I lean towards having them on >>> by default. >> >> I agree with that, while there might be a lot of cases where disabling >> checksums is the right move it's still a sane default. >> >> -- >> Daniel Gustafsson > > I realize I’m late to the conversation, I’ve been lurking... > > I agree that enabling checksums by default is the sane default. Databases > should always make a best effort for data integrity, checksums are a > positive step in that direction. > > I recall a conversation at the last PGConf.dev (2025) with a representative > from Intel and Jeff Davis (CC’ed) that had to do with checksums and a vast > performance difference between Intel and AMD the latter winning by a mile. > I forget the details, maybe Jeff remembers more than I do. I’m not > suggesting that we disable Intel by default or trying to derail this > conversation (which appears to be reaching consensus), just raising > awareness. > I don't know the Intel vs. AMD situation exactly, but e.g. [1] does not suggest AMD wins by a mile. In fact, it suggests Intel does much better in this particular benchmark (with AVX-512 improvements). Of course, this is a fairly recent *kernel* improvement, maybe it wouldn't work for our data checksums that well. However, I don't think the cost of the checksum calculation itself is the main concern. It's probably negligible compared to all the other costs, triggered by checksums - having to WAL-log hint bits, doing more expensive checks (that's what the btree regression was about), etc. [1] https://www.phoronix.com/news/Linux-CRC32C-VPCLMULQDQ cheers -- Tomas Vondra