On Thu, Sep 24, 2015 at 6:32 PM, Andres Freund <andres@anarazel.de> wrote:
On 2015-09-15 20:16:10 +0300, YUriy Zhuravlev wrote: > We will be tested.
Did you have a chance to run some benchmarks?
Yes, we now have 60 physical cores intel server and we're running benchmarks on it.
We got a consensus with Andres that we should commit the CAS version first and look to other optimizations.
Refactored version of atomic state patch is attached. The changes are following:
1) Macros are used for access refcount and usagecount.
2) likely/unlikely were removed. I think introducing of likely/unlikely should be a separate patch since it touches portability. Also, I didn't see any performance effect of this.
3) LockBufHdr returns the state after taking lock. Without using atomic increments it still can save some loops on skip atomic value reading.
pinunpin-cas-original-fix.patch is just original patch by Andres Freund with fixed bug which causes hang.
Performance comparison on 72-cores Intel server in attached. On this machine we see no regression in version of patch in previous letter.