hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18085) Prevent parallel purge in ObjectPool
Date Tue, 23 May 2017 05:08:04 GMT

    [ https://issues.apache.org/jira/browse/HBASE-18085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16020668#comment-16020668
] 

Anoop Sam John commented on HBASE-18085:
----------------------------------------

In ur test method for tryLock, there is no logic other than just try lock and release.  If
that is been removed as dead code by compiler?  One way to avoid that is using the return
value.  See BlackHole in JMH and its usage.. The diff in numbers that reported by JMH benchmark
is so huge!  The impl of tryLock is having a volatile read and all.   So this huge diff in
numbers looks strange no? That was my doubt. 

> 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
>         Attachments: e89l05465.st3.jstack, HBASE-18085.patch
>
>
> 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)

Mime
View raw message