You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2020/09/11 05:49:59 UTC
[hbase] branch branch-1 updated: HBASE-24994 Add
hedgedReadOpsInCurThread metric (#2368)
This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-1 by this push:
new 624fd04 HBASE-24994 Add hedgedReadOpsInCurThread metric (#2368)
624fd04 is described below
commit 624fd046ce686a823eeadfdba59394d9885ca70b
Author: Javier Akira Luca de Tena <ak...@gmail.com>
AuthorDate: Fri Sep 11 14:49:33 2020 +0900
HBASE-24994 Add hedgedReadOpsInCurThread metric (#2368)
Signed-off-by: Duo Zhang <zh...@apache.org>
---
.../apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java | 3 +++
.../apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java | 5 +++++
.../hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java | 2 ++
.../hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java | 5 +++++
.../hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java | 5 +++++
src/main/asciidoc/_chapters/performance.adoc | 2 ++
6 files changed, 22 insertions(+)
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 219bb69..7fbebfe 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
@@ -509,6 +509,9 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
String HEDGED_READ_WINS = "hedgedReadWins";
String HEDGED_READ_WINS_DESC =
"The number of times we started a hedged read and a hedged read won";
+ String HEDGED_READ_IN_CUR_THREAD = "hedgedReadOpsInCurThread";
+ String HEDGED_READ_IN_CUR_THREAD_DESC =
+ "The number of times we execute a hedged read in current thread as a fallback for task rejection";
String RPC_GET_REQUEST_COUNT = "rpcGetRequestCount";
String RPC_GET_REQUEST_COUNT_DESC = "Number of rpc get requests this region server has answered.";
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
index c9e1545..43d6edb 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
@@ -359,6 +359,11 @@ public interface MetricsRegionServerWrapper {
long getHedgedReadWins();
/**
+ * @return Count of times a hedged read executes in current thread
+ */
+ long getHedgedReadOpsInCurThread();
+
+ /**
* @return Number of total bytes read from HDFS.
*/
long getTotalBytesRead();
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
index 24ab167..f598404 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
@@ -508,6 +508,8 @@ public class MetricsRegionServerSourceImpl
.addCounter(Interns.info(HEDGED_READS, HEDGED_READS_DESC), rsWrap.getHedgedReadOps())
.addCounter(Interns.info(HEDGED_READ_WINS, HEDGED_READ_WINS_DESC),
rsWrap.getHedgedReadWins())
+ .addCounter(Interns.info(HEDGED_READ_IN_CUR_THREAD, HEDGED_READ_IN_CUR_THREAD_DESC),
+ rsWrap.getHedgedReadOpsInCurThread())
.addCounter(Interns.info(BLOCKED_REQUESTS_COUNT, BLOCKED_REQUESTS_COUNT_DESC),
rsWrap.getBlockedRequestsCount())
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
index 6817e04..5d0d75c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
@@ -843,6 +843,11 @@ class MetricsRegionServerWrapperImpl
}
@Override
+ public long getHedgedReadOpsInCurThread() {
+ return this.dfsHedgedReadMetrics == null ? 0 : this.dfsHedgedReadMetrics.getHedgedReadOpsInCurThread();
+ }
+
+ @Override
public long getBlockedRequestsCount() {
return blockedRequestsCount;
}
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
index 90c240e..6489893 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
@@ -371,6 +371,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
}
@Override
+ public long getHedgedReadOpsInCurThread() {
+ return 5;
+ }
+
+ @Override
public long getTotalBytesRead() {
return 0;
}
diff --git a/src/main/asciidoc/_chapters/performance.adoc b/src/main/asciidoc/_chapters/performance.adoc
index 526fd01..cec5c5a 100644
--- a/src/main/asciidoc/_chapters/performance.adoc
+++ b/src/main/asciidoc/_chapters/performance.adoc
@@ -760,6 +760,8 @@ See <<hbase_metrics>> for more information.
This could indicate that read requests are often slow, or that hedged reads are triggered too quickly.
* hedgeReadOpsWin - the number of times the hedged read thread was faster than the original thread.
This could indicate that a given RegionServer is having trouble servicing requests.
+* hedgedReadOpsInCurThread - the number of times hedged read was rejected from executor and needed to fallback to be executed in current thread.
+ This could indicate that current hedged read thread pool size is not appropriate.
[[perf.deleting]]
== Deleting from HBase