Noah Misch <noah@leadboat.com> writes:
> On Tue, Oct 26, 2021 at 03:41:58PM -0400, Tom Lane wrote:
>> Now the problem with this is it will only work back to v12, because
>> pgbench lacks the necessary features before that. However, I think
>> it's worth doing it like this in versions where we can do so, because
>> of the load-balancing aspect: this won't waste cycles running CICs
>> after the inserts have stopped, nor vice versa.
> I tried it out with the fix removed (git checkout fdd965d; git checkout HEAD^
> src/include src/backend; git apply CIC-test-with-one-pgbench.patch).
> Sensitivity (~25%) and runtime (~900ms) were in the same ballpark. Still,
> even if it doesn't buy back notable cycles, the test code seems easier to read
> and understand with your change.
The point wasn't to reduce the runtime: it was to get more useful test
iterations in the same runtime. A test iteration that runs CIC while
there are no concurrent inserts isn't providing any useful coverage.
It's possible that with this patch, we could dial it back to less
than 1000 (200x5) total transactions and still get the same effective
number of test iterations as we have in HEAD. I didn't really
look into that. I did notice that even on a much faster machine
than prairiedog, HEAD wastes at least three-quarters of the CIC
iterations.
regards, tom lane