Re: Enable data checksums by default

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: 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: 2024-10-01T15:15:02Z
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 →
  1. Avoid BufferGetLSNAtomic() calls during nbtree scans.

  2. doc PG 18 relnotes: Add incompatibility note about checksums now default

  3. Fix pg_upgrade's cross-version tests when old < 18

  4. initdb: Change default to using data checksums.

  5. Allow TAP tests to force checksums off when calling init()

  6. initdb: Add new option "--no-data-checksums"

  7. Tweak docs to reduce possible impact of data checksums

On 27.08.24 17:26, Nathan Bossart wrote:
> On Tue, Aug 27, 2024 at 05:16:51PM +0200, Peter Eisentraut wrote:
>> On 27.08.24 15:44, Greg Sabino Mullane wrote:
>>> On Mon, Aug 26, 2024 at 3:46 PM Nathan Bossart <nathandbossart@gmail.com
>>> <mailto:nathandbossart@gmail.com>> wrote:
>>>
>>>      Should we error if both --data-checksum and --no-data-checksums are
>>>      specified?  IIUC with 0001, we'll use whichever is specified last.
>>>
>>>
>>> Hmmm, that is a good question. We have never (to my recollection)
>>> flipped a default quite like this before. I'm inclined to leave it as
>>> "last one wins", as I can see automated systems appending their desired
>>> selection to the end of the arg list, and expecting it to work.
>>
>> Yes, last option wins is the normal expected behavior.
> 
> WFM
> 
> 001_verify_heapam fails with this patch set.  I think you may need to use
> --no-data-checksums in that test, too.  Otherwise, it looks pretty good to
> me.

I have committed 0001 (the new option) and 0004 (the docs tweak).  I 
think there is consensus for the rest, too, but I'll leave it for a few 
more days to think about.  I guess the test failure has to be addressed.