| 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 |
| 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 |