You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by se...@apache.org on 2019/02/12 21:00:47 UTC
[hbase] branch master updated: HBASE-21785 master reports open
regions as RITs and also messes up rit age metric
This is an automated email from the ASF dual-hosted git repository.
sershe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 9ef6bc4 HBASE-21785 master reports open regions as RITs and also messes up rit age metric
9ef6bc4 is described below
commit 9ef6bc4323c9be0e18f0cf9918a582e6b4a11853
Author: Sergey Shelukhin <se...@apache.org>
AuthorDate: Tue Feb 12 12:53:17 2019 -0800
HBASE-21785 master reports open regions as RITs and also messes up rit age metric
Signed-off-by: Duo Zhang <zh...@apache.org>
---
.../hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java | 4 ++--
.../apache/hadoop/hbase/master/assignment/AssignmentManager.java | 8 +++++++-
.../apache/hadoop/hbase/master/assignment/RegionStateNode.java | 6 +++++-
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java
index e8ab7d7..a702f70 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java
@@ -82,8 +82,8 @@ public class MetricsAssignmentManagerSourceImpl
}
@Override
- public void setRITOldestAge(final long ritCount) {
- ritOldestAgeGauge.set(ritCount);
+ public void setRITOldestAge(final long ritOldestAge) {
+ ritOldestAgeGauge.set(ritOldestAge);
}
@Override
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
index c12f806..2d0c3be 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
@@ -1195,7 +1195,13 @@ public class AssignmentManager {
private void update(final Collection<RegionState> regions, final long currentTime) {
for (RegionState state: regions) {
totalRITs++;
- final long ritTime = currentTime - state.getStamp();
+ final long ritStartedMs = state.getStamp();
+ if (ritStartedMs == 0) {
+ // Don't output bogus values to metrics if they accidentally make it here.
+ LOG.warn("The RIT {} has no start time", state.getRegion());
+ continue;
+ }
+ final long ritTime = currentTime - ritStartedMs;
if (ritTime > ritThreshold) {
if (ritsOverThreshold == null) {
ritsOverThreshold = new HashMap<String, RegionState>();
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java
index 087d9bc..7dbdbee 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java
@@ -169,7 +169,11 @@ public class RegionStateNode implements Comparable<RegionStateNode> {
public long getLastUpdate() {
TransitRegionStateProcedure proc = this.procedure;
- return proc != null ? proc.getLastUpdate() : lastUpdate;
+ if (proc != null) {
+ long lastUpdate = proc.getLastUpdate();
+ return lastUpdate != 0 ? lastUpdate : proc.getSubmittedTime();
+ }
+ return lastUpdate;
}
public void setLastHost(final ServerName serverName) {