You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Lars Hofhansl (JIRA)" <ji...@apache.org> on 2014/02/27 05:52:23 UTC
[jira] [Created] (HBASE-10625) Remove unnecessary key compare from
AbstractScannerV2.reseekTo
Lars Hofhansl created HBASE-10625:
-------------------------------------
Summary: Remove unnecessary key compare from AbstractScannerV2.reseekTo
Key: HBASE-10625
URL: https://issues.apache.org/jira/browse/HBASE-10625
Project: HBase
Issue Type: Bug
Reporter: Lars Hofhansl
Attachments: 10625-0.94.txt
In reseekTo we find this
{code}
...
compared = compareKey(reader.getComparator(), key, offset, length);
if (compared < 1) {
// If the required key is less than or equal to current key, then
// don't do anything.
return compared;
} else {
...
return loadBlockAndSeekToKey(this.block, this.nextIndexedKey,
false, key, offset, length, false);
...
{code}
loadBlockAndSeekToKey already does the right thing when a we pass a key that sorts before the current key. It's less efficient than this early check, but in the vast (all?) cases we pass forward keys (as required by the reseek contract). We're optimizing the wrong thing.
Scanning with the ExplicitColumnTracker is 20-30% faster.
(I tested with rows of 5 short KVs selected the 2nd and or 4th column)
I propose simply removing that check.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)