Re: Changing the state of data checksums in a running cluster
Heikki Linnakangas <hlinnaka@iki.fi>
On 18/03/2026 00:01, Daniel Gustafsson wrote: >> On 17 Mar 2026, at 12:45, Heikki Linnakangas <hlinnaka@iki.fi> wrote:>>> /* >>> * Get a list of all databases to process. This may include databases that >>> * were created during our runtime. Since a database can be created as a >>> * copy of any other database (which may not have existed in our last >>> * run), we have to repeat this loop until no new databases show up in the >>> * list. Here the initial list for the loop processing is generated after >>> * waiting for all existing transactions to finish to ensure that we can >>> * see any database which was created even if the transaction in which it >>> * was created started before checksums were being processed. >>> */ >>> WaitForAllTransactionsToFinish(); >>> DatabaseList = BuildDatabaseList(); >> >> What if a database is dropped and another one is created with the same database OID? > > Good point. We have the name of the database so we could compare Oid and name, > and require both to match. That would still be foiled by a new database using > the same Oid and name though. Any ideas on what could be done? Well, if CREATE DATABASE computed the checksums, that would fix this too. Actually, at least in the default wal_log=true mode, doesn't it already do that? It goes through the buffer cache as usual, I presume the checksums will be computed too. - Heikki
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Use correct datatype for PID
- 0ca1b3010597 19 (unreleased) landed
-
Improve comments in online checksums code
- cd857dec0e0a 19 (unreleased) landed
-
Fix checksum state transition during promotion
- 5fee7cab1b87 19 (unreleased) landed
-
Fix regex searching for page verification failures in tests
- 486b9a9b9eb4 19 (unreleased) landed
-
Apply data-checksum worker throttling parameters
- 9a39056c418c 19 (unreleased) landed
-
Skip WAL for unlogged main fork during online checksum enable
- 2018bd616790 19 (unreleased) landed
-
Fix data_checksum GUC show_hook
- 75152c5dc5d3 19 (unreleased) landed
-
Improve database detection logic in datachecksumsworker
- 1df361e3d82c 19 (unreleased) landed
-
Improve handling of concurrent checksum requests
- bf25e5571b32 19 (unreleased) landed
-
Typo and spelling fixups for online checksums
- 381d19da1536 19 (unreleased) landed
-
Fix invalid checksum state transition in checkpoints
- 25b922ec5825 19 (unreleased) landed
-
Handle data_checksum state changes during launcher_exit
- 8fb8ded88956 19 (unreleased) landed
-
Test improvements for online checksums
- a0d8f4c1ae16 19 (unreleased) landed
-
Prevent pg_enable/disable_data_checksums() on standby
- b120358c612d 19 (unreleased) landed
-
Test stabilization for online checksums
- 07009121c235 19 (unreleased) landed
-
Make data checksum tests more resilient for slow machines
- 0036232ba8fb 19 (unreleased) landed
-
Formalize WAL record for XLOG_CHECKPOINT_REDO
- 097ab69d17f7 19 (unreleased) landed
-
Revert "Get rid of WALBufMappingLock"
- c13070a27b63 19 (unreleased) cited
-
Get rid of WALBufMappingLock
- bc22dc0e0ddc 18.0 cited
-
Improve grammar of options for command arrays in TAP tests
- ce1b0f9da03e 18.0 cited