You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nk...@apache.org on 2014/06/24 11:21:15 UTC
git commit: HBASE-11387 metrics: wrong totalRequestCount
Repository: hbase
Updated Branches:
refs/heads/master af9e519e0 -> b2914be9d
HBASE-11387 metrics: wrong totalRequestCount
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b2914be9
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b2914be9
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b2914be9
Branch: refs/heads/master
Commit: b2914be9d32876a5a3337bcfed7dc68c5b7e7a98
Parents: af9e519
Author: Nicolas Liochon <nk...@gmail.com>
Authored: Tue Jun 24 11:21:12 2014 +0200
Committer: Nicolas Liochon <nk...@gmail.com>
Committed: Tue Jun 24 11:21:12 2014 +0200
----------------------------------------------------------------------
.../hadoop/hbase/regionserver/HRegion.java | 2 +-
.../hbase/regionserver/RSRpcServices.java | 1 -
.../regionserver/TestRegionServerMetrics.java | 50 +++++++++++++++-----
3 files changed, 38 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/b2914be9/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index 5b7d41d..309d0c0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -2269,8 +2269,8 @@ public class HRegion implements HeapSize { // , Writable{
try {
if (!initialized) {
+ this.writeRequestsCount.add(batchOp.operations.length);
if (!batchOp.isInReplay()) {
- this.writeRequestsCount.increment();
doPreMutationHook(batchOp);
}
initialized = true;
http://git-wip-us.apache.org/repos/asf/hbase/blob/b2914be9/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
index 4d133c3..e94c506 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
@@ -580,7 +580,6 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
mArray[i++] = mutation;
}
- requestCount.add(mutations.size());
if (!region.getRegionInfo().isMetaTable()) {
regionServer.cacheFlusher.reclaimMemStoreMemory();
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/b2914be9/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
index eacdecb..99ea553 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
@@ -32,6 +32,8 @@ import org.junit.experimental.categories.Category;
import static org.junit.Assert.*;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
@Category(MediumTests.class)
@@ -106,30 +108,36 @@ public class TestRegionServerMetrics {
TEST_UTIL.createTable(tName, cfName);
new HTable(conf, tName).close(); //wait for the table to come up.
- metricsRegionServer.getRegionServerWrapper().forceRecompute();
- long requests = metricsHelper.getCounter("totalRequestCount", serverSource);
- long readRequests = metricsHelper.getCounter("readRequestCount", serverSource);
- long writeRequests = metricsHelper.getCounter("writeRequestCount", serverSource);
+ // Do a first put to be sure that the connection is established, meta is there and so on.
HTable table = new HTable(conf, tName);
-
Put p = new Put(row);
-
-
p.add(cfName, qualifier, initValue);
+ table.put(p);
+
+ metricsRegionServer.getRegionServerWrapper().forceRecompute();
+ long requests = metricsHelper.getCounter("totalRequestCount", serverSource);
+ long readRequests = metricsHelper.getCounter("readRequestCount", serverSource);
+ long writeRequests = metricsHelper.getCounter("writeRequestCount", serverSource);
for (int i=0; i< 30; i++) {
table.put(p);
}
-
- table.flushCommits();
+ metricsRegionServer.getRegionServerWrapper().forceRecompute();
+ metricsHelper.assertCounter("totalRequestCount", requests + 30, serverSource);
+ metricsHelper.assertCounter("readRequestCount", readRequests, serverSource);
+ metricsHelper.assertCounter("writeRequestCount", writeRequests + 30, serverSource);
Get g = new Get(row);
for (int i=0; i< 10; i++) {
table.get(g);
}
+ metricsRegionServer.getRegionServerWrapper().forceRecompute();
+ metricsHelper.assertCounter("totalRequestCount", requests + 40, serverSource);
+ metricsHelper.assertCounter("readRequestCount", readRequests + 10, serverSource);
+ metricsHelper.assertCounter("writeRequestCount", writeRequests + 30, serverSource);
for ( HRegionInfo i:table.getRegionLocations().keySet()) {
MetricsRegionAggregateSource agg = rs.getRegion(i.getRegionName())
@@ -141,14 +149,30 @@ public class TestRegionServerMetrics {
"_region_" + i.getEncodedName()+
"_metric";
metricsHelper.assertCounter(prefix + "_getNumOps", 10, agg);
- metricsHelper.assertCounter(prefix + "_mutateCount", 30, agg);
+ metricsHelper.assertCounter(prefix + "_mutateCount", 31, agg);
+ }
+
+ List<Get> gets = new ArrayList<Get>();
+ for (int i=0; i< 10; i++) {
+ gets.add(new Get(row));
}
+ table.get(gets);
+ metricsRegionServer.getRegionServerWrapper().forceRecompute();
+ metricsHelper.assertCounter("totalRequestCount", requests + 50, serverSource);
+ metricsHelper.assertCounter("readRequestCount", readRequests + 20, serverSource);
+ metricsHelper.assertCounter("writeRequestCount", writeRequests + 30, serverSource);
+
+ table.setAutoFlushTo(false);
+ for (int i=0; i< 30; i++) {
+ table.put(p);
+ }
+ table.flushCommits();
metricsRegionServer.getRegionServerWrapper().forceRecompute();
- metricsHelper.assertCounterGt("totalRequestCount", requests + 39, serverSource);
- metricsHelper.assertCounterGt("readRequestCount", readRequests + 9, serverSource);
- metricsHelper.assertCounterGt("writeRequestCount", writeRequests + 29, serverSource);
+ metricsHelper.assertCounter("totalRequestCount", requests + 80, serverSource);
+ metricsHelper.assertCounter("readRequestCount", readRequests + 20, serverSource);
+ metricsHelper.assertCounter("writeRequestCount", writeRequests + 60, serverSource);
table.close();
}