Re: Speed up transaction completion faster after many relations are accessed in a transaction
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: David Rowley <david.rowley@2ndquadrant.com>
Cc: "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, "Imai, Yoshikazu" <imai.yoshikazu@jp.fujitsu.com>, Simon Riggs <simon@2ndquadrant.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2019-07-22T16:07:00Z
Lists: pgsql-hackers
Hi, On 2019-07-21 21:37:28 +1200, David Rowley wrote: > select.sql: > \set p 1 > select * from ht where a = :p > > Master: > > $ pgbench -n -f select.sql -T 60 -M prepared postgres > tps = 10172.035036 (excluding connections establishing) > tps = 10192.780529 (excluding connections establishing) > tps = 10331.306003 (excluding connections establishing) > > Patched: > > $ pgbench -n -f select.sql -T 60 -M prepared postgres > tps = 15080.765549 (excluding connections establishing) > tps = 14994.404069 (excluding connections establishing) > tps = 14982.923480 (excluding connections establishing) > > That seems fine, 46% faster. > > v6 is attached. > > I plan to push this in a few days unless someone objects. It does seem far less objectionable than the other case. I hate to throw in one more wrench into a topic finally making progress, but: Have either of you considered just replacing the dynahash table with a simplehash style one? Given the obvious speed sensitivity, and the fact that for it (in contrast to the shared lock table) no partitioning is needed, that seems like a good thing to try. It seems quite possible that both the iteration and plain manipulations are going to be faster, due to far less indirections - e.g. the iteration through the array will just be an array walk with a known stride, far easier for the CPU to prefetch. Greetings, Andres Freund
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