Yu Li created HBASE-18085:
-----------------------------
Summary: Prevent parallel purge in ObjectPool
Key: HBASE-18085
URL: https://issues.apache.org/jira/browse/HBASE-18085
Project: HBase
Issue Type: Bug
Reporter: Yu Li
Assignee: Yu Li
Parallel purge in ObjectPool is meaningless and will cause contention issue
since {{ReferenceQueue#poll}} has synchronization (source code shown below)
{code}
public Reference<? extends T> poll() {
if (head == null)
return null;
synchronized (lock) {
return reallyPoll();
}
}
{code}
We observed threads blocking on the purge method while using offheap bucket
cache, and we could easily reproduce this by testing the 100% cache hit case in
bucket cache with enough reading threads.
We propose to add a purgeLock and use tryLock to avoid parallel purge.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)