HBASE-24994 Add hedgedReadOpsInCurThread metric (#2368)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
This commit is contained in:
Javier Akira Luca de Tena 2020-09-11 14:49:33 +09:00 committed by GitHub
parent e5c0a9422c
commit 624fd046ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 22 additions and 0 deletions

View File

@ -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.";

View File

@ -358,6 +358,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.
*/

View File

@ -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())

View File

@ -842,6 +842,11 @@ class MetricsRegionServerWrapperImpl
return this.dfsHedgedReadMetrics == null ? 0 : this.dfsHedgedReadMetrics.getHedgedReadWins();
}
@Override
public long getHedgedReadOpsInCurThread() {
return this.dfsHedgedReadMetrics == null ? 0 : this.dfsHedgedReadMetrics.getHedgedReadOpsInCurThread();
}
@Override
public long getBlockedRequestsCount() {
return blockedRequestsCount;

View File

@ -370,6 +370,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
return 10;
}
@Override
public long getHedgedReadOpsInCurThread() {
return 5;
}
@Override
public long getTotalBytesRead() {
return 0;

View File

@ -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