Re: Speedup truncations of temporary relation forks - Mailing list pgsql-hackers

From Daniil Davydov
Subject Re: Speedup truncations of temporary relation forks
Date
Msg-id CAJDiXgiGw867M8GL7MCtYzRiCkeFoABTV0FiOL0cV+dypDM05g@mail.gmail.com
Whole thread Raw
In response to Re: Speedup truncations of temporary relation forks  (Fujii Masao <masao.fujii@oss.nttdata.com>)
Responses Re: Speedup truncations of temporary relation forks
List pgsql-hackers
Hi,

On Sat, May 31, 2025 at 7:41 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>
> Here are a few review comments on the patch:
>
> +               for (j = 0; j < nforks; j++)
>                 {
> -                       InvalidateLocalBuffer(bufHdr, true);
> +                       if ((buf_state & BM_TAG_VALID) &&
> +                               BufTagGetForkNum(&bufHdr->tag) == forkNum[j] &&
> +                               bufHdr->tag.blockNum >= firstDelBlock[j])
> +                       {
> +                               InvalidateLocalBuffer(bufHdr, true);
> +                       }
>
> It looks like the "buf_state & BM_TAG_VALID" check can be moved
> outside the loop, along with the BufTagMatchesRelFileLocator() check.
> That would avoid unnecessary looping.
>
> Also, should we add a "break" right after calling InvalidateLocalBuffer()?
> Since the buffer has already been invalidated, continuing the loop
> may not be necessary.

Thanks for the review! I'll fix both remarks. Please see the v2 patch.

--
Best regards,
Daniil Davydov

Attachment

pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: Speedup truncations of temporary relation forks
Next
From: Tom Lane
Date:
Subject: Re: [PING] fallocate() causes btrfs to never compress postgresql files