From 949b143e7f0ddc7c322ecc20038dfd86fa286f2a Mon Sep 17 00:00:00 2001 From: Guanghao Zhang Date: Thu, 3 May 2018 16:45:06 +0800 Subject: [PATCH] HBASE-20524 Need to clear metrics when ReplicationSourceManager refresh replication sources --- .../hbase/replication/regionserver/RecoveredReplicationSource.java | 1 + .../apache/hadoop/hbase/replication/regionserver/ReplicationSource.java | 1 + .../hadoop/hbase/replication/regionserver/ReplicationSourceManager.java | 2 -- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java index f1ad99d..a21ca44 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java @@ -149,6 +149,7 @@ public class RecoveredReplicationSource extends ReplicationSource { Threads.sleep(100);// wait a short while for other worker thread to fully exit boolean allTasksDone = workerThreads.values().stream().allMatch(w -> w.isFinished()); if (allTasksDone) { + this.getSourceMetrics().clear(); manager.removeRecoveredSource(this); LOG.info("Finished recovering queue {} with the following stats: {}", queueId, getStats()); } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java index 236c575..b05a673 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java @@ -519,6 +519,7 @@ public class ReplicationSource implements ReplicationSourceInterface { } } } + this.metrics.clear(); } @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java index 70cd986..9b4a22c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java @@ -418,7 +418,6 @@ public class ReplicationSourceManager implements ReplicationListener { */ void removeRecoveredSource(ReplicationSourceInterface src) { LOG.info("Done with the recovered queue " + src.getQueueId()); - src.getSourceMetrics().clear(); this.oldsources.remove(src); // Delete queue from storage and memory deleteQueue(src.getQueueId()); @@ -431,7 +430,6 @@ public class ReplicationSourceManager implements ReplicationListener { */ void removeSource(ReplicationSourceInterface src) { LOG.info("Done with the queue " + src.getQueueId()); - src.getSourceMetrics().clear(); this.sources.remove(src.getPeerId()); // Delete queue from storage and memory deleteQueue(src.getQueueId()); -- 2.7.4