Re: Speed up transaction completion faster after many relations are accessed in a transaction

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, "Imai, Yoshikazu" <imai(dot)yoshikazu(at)jp(dot)fujitsu(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Simon Riggs <simon(at)2ndquadrant(dot)com>
Subject: Re: Speed up transaction completion faster after many relations are accessed in a transaction
Date: 2021-07-20 05:04:19
Message-ID: CAApHDvpScZM5ybbFw6BVx9iOJsj+XF9AzotuKHRrNzC1DBmPRQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, 12 Jul 2021 at 19:23, David Rowley <dgrowleyml(at)gmail(dot)com> wrote:
> I also adjusted the hash seq scan code so that it performs better when
> faced a non-sparsely populated table. Previously my benchmark for
> that case didn't do well [2].

I was running some select only pgbench tests today on an AMD 3990x
machine with a large number of processes.

I saw that LockReleaseAll was coming up on the profile a bit at:

Master: 0.77% postgres [.] LockReleaseAll

I wondered if this patch would help, so I tried it and got:

dense hash lockrelease all: 0.67% postgres [.] LockReleaseAll

It's a very small increase which translated to about a 0.62% gain in
tps. It made me think it might be worth doing something about this
LockReleaseAll can show up when releasing small numbers of locks.

pgbench -T 240 -P 10 -c 132 -j 132 -S -M prepared --random-seed=12345 postgres

Units = tps

Sec master dense hash LockReleaseAll
10 3758201.2 3713521.5 98.81%
20 3810125.5 3844142.9 100.89%
30 3806505.1 3848458 101.10%
40 3816094.8 3855706.6 101.04%
50 3820317.2 3851717.7 100.82%
60 3827809 3851499.4 100.62%
70 3828757.9 3849312 100.54%
80 3824492.1 3852378.8 100.73%
90 3816502.1 3854793.8 101.00%
100 3819124.1 3860418.6 101.08%
110 3816154.3 3845327.7 100.76%
120 3817070.5 3845842.5 100.75%
130 3815424.7 3847626 100.84%
140 3823631.1 3846760.6 100.60%
150 3820963.8 3840196.6 100.50%
160 3827737 3841149.3 100.35%
170 3827779.2 3840130.9 100.32%
180 3829352 3842814.5 100.35%
190 3825518.3 3841991 100.43%
200 3823477.2 3839390.7 100.42%
210 3809304.3 3836433.5 100.71%
220 3814328.5 3842073.7 100.73%
230 3811399.3 3843780.7 100.85%
avg 3816959.53 3840672.478 100.62%

David

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2021-07-20 05:23:30 Re: row filtering for logical replication
Previous Message Thomas Munro 2021-07-20 05:01:43 Re: O_DIRECT on macOS