[ https://issues.apache.org/jira/browse/HBASE-5898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13482856#comment-13482856 ]
Lars Hofhansl commented on HBASE-5898: -------------------------------------- I'd be still worried about checking the cache multiple times especially when the hit ratio is low. On the other hand in that case the cost of checking the cache twice is probably eclipsed by the cost of actually loading the block... So maybe it's nothing to worry about. > Consider double-checked locking for block cache lock > ---------------------------------------------------- > > Key: HBASE-5898 > URL: https://issues.apache.org/jira/browse/HBASE-5898 > Project: HBase > Issue Type: Improvement > Components: Performance > Affects Versions: 0.94.1 > Reporter: Todd Lipcon > Assignee: Todd Lipcon > Priority: Critical > Attachments: 5898-TestBlocksRead.txt, HBASE-5898-0.patch, > hbase-5898.txt > > > Running a workload with a high query rate against a dataset that fits in > cache, I saw a lot of CPU being used in IdLock.getLockEntry, being called by > HFileReaderV2.readBlock. Even though it was all cache hits, it was wasting a > lot of CPU doing lock management here. I wrote a quick patch to switch to a > double-checked locking and it improved throughput substantially for this > workload. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira