Re: Speed up transaction completion faster after many relations are accessed in a transaction
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: David Rowley <david.rowley@2ndquadrant.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, "Imai, Yoshikazu" <imai.yoshikazu@jp.fujitsu.com>, Andres Freund <andres@anarazel.de>, Simon Riggs <simon@2ndquadrant.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2019-08-15T22:30:59Z
Lists: pgsql-hackers
On Wed, Aug 14, 2019 at 07:25:10PM +1200, David Rowley wrote: >On Thu, 25 Jul 2019 at 05:49, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> On the whole, I don't especially like this approach, because of the >> confusion between peak lock count and end-of-xact lock count. That >> seems way too likely to cause problems. > >Thanks for having a look at this. I've not addressed the points >you've mentioned due to what you mention above. The only way I can >think of so far to resolve that would be to add something to track >peak lock usage. The best I can think of to do that, short of adding >something to dynahash.c is to check how many locks are held each time >we obtain a lock, then if that count is higher than the previous time >we checked, then update the maximum locks held, (probably a global >variable). That seems pretty horrible to me and adds overhead each >time we obtain a lock, which is a pretty performance-critical path. > Would it really be a measurable overhead? I mean, we only really need one int counter, and you don't need to do the check on every lock acquisition - you just need to recheck on the first lock release. But maybe I'm underestimating how expensive it is ... Talking about dynahash - doesn't it already track this information? Maybe not directly but surely it has to track the number of entries in the hash table, in order to compute fill factor. Can't we piggy-back on that and track the highest fill-factor for a particular period of time? regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
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