You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vj...@apache.org on 2021/01/20 12:52:44 UTC
[hbase] branch branch-1 updated: HBASE-25329 Dump ritsOverThreshold
in logs (#2762) (#2761)
This is an automated email from the ASF dual-hosted git repository.
vjasani 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 a819012 HBASE-25329 Dump ritsOverThreshold in logs (#2762) (#2761)
a819012 is described below
commit a8190124b604dda5c5fc7d7e536c2e311cc2aae5
Author: caroliney14 <ca...@berkeley.edu>
AuthorDate: Wed Jan 20 04:51:52 2021 -0800
HBASE-25329 Dump ritsOverThreshold in logs (#2762) (#2761)
Signed-off-by: Bharath Vissapragada <bh...@apache.org>
Signed-off-by: Viraj Jasani <vj...@apache.org>
---
.../hbase/master/MetricsAssignmentManagerSource.java | 2 +-
.../org/apache/hadoop/hbase/master/AssignmentManager.java | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
index 08b4ac5..9473b26 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
@@ -40,7 +40,7 @@ public interface MetricsAssignmentManagerSource extends BaseSource {
/**
* Description
*/
- String METRICS_DESCRIPTION = "Metrics about HBase master assingment manager.";
+ String METRICS_DESCRIPTION = "Metrics about HBase master assignment manager.";
String RIT_COUNT_NAME = "ritCount";
String RIT_COUNT_OVER_THRESHOLD_NAME = "ritCountOverThreshold";
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
index 4e25634..2b8c521 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
@@ -3538,6 +3538,7 @@ public class AssignmentManager extends ZooKeeperListener {
int totalRITs = 0;
int totalRITsOverThreshold = 0;
long oldestRITTime = 0;
+ Map<String, RegionState> ritsOverThreshold = null;
int ritThreshold = this.server.getConfiguration().
getInt(HConstants.METRICS_RIT_STUCK_WARNING_THRESHOLD, 60000);
for (RegionState state: regionStates.getRegionsInTransition()) {
@@ -3545,11 +3546,24 @@ public class AssignmentManager extends ZooKeeperListener {
long ritTime = currentTime - state.getStamp();
if (ritTime > ritThreshold) { // more than the threshold
totalRITsOverThreshold++;
+ if (ritsOverThreshold == null) {
+ ritsOverThreshold = new HashMap<>();
+ }
+ ritsOverThreshold.put(state.getRegion().getEncodedName(), state);
}
if (oldestRITTime < ritTime) {
oldestRITTime = ritTime;
}
}
+ if (LOG.isDebugEnabled() && ritsOverThreshold != null && !ritsOverThreshold.isEmpty()) {
+ StringBuilder sb = new StringBuilder();
+ for (Map.Entry<String, RegionState> rit: ritsOverThreshold.entrySet()) {
+ sb.append(rit.getKey()).append(":")
+ .append(rit.getValue().getState().name()).append("\n");
+ }
+ sb.delete(sb.length()-1, sb.length());
+ LOG.debug("RITs over threshold: " + sb.toString());
+ }
if (this.metricsAssignmentManager != null) {
this.metricsAssignmentManager.updateRITOldestAge(oldestRITTime);
this.metricsAssignmentManager.updateRITCount(totalRITs);