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

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