postgresql/src
Andres Freund a766125efd bufmgr: Switch to standard order in MarkBufferDirtyHint()
When we were updating hint bits with just a share lock MarkBufferDirtyHint()
had to use a non-standard order of operations, i.e. WAL log the buffer before
marking the buffer dirty. This was required because the lock level used to set
hints did not conflict with the lock level that was used to flush pages, which
would have allowed flushing the page out before the WAL record. The
non-standard order in turn required preventing the checkpoint from starting
between writing the WAL record and flushing out the page.

Now that setting hints and writing out buffers use share-exclusive, we can
revert back to the normal order of operations.

Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Discussion: https://postgr.es/m/5ubipyssiju5twkb7zgqwdr7q2vhpkpmuelxfpanetlk6ofnop@hvxb4g2amb2d
2026-03-11 14:58:29 -04:00
..
backend bufmgr: Switch to standard order in MarkBufferDirtyHint() 2026-03-11 14:58:29 -04:00
bin Introduce the REPACK command 2026-03-10 19:56:39 +01:00
common Don't include wait_event.h in pgstat.h 2026-03-06 16:24:58 +01:00
fe_utils pg_dumpall: Fix handling of conflicting options. 2026-03-06 14:00:04 -06:00
include bufmgr: Remove the, now obsolete, BM_JUST_DIRTIED 2026-03-11 14:58:29 -04:00
interfaces libpq: Introduce PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 2026-03-06 12:05:51 -08:00
makefiles Restore AIX support. 2026-02-23 13:34:22 -05:00
pl EUC_CN, EUC_JP, EUC_KR, EUC_TW: Skip U+00A0 tests instead of failing. 2026-02-25 18:13:22 -08:00
port Check for memset_explicit() and explicit_memset() 2026-03-02 07:51:19 +01:00
template Restore AIX support. 2026-02-23 13:34:22 -05:00
test Introduce the REPACK command 2026-03-10 19:56:39 +01:00
timezone Use fallthrough attribute instead of comment 2026-02-19 08:51:12 +01:00
tools Require share-exclusive lock to set hint bits and to flush 2026-03-10 19:32:13 -04:00
tutorial Force standard_conforming_strings to always be ON. 2026-01-21 15:08:38 -05:00
.gitignore
DEVELOPERS
Makefile Remove distprep 2023-11-06 15:18:04 +01:00
Makefile.global.in tests: Add a test C++ extension module 2026-01-20 16:42:30 +01:00
Makefile.shlib Restore AIX support. 2026-02-23 13:34:22 -05:00
meson.build Update copyright for 2026 2026-01-01 13:24:10 -05:00
nls-global.mk Fix update-po for the PGXS case 2025-10-16 20:21:05 +02:00