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)

Reply via email to