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)