On Thu, Mar 3, 2016 at 11:50 PM, Robert Haas <robertmhaas@gmail.com> wrote: >What if you apply both this and Amit's clog control log patch(es)? Maybe the combination of the two helps substantially more than either >one alone.
I did the above tests along with Amit's clog patch. Machine :8 socket, 64 core. 128 hyperthread.
clients
BASE
ONLY CLOG CHANGES
% Increase
ONLY SAVE SNAPSHOT
% Increase
CLOG CHANGES + SAVE SNAPSHOT
% Increase
64
29247.658034
30855.728835
5.4981181711
29254.532186
0.0235032562
32691.832776
11.7758992463
88
31214.305391
33313.393095
6.7247618606
32109.248609
2.8670931702
35433.655203
13.5173592978
128
30896.673949
34015.362152
10.0939285832
***
***
34947.296355
13.110221549
256
27183.780921
31192.895437
14.7481857938
***
***
32873.782735
20.9316056164
With clog changes, perf of caching the snapshot patch improves.
This data looks promising to me and indicates that saving the snapshot has benefits and we can see noticeable performance improvement especially once the CLog contention gets reduced. I wonder if we should try these tests with unlogged tables, because I suspect most of the contention after CLogControlLock and ProcArrayLock is for WAL related locks, so you might be able to see better gain with these patches. Do you think it makes sense to check the performance by increasing CLOG buffers (patch for same is posted in Speed up Clog thread [1]) as that also relieves contention on CLOG as per the tests I have done?