Skip to content

Commit

Permalink
HBASE-24994 Add hedgedReadOpsInCurThread metric (#2365)
Browse files Browse the repository at this point in the history
Signed-off-by: Duo Zhang <[email protected]>
  • Loading branch information
javierluca authored Sep 9, 2020
1 parent 2250b51 commit 2e638de
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,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 TOTAL_BYTES_READ = "totalBytesRead";
String TOTAL_BYTES_READ_DESC = "The total number of bytes read from HDFS";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,8 @@ public void getMetrics(MetricsCollector metricsCollector, boolean all) {
.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())
.tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,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.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -928,6 +928,11 @@ public long getHedgedReadWins() {
return this.dfsHedgedReadMetrics == null? 0: this.dfsHedgedReadMetrics.getHedgedReadWins();
}

@Override
public long getHedgedReadOpsInCurThread() {
return this.dfsHedgedReadMetrics == null ? 0 : this.dfsHedgedReadMetrics.getHedgedReadOpsInCurThread();
}

@Override
public long getTotalBytesRead() {
return FSDataInputStreamWrapper.getTotalBytesRead();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,11 @@ public long getHedgedReadWins() {
return 10;
}

@Override
public long getHedgedReadOpsInCurThread() {
return 5;
}

@Override
public long getTotalBytesRead() {
return 0;
Expand Down
2 changes: 2 additions & 0 deletions src/main/asciidoc/_chapters/performance.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -801,6 +801,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]]
Expand Down

0 comments on commit 2e638de

Please sign in to comment.