Re: Speedup truncations of temporary relation forks

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Daniil Davydov <3danissimo@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-06-02T03:45:59Z
Lists: pgsql-hackers

On 2025/05/31 23:23, Daniil Davydov wrote:
> 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.

Thanks for updating the patch! I have no further comments.

Since both you and Dilip have confirmed the performance improvement by
the patch, probably we can mark this patch as Ready for Committer?
The actual commit will need to wait until development for v19 opens, though.

Regards,

-- 
Fujii Masao
NTT DATA Japan Corporation




Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Speed up truncation of temporary relations.

  2. Speedup truncations of relation forks.