| From: | "k(dot)jamison(at)fujitsu(dot)com" <k(dot)jamison(at)fujitsu(dot)com> | 
|---|---|
| To: | "tsunakawa(dot)takay(at)fujitsu(dot)com" <tsunakawa(dot)takay(at)fujitsu(dot)com> | 
| Cc: | 'Kyotaro Horiguchi' <horikyota(dot)ntt(at)gmail(dot)com>, "amit(dot)kapila16(at)gmail(dot)com" <amit(dot)kapila16(at)gmail(dot)com>, "tgl(at)sss(dot)pgh(dot)pa(dot)us" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "andres(at)anarazel(dot)de" <andres(at)anarazel(dot)de>, "robertmhaas(at)gmail(dot)com" <robertmhaas(at)gmail(dot)com>, "tomas(dot)vondra(at)2ndquadrant(dot)com" <tomas(dot)vondra(at)2ndquadrant(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | RE: [Patch] Optimize dropping of relation buffers using dlist | 
| Date: | 2020-09-24 08:47:06 | 
| Message-ID: | OSBPR01MB2341CE626528E16413423422EF390@OSBPR01MB2341.jpnprd01.prod.outlook.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Thursday, September 24, 2020 1:27 PM, Tsunakawa-san wrote:
> (1)
> +				for (cur_blk = firstDelBlock[j]; cur_blk <
> nblocks; cur_blk++)
> 
> The right side of "cur_blk <" should not be nblocks, because nblocks is not
> the number of the relation fork anymore.
Right. Fixed. It should be the total number of (n)blocks of relation.
> (2)
> +			BlockNumber		nblocks;
> +			nblocks = smgrnblocks(smgr_reln, forkNum[j]) -
> firstDelBlock[j];
> 
> You should either:
> 
> * Combine the two lines into one: BlockNumber nblocks = ...;
> 
> or
> 
> * Put an empty line between the two lines to separate declarations and
> execution statements.
Right. I separated them in the updated patch. And to prevent confusion,
instead of nblocks, nTotalBlocks & nBlocksToInvalidate are used.
/* Get the total number of blocks for the supplied relation's fork */
nTotalBlocks = smgrnblocks(smgr_reln, forkNum[j]);
/* Get the total number of blocks to be invalidated for the specified fork */
nBlocksToInvalidate = nTotalBlocks - firstDelBlock[j];
 
> After correcting these, I think you can check the recovery performance.
I'll send performance measurement results in the next email. Thanks a lot for the reviews!
Regards,
Kirk Jamison
| Attachment | Content-Type | Size | 
|---|---|---|
| v16-Optimize-DropRelFileNodeBuffers-during-recovery.patch | application/octet-stream | 8.2 KB | 
| v1-Prevent-invalidating-blocks-in-smgrextend-during-recovery.patch | application/octet-stream | 1.1 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kyotaro Horiguchi | 2020-09-24 08:48:59 | Re: [Patch] Optimize dropping of relation buffers using dlist | 
| Previous Message | tsunakawa.takay@fujitsu.com | 2020-09-24 08:23:25 | RE: Transactions involving multiple postgres foreign servers, take 2 |