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)