pg_upgrade: Support for upgrading to checksums enabled

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: pg_upgrade: Support for upgrading to checksums enabled
Date: 2024-08-26 06:23:44
Message-ID: 57957aca-3eae-4106-afb2-3008122b9950@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I'm reposting this patch in a separate thread so I can make a separate
commitfest entry for it. The previous discussion is mixed in with [0].

The purpose of this patch is to allow using pg_upgrade between clusters
that have different checksum settings. When upgrading between instances
with different checksum settings, the --copy (default) mode
automatically sets (or unsets) the checksum on the fly.

This would be particularly useful if we switched to enabling checksums
by default, as [0] proposes, but it's also useful without that.

Some discussion points:

- We have added a bunch of different transfer modes to pg_upgrade in
order to give the user control over the expected file transfer
performance. Here, I have added this checksum rewriting to the existing
--copy mode, and I have measured about a 5% overhead. An alternative
would be to make this an explicit mode (--copy-slow,
--copy-and-make-adjustments).

- Windows has a separate code path in the --copy mode. I don't know the
reasons or advantages of that. So it's not clear how the checksum
rewriting mode should be handled in that case. We could switch to the
non-Windows code path in that case, but then the performance difference
between the normal path and the checksum-rewriting path is even more
unclear.

[0]:
https://www.postgresql.org/message-id/flat/CAKAnmmKwiMHik5AHmBEdf5vqzbOBbcwEPHo4-PioWeAbzwcTOQ(at)mail(dot)gmail(dot)com

Attachment Content-Type Size
v1-0001-pg_upgrade-Support-for-upgrading-to-checksums-ena.patch text/plain 4.9 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2024-08-26 06:32:54 Re: Switch PgStat_HashKey.objoid from Oid to uint64
Previous Message Bharath Rupireddy 2024-08-26 06:14:05 Re: Introduce XID age and inactive timeout based replication slot invalidation