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)

Reply via email to