RE: Speedup of relation deletes during recovery - Mailing list pgsql-hackers

From Jamison, Kirk
Subject RE: Speedup of relation deletes during recovery
Date
Msg-id D09B13F772D2274BB348A310EE3027C64942D7@g01jpexmbkw24
Whole thread Raw
In response to Re: Speedup of relation deletes during recovery  (Fujii Masao <masao.fujii@gmail.com>)
Responses Re: Speedup of relation deletes during recovery
List pgsql-hackers
Hello Fujii-san, 

On April 18, 2018, Fujii Masao wrote: 

> On Fri, Mar 30, 2018 at 12:18 PM, Tsunakawa, Takayuki <tsunakawa.takay@jp.fujitsu.com> wrote:
>> Furthermore, TRUNCATE has a similar and worse issue.  While DROP TABLE 
>> scans the shared buffers once for each table, TRUNCATE does that for 
>> each fork, resulting in three scans per table.  How about changing the 
>> following functions
>>
>> smgrtruncate(SMgrRelation reln, ForkNumber forknum, BlockNumber 
>> nblocks) DropRelFileNodeBuffers(RelFileNodeBackend rnode, ForkNumber forkNum,
>>                                            BlockNumber firstDelBlock)
>>
>> to
>>
>> smgrtruncate(SMgrRelation reln, ForkNumber *forknum, BlockNumber 
>> *nblocks, int nforks) DropRelFileNodeBuffers(RelFileNodeBackend rnode, ForkNumber *forkNum,
>>                                            BlockNumber *firstDelBlock, 
>> int nforks)
>>
>> to perform the scan only once per table?  If there doesn't seem to be a problem,
>> I think I'll submit the patch next month.  I'd welcome if anyone could do that.
>
> Yeah, it's worth working on this problem. To decrease the number of scans of
> shared_buffers, you would need to change the order of truncations of files and WAL
> logging. In RelationTruncate(), currently WAL is logged after FSM and VM are truncated.
> IOW, with the patch, FSM and VM would need to be truncated after WAL logging. You would
> need to check whether this reordering is valid.

I know it's been almost a year since the previous message, but if you could still
recall your suggestion above, I'd like to ask question.
Could you explain your idea a bit further on how would the reordering of WAL writing and
file truncation possibly reduce the number of shared_buffers scan?
Thanks a lot in advance.

Regards,
Kirk Jamison

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: New vacuum option to do only freezing
Next
From: Bruce Momjian
Date:
Subject: Re: finding changed blocks using WAL scanning