You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by en...@apache.org on 2016/11/09 02:31:38 UTC
hbase git commit: HBASE-17017 Remove the current per-region latency
histogram metrics
Repository: hbase
Updated Branches:
refs/heads/branch-1 a70f73c1e -> 123d26ed9
HBASE-17017 Remove the current per-region latency histogram metrics
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/123d26ed
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/123d26ed
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/123d26ed
Branch: refs/heads/branch-1
Commit: 123d26ed907a9d1532386ce965ff2c388e44fe39
Parents: a70f73c
Author: Enis Soztutar <en...@apache.org>
Authored: Tue Nov 8 15:43:41 2016 -0800
Committer: Enis Soztutar <en...@apache.org>
Committed: Tue Nov 8 18:31:12 2016 -0800
----------------------------------------------------------------------
.../regionserver/MetricsRegionServerSource.java | 5 +-
.../hbase/regionserver/MetricsRegionSource.java | 12 -----
.../regionserver/MetricsRegionSourceImpl.java | 52 ++++++--------------
.../hadoop/hbase/regionserver/HRegion.java | 7 +--
.../hbase/regionserver/MetricsRegion.java | 8 ---
.../hbase/regionserver/RSRpcServices.java | 1 -
.../regionserver/TestRegionServerMetrics.java | 12 ++---
7 files changed, 25 insertions(+), 72 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/123d26ed/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
index 47fbee0..b826609 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
@@ -317,7 +317,7 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
String BLOCK_CACHE_GENERAL_BLOOM_META_HIT_COUNT = "blockCacheGeneralBloomMetaHitCount";
String BLOCK_CACHE_DELETE_FAMILY_BLOOM_HIT_COUNT = "blockCacheDeleteFamilyBloomHitCount";
String BLOCK_CACHE_TRAILER_HIT_COUNT = "blockCacheTrailerHitCount";
-
+
String RS_START_TIME_NAME = "regionServerStartTime";
String ZOOKEEPER_QUORUM_NAME = "zookeeperQuorum";
String SERVER_NAME_NAME = "serverName";
@@ -336,6 +336,7 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
String MUTATE_KEY = "mutate";
String APPEND_KEY = "append";
String REPLAY_KEY = "replay";
+ String SCAN_KEY = "scan";
String SCAN_SIZE_KEY = "scanSize";
String SCAN_TIME_KEY = "scanTime";
@@ -447,6 +448,6 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
String RPC_MUTATE_REQUEST_COUNT_DESC =
"Number of rpc mutation requests this region server has answered.";
String AVERAGE_REGION_SIZE = "averageRegionSize";
- String AVERAGE_REGION_SIZE_DESC =
+ String AVERAGE_REGION_SIZE_DESC =
"Average region size over the region server including memstore and storefile sizes.";
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/123d26ed/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
index 12ef07c..decf841 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
@@ -60,24 +60,12 @@ public interface MetricsRegionSource extends Comparable<MetricsRegionSource> {
void updateDelete();
/**
- * Update count and sizes of gets.
- * @param getSize size in bytes of the resulting key values for a get
- */
- void updateGetSize(long getSize);
-
- /**
* Update time of gets
* @param mills time for this get operation.
*/
void updateGet(long mills);
/**
- * Update the count and sizes of resultScanner.next()
- * @param scanSize Size in bytes of the resulting key values for a next()
- */
- void updateScanSize(long scanSize);
-
- /**
* Update time used of resultScanner.next().
* */
void updateScanTime(long mills);
http://git-wip-us.apache.org/repos/asf/hbase/blob/123d26ed/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java
index 16f36bb..8f17e93 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java
@@ -24,7 +24,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.metrics.Interns;
-import org.apache.hadoop.metrics2.MetricHistogram;
import org.apache.hadoop.metrics2.MetricsRecordBuilder;
import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry;
import org.apache.hadoop.metrics2.lib.MutableFastCounter;
@@ -48,21 +47,22 @@ public class MetricsRegionSourceImpl implements MetricsRegionSource {
private final String regionNamePrefix;
private final String regionPutKey;
private final String regionDeleteKey;
- private final String regionGetSizeKey;
private final String regionGetKey;
private final String regionIncrementKey;
private final String regionAppendKey;
- private final String regionScanSizeKey;
- private final String regionScanTimeKey;
+ private final String regionScanKey;
+ /*
+ * Implementation note: Do not put histograms per region. With hundreds of regions in a server
+ * histograms allocate too many counters. See HBASE-17016.
+ */
private final MutableFastCounter regionPut;
private final MutableFastCounter regionDelete;
private final MutableFastCounter regionIncrement;
private final MutableFastCounter regionAppend;
- private final MetricHistogram regionGetSize;
- private final MetricHistogram regionGet;
- private final MetricHistogram regionScanSize;
- private final MetricHistogram regionScanTime;
+ private final MutableFastCounter regionGet;
+ private final MutableFastCounter regionScan;
+
private final int hashCode;
public MetricsRegionSourceImpl(MetricsRegionWrapper regionWrapper,
@@ -95,17 +95,11 @@ public class MetricsRegionSourceImpl implements MetricsRegionSource {
regionAppendKey = regionNamePrefix + MetricsRegionServerSource.APPEND_KEY + suffix;
regionAppend = registry.getCounter(regionAppendKey, 0L);
- regionGetSizeKey = regionNamePrefix + MetricsRegionServerSource.GET_SIZE_KEY;
- regionGetSize = registry.newSizeHistogram(regionGetSizeKey);
-
- regionGetKey = regionNamePrefix + MetricsRegionServerSource.GET_KEY;
- regionGet = registry.newTimeHistogram(regionGetKey);
-
- regionScanSizeKey = regionNamePrefix + MetricsRegionServerSource.SCAN_SIZE_KEY;
- regionScanSize = registry.newSizeHistogram(regionScanSizeKey);
+ regionGetKey = regionNamePrefix + MetricsRegionServerSource.GET_KEY + suffix;
+ regionGet = registry.getCounter(regionGetKey, 0L);
- regionScanTimeKey = regionNamePrefix + MetricsRegionServerSource.SCAN_TIME_KEY;
- regionScanTime = registry.newTimeHistogram(regionScanTimeKey);
+ regionScanKey = regionNamePrefix + MetricsRegionServerSource.SCAN_KEY + suffix;
+ regionScan = registry.getCounter(regionScanKey, 0L);
hashCode = regionWrapper.getRegionHashCode();
}
@@ -134,14 +128,8 @@ public class MetricsRegionSourceImpl implements MetricsRegionSource {
registry.removeMetric(regionDeleteKey);
registry.removeMetric(regionIncrementKey);
registry.removeMetric(regionAppendKey);
- registry.removeMetric(regionGetSizeKey);
registry.removeMetric(regionGetKey);
- registry.removeMetric(regionScanSizeKey);
- registry.removeMetric(regionScanTimeKey);
- registry.removeHistogramMetrics(regionGetSizeKey);
- registry.removeHistogramMetrics(regionGetKey);
- registry.removeHistogramMetrics(regionScanSizeKey);
- registry.removeHistogramMetrics(regionScanTimeKey);
+ registry.removeMetric(regionScanKey);
regionWrapper = null;
}
@@ -158,23 +146,13 @@ public class MetricsRegionSourceImpl implements MetricsRegionSource {
}
@Override
- public void updateGetSize(long getSize) {
- regionGetSize.add(getSize);
- }
-
- @Override
public void updateGet(long mills) {
- regionGet.add(mills);
- }
-
- @Override
- public void updateScanSize(long scanSize) {
- regionScanSize.add(scanSize);
+ regionGet.incr();
}
@Override
public void updateScanTime(long mills) {
- regionScanTime.add(mills);
+ regionScan.incr();
}
@Override
http://git-wip-us.apache.org/repos/asf/hbase/blob/123d26ed/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 a93b54f..4674b4d 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
@@ -258,7 +258,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
*/
protected volatile long lastReplayedOpenRegionSeqId = -1L;
protected volatile long lastReplayedCompactionSeqId = -1L;
-
+
// collects Map(s) of Store to sequence Id when handleFileNotFound() is involved
protected List<Map> storeSeqIds = new ArrayList<>();
@@ -7085,11 +7085,6 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
void metricsUpdateForGet(List<Cell> results, long before) {
if (this.metricsRegion != null) {
- long totalSize = 0L;
- for (Cell cell : results) {
- totalSize += CellUtil.estimatedSerializedSizeOf(cell);
- }
- this.metricsRegion.updateGetSize(totalSize);
this.metricsRegion.updateGet(EnvironmentEdgeManager.currentTime() - before);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/123d26ed/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegion.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegion.java
index 94be034..0364e91 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegion.java
@@ -49,18 +49,10 @@ public class MetricsRegion {
source.updateDelete();
}
- public void updateGetSize(final long getSize) {
- source.updateGetSize(getSize);
- }
-
public void updateGet(final long t) {
source.updateGet(t);
}
- public void updateScanSize(final long scanSize) {
- source.updateScanSize(scanSize);
- }
-
public void updateScanTime(final long t) {
source.updateScanTime(t);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/123d26ed/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 26fec14..57566b6 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
@@ -2718,7 +2718,6 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
region.updateReadRequestsCount(i);
long end = EnvironmentEdgeManager.currentTime();
long responseCellSize = context != null ? context.getResponseCellSize() : 0;
- region.getMetrics().updateScanSize(responseCellSize);
region.getMetrics().updateScanTime(end - before);
if (regionServer.metricsRegionServer != null) {
regionServer.metricsRegionServer.updateScanSize(responseCellSize);
http://git-wip-us.apache.org/repos/asf/hbase/blob/123d26ed/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 d068217..e2ca677 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
@@ -157,7 +157,7 @@ public class TestRegionServerMetrics {
"_table_"+tableNameString +
"_region_" + i.getEncodedName()+
"_metric";
- metricsHelper.assertCounter(prefix + "_getNumOps", 10, agg);
+ metricsHelper.assertCounter(prefix + "_getCount", 10, agg);
metricsHelper.assertCounter(prefix + "_mutateCount", 31, agg);
}
}
@@ -229,8 +229,8 @@ public class TestRegionServerMetrics {
"_table_"+tableNameString +
"_region_" + i.getEncodedName()+
"_metric";
- metricsHelper.assertCounter(prefix + "_getSizeNumOps", 10, agg);
- metricsHelper.assertCounter(prefix + "_getNumOps", 10, agg);
+ metricsHelper.assertCounter(prefix + "_getCount", 10, agg);
+ metricsHelper.assertCounter(prefix + "_getCount", 10, agg);
}
metricsHelper.assertCounterGt("Get_num_ops", 10, serverSource);
}
@@ -446,7 +446,7 @@ public class TestRegionServerMetrics {
"_table_"+tableNameString +
"_region_" + i.getEncodedName()+
"_metric";
- metricsHelper.assertCounter(prefix + "_scanSizeNumOps", NUM_SCAN_NEXT, agg);
+ metricsHelper.assertCounter(prefix + "_scanCount", NUM_SCAN_NEXT, agg);
}
metricsHelper.assertCounterGt("ScanSize_num_ops", numScanNext, serverSource);
}
@@ -496,7 +496,7 @@ public class TestRegionServerMetrics {
"_table_"+tableNameString +
"_region_" + i.getEncodedName()+
"_metric";
- metricsHelper.assertCounter(prefix + "_scanTimeNumOps", NUM_SCAN_NEXT, agg);
+ metricsHelper.assertCounter(prefix + "_scanCount", NUM_SCAN_NEXT, agg);
}
metricsHelper.assertCounterGt("ScanTime_num_ops", numScanNext, serverSource);
}
@@ -548,7 +548,7 @@ public class TestRegionServerMetrics {
"_table_"+tableNameString +
"_region_" + i.getEncodedName()+
"_metric";
- metricsHelper.assertCounter(prefix + "_scanSizeNumOps", NUM_SCAN_NEXT, agg);
+ metricsHelper.assertCounter(prefix + "_scanCount", NUM_SCAN_NEXT, agg);
}
metricsHelper.assertCounterGt("ScanSize_num_ops", numScanNext, serverSource);
}