You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2015/08/29 00:25:07 UTC
[4/5] hbase git commit: HBASE-14315 Save one call to
KeyValueHeap.peek per row.
HBASE-14315 Save one call to KeyValueHeap.peek per row.
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/74c5ee41
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/74c5ee41
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/74c5ee41
Branch: refs/heads/branch-1.1
Commit: 74c5ee41ed10971b8d7cc515695d3ca07faff13a
Parents: b331902
Author: Lars Hofhansl <la...@apache.org>
Authored: Fri Aug 28 15:05:41 2015 -0700
Committer: Lars Hofhansl <la...@apache.org>
Committed: Fri Aug 28 15:20:58 2015 -0700
----------------------------------------------------------------------
.../hadoop/hbase/regionserver/StoreScanner.java | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/74c5ee41/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
index f7e06ef..917412d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
@@ -496,17 +496,17 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner
return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();
}
- Cell peeked = this.heap.peek();
- if (peeked == null) {
+ Cell cell = this.heap.peek();
+ if (cell == null) {
close();
return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();
}
// only call setRow if the row changes; avoids confusing the query matcher
// if scanning intra-row
- byte[] row = peeked.getRowArray();
- int offset = peeked.getRowOffset();
- short length = peeked.getRowLength();
+ byte[] row = cell.getRowArray();
+ int offset = cell.getRowOffset();
+ short length = cell.getRowLength();
// If no limits exists in the scope LimitScope.Between_Cells then we are sure we are changing
// rows. Else it is possible we are still traversing the same row so we must perform the row
@@ -520,8 +520,6 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner
// Clear progress away unless invoker has indicated it should be kept.
if (!scannerContext.getKeepProgress()) scannerContext.clearProgress();
- Cell cell;
-
// Only do a sanity-check if store and comparator are available.
KeyValue.KVComparator comparator =
store != null ? store.getComparator() : null;
@@ -529,7 +527,7 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner
int count = 0;
long totalBytesRead = 0;
- LOOP: while((cell = this.heap.peek()) != null) {
+ LOOP: do {
// Update and check the time limit based on the configured value of cellsPerTimeoutCheck
if ((kvsScanned % cellsPerHeartbeatCheck == 0)) {
scannerContext.updateTimeProgress();
@@ -642,7 +640,7 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner
default:
throw new RuntimeException("UNEXPECTED");
}
- }
+ } while((cell = this.heap.peek()) != null);
if (count > 0) {
return scannerContext.setScannerState(NextState.MORE_VALUES).hasMoreValues();