On Wed, Sep 6, 2017 at 9:16 AM, Haribabu Kommi <kommi.haribabu@gmail.com> wrote: > > Attached the latest patch and performance report. > While looking into the patch, I realized that a normal backend has to check almost 10 if conditions at worst case inside XLogWrite(6 in am_background_process method, 1 for write, 1 for blocks, 2 for fsyncs), just to decide whether it is a normal backend or not. The count is more for walwriter process. Although I've not done any performance tests, IMHO, it might add further overhead on the XLogWrite Lock.
I was thinking whether it is possible to collect all the stats in XLogWrite() irrespective of the type of backend and update the shared counters at once at the end of the function. Thoughts?
Thanks for the review.
Yes, I agree with you that the stats update can be done at the end
of the function to avoid some overhead. Updated patch is attached.
There is an overhead with IO time calculation. Is the view is good
enough without IO columns?
And also during my tests, I didn't observe any other background
processes performing the xlogwrite operation, the values are always
zero. Is it fine to merge them with backend columns?