Re: Speed up transaction completion faster after many relations are accessed in a transaction
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
"Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Cc: "Imai, Yoshikazu" <imai.yoshikazu@jp.fujitsu.com>,
Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>,
"'Simon Riggs'" <simon@2ndquadrant.com>,
David Rowley <david.rowley@2ndquadrant.com>,
"pgsql-hackers@lists.postgresql.org"
<pgsql-hackers@lists.postgresql.org>
Date: 2019-04-05T01:30:32Z
Lists: pgsql-hackers
On 2019/04/05 5:42, Peter Eisentraut wrote: > On 2019-04-04 06:58, Amit Langote wrote: >> Also, since the "speed up partition planning" patch went in (428b260f8), >> it might be possible to see the performance boost even with the >> partitioning example you cited upthread. > > I can't detect any performance improvement with the patch applied to > current master, using the test case from Yoshikazu Imai (2019-03-19). I was able to detect it as follows. * partitioned table setup: $ cat ht.sql drop table ht cascade; create table ht (a int primary key, b int, c int) partition by hash (a); select 'create table ht' || x::text || ' partition of ht for values with (modulus 8192, remainder ' || (x)::text || ');' from generate_series(0, 8191) x; \gexec * pgbench script: $ cat select.sql \set param random(1, 8192) select * from ht where a = :param * pgbench (5 minute run with -M prepared) pgbench -n -M prepared -T 300 -f select.sql * tps: plan_cache_mode = auto HEAD: 1915 tps Patched: 2394 tps plan_cache_mode = custom (non-problematic: generic plan is never created) HEAD: 2402 tps Patched: 2393 tps Thanks, Amit
Commits
-
Reorder LOCALLOCK structure members to compact the size
- 28988a84cf19 12.0 landed
-
Be more careful to not lose sync in the FE/BE protocol.
- 2b3a8b20c2da 9.5.0 cited