Re: Checkpointer write combining

From: Melanie Plageman <melanieplageman(at)gmail(dot)com>
To: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Cc: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: Checkpointer write combining
Date: 2026-01-13 22:24:57
Message-ID: CAAKRu_bO0AopZhdpYVec+x8GsNrRxE4rq22AiOouViVVyOHU=w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Attached v12 fixes a variety of buglets I found throughout the patch set.

I've also done quite a bit of refactoring. The scope of the
refactoring varies from inlining some helpers to introducing new input
argument structs.

0001 is independently valuable as it optimizes StrategyRejectBuffer()
a bit and makes GetVictimBuffer() cleaner

0002-0007 were largely present in older versions of the patch set

0008 is new -- it is an early version of batching for normal backends
flushing a buffer to obtain a clean one. Right now, it checks if the
two blocks succeeding the target block are in shared buffers and
dirty, and, if so, writes them out with the target buffer. I haven't
started testing or benchmarking it because I need to convert bgwriter
to use write combining to be able to benchmark it effectively. But I
thought I would get the code out there sooner rather than later.

It's a lot harder with my current code structure to add the target
block's predecessor if it is dirty and read to write out. I wonder how
important this is vs just the two succeeding blocks.

- Melanie

Attachment Content-Type Size
v12-0001-Streamline-buffer-rejection-for-bulkreads-of-unl.patch text/x-patch 5.6 KB
v12-0002-Split-FlushBuffer-into-two-parts.patch text/x-patch 7.6 KB
v12-0003-Eagerly-flush-bulkwrite-strategy-ring.patch text/x-patch 10.0 KB
v12-0004-Write-combining-for-BAS_BULKWRITE.patch text/x-patch 21.4 KB
v12-0005-Add-database-Oid-to-CkptSortItem.patch text/x-patch 1.9 KB
v12-0006-Implement-checkpointer-data-write-combining.patch text/x-patch 10.6 KB
v12-0007-Refactor-SyncOneBuffer-for-bgwriter-use-only.patch text/x-patch 6.1 KB
v12-0008-Eagerly-flush-buffer-successors.patch text/x-patch 7.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Melanie Plageman 2026-01-13 22:30:58 Re: Eagerly evict bulkwrite strategy ring
Previous Message Rustam ALLAKOV 2026-01-13 22:06:04 Re: Add support for EXTRA_REGRESS_OPTS for meson