[ 
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

Reply via email to