pgsql: Say in the FSM README why its hint writes still need full page i

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Say in the FSM README why its hint writes still need full page i
Date: 2026-09-16 10:51:11
Message-ID: E1x6nEN-00000000Znc-19oK@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Say in the FSM README why its hint writes still need full page images

The Recovery section said we would "operate correctly without the full page
images that MarkBufferDirtyHint() provides", offering them only as a way to
lose less slot knowledge to RBM_ZERO_ON_ERROR. That is true of freespace.c,
which passes RBM_ZERO_ON_ERROR on every read, and false of the system around
it, which reads the same files and does verify checksums. Reading it as a
licence to dirty FSM pages without a full page image is what led to
c06d1a4ba6b, since reverted.

Say instead that RBM_ZERO_ON_ERROR is a property of this directory rather
than of the fork, and name the readers that do not share it:
RelationCopyStorage(), RelationCopyStorageUsingBuffer(), base backups and
pg_checksums. Rather than presenting today's behavior as the only one
possible, note that the alternative is for all of that code to skip checksum
validation of the FSM.

Reported-by: Noah Misch <noah(at)leadboat(dot)com>
Reviewed-by: Noah Misch <noah(at)leadboat(dot)com>
Reviewed-by: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
Discussion: https://postgr.es/m/20260901211837.f6.noahmisch%40microsoft.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/a4f18fd8f2800084304844060fe5564136e6b3e5

Modified Files
--------------
src/backend/storage/freespace/README | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Fujii Masao 2026-09-16 11:00:35 Re: pgsql: Revert online data checksum transitions
Previous Message Alexander Korotkov 2026-09-16 10:10:44 pgsql: Use the join collation when unique-ifying a semijoin's RHS