[ 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)