RE: [Patch] Optimize dropping of relation buffers using dlist

From: "Tang, Haiying" <tanghy(dot)fnst(at)cn(dot)fujitsu(dot)com>
To: "Tsunakawa, Takayuki" <tsunakawa(dot)takay(at)fujitsu(dot)com>, "Jamison, Kirk" <k(dot)jamison(at)fujitsu(dot)com>
Cc: 'Kyotaro Horiguchi' <horikyota(dot)ntt(at)gmail(dot)com>, "andres(at)anarazel(dot)de" <andres(at)anarazel(dot)de>, "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>, "thomas(dot)munro(at)gmail(dot)com" <thomas(dot)munro(at)gmail(dot)com>, "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-12-04 03:42:19
Message-ID: 483b7ce246d142918daa2cb3cdac93ca@G08CNEXMBPEKD05.g08.fujitsu.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello, Kirk

Thanks for providing the new patches.
I did the recovery performance test on them, the results look good. I'd like to share them with you and everyone else.
(I also record VACUUM and TRUNCATE execution time on master/primary in case you want to have a look.)

1. VACUUM and Failover test results(average of 15 times)
[VACUUM] ---execution time on master/primary
shared_buffers master(sec) patched(sec) %reg=((patched-master)/master)
--------------------------------------------------------------------------------------
128M 9.440 9.483 0%
10G 74.689 76.219 2%
20G 152.538 138.292 -9%

[Failover] ---execution time on standby
shared_buffers master(sec) patched(sec) %reg=((patched-master)/master)
--------------------------------------------------------------------------------------
128M 3.629 2.961 -18%
10G 82.443 2.627 -97%
20G 171.388 2.607 -98%

2. TRUNCATE and Failover test results(average of 15 times)
[TRUNCATE] ---execution time on master/primary
shared_buffers master(sec) patched(sec) %reg=((patched-master)/master)
--------------------------------------------------------------------------------------
128M 49.271 49.867 1%
10G 172.437 175.197 2%
20G 279.658 278.752 0%

[Failover] ---execution time on standby
shared_buffers master(sec) patched(sec) %reg=((patched-master)/master)
--------------------------------------------------------------------------------------
128M 4.877 3.989 -18%
10G 92.680 3.975 -96%
20G 182.035 3.962 -98%

[Machine spec]
CPU : 40 processors (Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz)
Memory: 64G
OS: CentOS 8

[Failover test data]
Total table Size: 700M
Table: 10000 tables (1000 rows per table)

If you have question on my test, please let me know.

Regards,
Tang

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Shinya11.Kato 2020-12-04 04:20:47 RE: Wrong statistics for size of XLOG_SWITCH during pg_waldump.
Previous Message Kasahara Tatsuhito 2020-12-04 03:21:44 Re: autovac issue with large number of tables