[ 
https://issues.apache.org/jira/browse/HBASE-9915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lars Hofhansl updated HBASE-9915:
---------------------------------

    Description: 
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.

> 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
>             Fix For: 0.98.0, 0.96.1, 0.94.14
>
>         Attachments: 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