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)