[ 
https://issues.apache.org/jira/browse/HBASE-9915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13816311#comment-13816311
 ] 

Lars Hofhansl edited comment on HBASE-9915 at 11/7/13 7:28 PM:
---------------------------------------------------------------

Here's a 0.94 patch that fixes this for me.
Only done minimal testing with this.

Speeds up some Phoenix queries (which used block encoding by default) by almost 
50% ([~giacomotaylor], FYI)


was (Author: lhofhansl):
Here's a 0.94 patch that fixes this for me.
Only done minimal testing with this.

Speeds up some Phoenix queries (which used block encoding by default) by almost 
50% ([~giacomotaylor])

> Severe performance bug: isSeeked() in EncodedScannerV2 is always false
> ----------------------------------------------------------------------
>
>                 Key: HBASE-9915
>                 URL: https://issues.apache.org/jira/browse/HBASE-9915
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.98.0, 0.96.1, 0.94.14
>
>         Attachments: 9915-0.94.txt, profile.png
>
>
> While debugging why reseek is so slow I found that it is quite broken for 
> encoded scanners.
> The problem is this:
> AbstractScannerV2.reseekTo(...) calls isSeeked() to check whether scanner was 
> seeked or not. If it was it checks whether the KV we want to seek to is in 
> the current block, if not it always consults the index blocks again.
> isSeeked checks the blockBuffer member, which is not used by EncodedScannerV2 
> and thus always returns false, which in turns causes an index lookup for each 
> reseek.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to