You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Hiroshi Ikeda (JIRA)" <ji...@apache.org> on 2015/08/20 12:12:45 UTC

[jira] [Created] (HBASE-14268) Improve KeyLocker

Hiroshi Ikeda created HBASE-14268:
-------------------------------------

             Summary: Improve KeyLocker
                 Key: HBASE-14268
                 URL: https://issues.apache.org/jira/browse/HBASE-14268
             Project: HBase
          Issue Type: Improvement
          Components: util
            Reporter: Hiroshi Ikeda
            Assignee: Hiroshi Ikeda
            Priority: Minor


1. In the implementation of {{KeyLocker}} it uses atomic variables inside a synchronized block, which doesn't make sense. Moreover, logic inside the synchronized block is not trivial so that it makes less performance in heavy multi-threaded environment.
2. {{KeyLocker}} gives an instance of {{RentrantLock}} which is already locked, but it doesn't follow the contract of {{ReentrantLock}} because you are not allowed to freely invoke lock/unlock methods under that contract. That introduces a potential risk; Whenever you see a variable of the type {{RentrantLock}}, you should pay attention to what the included instance is coming from.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)