Return-Path: X-Original-To: apmail-hbase-commits-archive@www.apache.org Delivered-To: apmail-hbase-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CAD5D11D09 for ; Tue, 24 Jun 2014 09:21:15 +0000 (UTC) Received: (qmail 96491 invoked by uid 500); 24 Jun 2014 09:21:15 -0000 Delivered-To: apmail-hbase-commits-archive@hbase.apache.org Received: (qmail 96445 invoked by uid 500); 24 Jun 2014 09:21:15 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 96436 invoked by uid 99); 24 Jun 2014 09:21:15 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Jun 2014 09:21:15 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 6C75590F934; Tue, 24 Jun 2014 09:21:15 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: nkeywal@apache.org To: commits@hbase.apache.org Message-Id: <85162e4bbc0a4e95a4b163fbc38d44f5@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: git commit: HBASE-11387 metrics: wrong totalRequestCount Date: Tue, 24 Jun 2014 09:21:15 +0000 (UTC) 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 Authored: Tue Jun 24 11:21:12 2014 +0200 Committer: Nicolas Liochon 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 gets = new ArrayList(); + 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(); }