HBASE-9654 Optimize HStore#getRowKeyAtOrBefore() when exact match is found
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1526321 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a21deb20f1
commit
ad2d0f45b6
|
@ -1462,8 +1462,10 @@ public class HStore implements Store {
|
||||||
StoreFile sf = sfIterator.next();
|
StoreFile sf = sfIterator.next();
|
||||||
sfIterator.remove(); // Remove sf from iterator.
|
sfIterator.remove(); // Remove sf from iterator.
|
||||||
boolean haveNewCandidate = rowAtOrBeforeFromStoreFile(sf, state);
|
boolean haveNewCandidate = rowAtOrBeforeFromStoreFile(sf, state);
|
||||||
|
KeyValue keyv = state.getCandidate();
|
||||||
|
// we have an optimization here which stops the search if we find exact match.
|
||||||
|
if (keyv != null && keyv.matchingRow(row)) return state.getCandidate();
|
||||||
if (haveNewCandidate) {
|
if (haveNewCandidate) {
|
||||||
// TODO: we may have an optimization here which stops the search if we find exact match.
|
|
||||||
sfIterator = this.storeEngine.getStoreFileManager().updateCandidateFilesForRowKeyBefore(
|
sfIterator = this.storeEngine.getStoreFileManager().updateCandidateFilesForRowKeyBefore(
|
||||||
sfIterator, state.getTargetKey(), state.getCandidate());
|
sfIterator, state.getTargetKey(), state.getCandidate());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue