You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2015/05/02 01:33:34 UTC
[5/5] hbase git commit: HBASE-13312 SmallScannerCallable does not
increment scan metrics
HBASE-13312 SmallScannerCallable does not increment scan metrics
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/a6027aed
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/a6027aed
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/a6027aed
Branch: refs/heads/master
Commit: a6027aedb3d3e8b6d3019f7547730b0c1f595c45
Parents: 58689b4
Author: Andrew Purtell <ap...@apache.org>
Authored: Fri May 1 16:33:14 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Fri May 1 16:33:14 2015 -0700
----------------------------------------------------------------------
.../hadoop/hbase/client/ClientSmallScanner.java | 2 ++
.../hadoop/hbase/client/ScannerCallable.java | 2 +-
.../hadoop/hbase/client/TestFromClientSide.java | 33 ++++++++++++++++++++
3 files changed, 36 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/a6027aed/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientSmallScanner.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientSmallScanner.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientSmallScanner.java
index 8e4a0d8..e959e27 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientSmallScanner.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientSmallScanner.java
@@ -207,6 +207,8 @@ public class ClientSmallScanner extends ClientScanner {
} else {
setHasMoreResultsContext(false);
}
+ // We need to update result metrics since we are overriding call()
+ updateResultsMetrics(results);
return results;
} catch (ServiceException se) {
throw ProtobufUtil.getRemoteException(se);
http://git-wip-us.apache.org/repos/asf/hbase/blob/a6027aed/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java
index 6ef4fc4..85352ff 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java
@@ -325,7 +325,7 @@ public class ScannerCallable extends RegionServerCallable<Result[]> {
}
}
- private void updateResultsMetrics(Result[] rrs) {
+ protected void updateResultsMetrics(Result[] rrs) {
if (this.scanMetrics == null || rrs == null || rrs.length == 0) {
return;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/a6027aed/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
index 21df1e9..edf2293 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
@@ -5004,6 +5004,39 @@ public class TestFromClientSide {
assertEquals("Did not access all the regions in the table", numOfRegions,
scanMetrics.countOfRegions.get());
+ // check byte counters
+ scan2 = new Scan();
+ scan2.setScanMetricsEnabled(true);
+ scan2.setCaching(1);
+ scanner = ht.getScanner(scan2);
+ int numBytes = 0;
+ for (Result result : scanner.next(1)) {
+ for (Cell cell: result.listCells()) {
+ numBytes += CellUtil.estimatedSerializedSizeOf(cell);
+ }
+ }
+ scanner.close();
+ scanMetrics = scan2.getScanMetrics();
+ assertEquals("Did not count the result bytes", numBytes,
+ scanMetrics.countOfBytesInResults.get());
+
+ // check byte counters on a small scan
+ scan2 = new Scan();
+ scan2.setScanMetricsEnabled(true);
+ scan2.setCaching(1);
+ scan2.setSmall(true);
+ scanner = ht.getScanner(scan2);
+ numBytes = 0;
+ for (Result result : scanner.next(1)) {
+ for (Cell cell: result.listCells()) {
+ numBytes += CellUtil.estimatedSerializedSizeOf(cell);
+ }
+ }
+ scanner.close();
+ scanMetrics = scan2.getScanMetrics();
+ assertEquals("Did not count the result bytes", numBytes,
+ scanMetrics.countOfBytesInResults.get());
+
// now, test that the metrics are still collected even if you don't call close, but do
// run past the end of all the records
/** There seems to be a timing issue here. Comment out for now. Fix when time.