[ https://issues.apache.org/jira/browse/HBASE-7336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13533606#comment-13533606 ]
Lars Hofhansl commented on HBASE-7336: -------------------------------------- The latest test run passed. Looking at testConcurrentReading, it is a time bounded test. Checking the number of blocks that the concurrent readers manage to read within the time bound is actually *larger* without this patch (i.e. this patch is slowing this down)... Presumably because more threads are now using pread. (This test is reading random blocks randomly choosing pread vs not from many threads. And these blocks are very small too. So not sure how real world that is.) On the other hand, without this patch scanners that scan large HFiles concurrently in a tight loop are useless (i.e. never make enough progress to not time out). > HFileBlock.readAtOffset does not work well with multiple threads > ---------------------------------------------------------------- > > Key: HBASE-7336 > URL: https://issues.apache.org/jira/browse/HBASE-7336 > Project: HBase > Issue Type: Sub-task > Reporter: Lars Hofhansl > Assignee: Lars Hofhansl > Priority: Critical > Fix For: 0.96.0, 0.94.4 > > Attachments: 7336-0.94.txt, 7336-0.96.txt > > > HBase grinds to a halt when many threads scan along the same set of blocks > and neither read short circuit is nor block caching is enabled for the dfs > client ... disabling the block cache makes sense on very large scans. > It turns out that synchronizing in istream in HFileBlock.readAtOffset is the > culprit. -- 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