Hello everyone.
To find the best frequency for calling KnownAssignedXidsCompress in
Simon's patch, I made a set of benchmarks. It looks like each 8th xid
is a little bit often.
Setup and method is the same as previous (1). 16-core machines,
max_connections = 5000. Tests were running for about a day, 220 runs
in total (each version for 20 times, evenly distributed throughout the
day).
Staring from 60th second, 30 seconds-long transaction was started on primary.
Graphs in attachment. So, looks like 64 is the best value here. It
gives even a little bit more TPS than smaller values.
Yes, such benchmark does not cover all possible cases, but it is
better to measure at least something when selecting constants :)
If someone has an idea of different benchmark scenarios - please share them.
So, updated version (with 64 and some commit message) in attachment too.
[1]:
https://www.postgresql.org/message-id/flat/CANtu0ohzBFTYwdLtcanWo4%2B794WWUi7LY2rnbHyorJdE8_ZnGg%40mail.gmail.com#379c1be7b8134ada5a574078d51b64c6