> Could we split one freelist in hash to NUM_LOCK_PARTITIONS freelists?
> Each partition will have its own freelist and if freelist is empty
> then partition should search an entry in freelists of other
> partitions. To prevent concurrent access it's needed to add one
> LWLock to hash, each partition should lock LWlock in share mode to
> work with its own freelist and exclusive to work with other freelists.
>
> Actually, I'd like to improve all partitioned hashes instead of
> improve only one case.
It seems to be a most promising direction of research for now. I will
send a patch and benchmark results soon.