Re: Checkpointer write combining
Melanie Plageman <melanieplageman@gmail.com>
From: Melanie Plageman <melanieplageman@gmail.com>
To: Nazir Bilal Yavuz <byavuz81@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Andres Freund <andres@anarazel.de>
Date: 2025-09-09T13:39:19Z
Lists: pgsql-hackers
Attachments
- v3-0003-Eagerly-flush-bulkwrite-strategy-ring.patch (text/x-patch) patch v3-0003
- v3-0001-Refactor-goto-into-for-loop-in-GetVictimBuffer.patch (text/x-patch) patch v3-0001
- v3-0002-Split-FlushBuffer-into-two-parts.patch (text/x-patch) patch v3-0002
- v3-0005-Fix-XLogNeedsFlush-for-checkpointer.patch (text/x-patch) patch v3-0005
- v3-0004-Write-combining-for-BAS_BULKWRITE.patch (text/x-patch) patch v3-0004
- v3-0007-Implement-checkpointer-data-write-combining.patch (text/x-patch) patch v3-0007
- v3-0006-Add-database-Oid-to-CkptSortItem.patch (text/x-patch) patch v3-0006
On Tue, Sep 9, 2025 at 9:27 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote: > Thanks for the review! > From 053dd9d15416d76ce4b95044d848f51ba13a2d20 Mon Sep 17 00:00:00 2001 > From: Melanie Plageman <melanieplageman@gmail.com> > Date: Tue, 2 Sep 2025 11:00:44 -0400 > Subject: [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() > > @@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy > strategy, BufferDesc *buf, bool from_r > strategy->buffers[strategy->current] != BufferDescriptorGetBuffer(buf)) > return false; > > + buf_state = LockBufHdr(buf); > + lsn = BufferGetLSN(buf); > + UnlockBufHdr(buf, buf_state); > + > + if (!XLogNeedsFlush(lsn)) > + return true; > > I think this should return false. Oops, you're right. v3 attached with that mistake fixed. - Melanie