You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Matteo Bertozzi (JIRA)" <ji...@apache.org> on 2015/06/15 18:45:00 UTC
[jira] [Created] (HBASE-13903) Speedup IdLock
Matteo Bertozzi created HBASE-13903:
---------------------------------------
Summary: Speedup IdLock
Key: HBASE-13903
URL: https://issues.apache.org/jira/browse/HBASE-13903
Project: HBase
Issue Type: Improvement
Components: regionserver
Affects Versions: 0.98.13, 1.1.0, 1.0.1, 2.0.0
Reporter: Matteo Bertozzi
Assignee: Matteo Bertozzi
Priority: Minor
Fix For: 2.0.0, 1.2.0
while testing the read path, I ended up with the profiler showing a lot of time spent in IdLock.
The IdLock is used by the HFileReader and the BucketCache, so you'll see a lot of it when you have an hotspot on a hfile.
we end up locked by that synchronized() and with too many calls to map.putIfAbsent()
{code}
public Entry getLockEntry(long id) throws IOException {
while ((existing = map.putIfAbsent(entry.id, entry)) != null) {
synchronized (existing) {
...
}
// If the entry is not locked, it might already be deleted from the
// map, so we cannot return it. We need to get our entry into the map
// or get someone else's locked entry.
}
}
public void releaseLockEntry(Entry entry) {
synchronized (entry) {
...
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)