Hi,
Daniel Gustafsson <daniel@yesql.se> wrote:
> Given where we are in the cycle I am also in favor of a simpler solution unless
> it's shown to have (severe) performance regressions.
My earlier numbers counted the SetLatch() calls, not their cost, so I
measured the server's CPU with and without v3 (REL_19_STABLE
e60ee52841d, -O2, no cassert). The load is the same as before: small
tables moving in and out of the balance plus one parallel table, with
autovacuum saturated, 120 s per run, runs alternated.
3 workers, 8 runs each: median 25.75 s CPU both with and without v3.
One v3 run used 28.4 s, and it did not repeat in 7 more.
10 workers, 4 runs each: 125.8 s without v3 (sd 0.8), 126.1 s with
it (sd 0.3).
So I see no CPU cost from v3 at either size. One difference did show
up at 10 workers: v3 vacuumed 2.5% fewer tables in the same window, in
all four pairs. I have not checked why. It would fit the parallel
workers now following the rebalanced limit, but that is a guess.
The scripts and all runs are attached.
Regards,
Manu