HBASE-20524 Need to clear metrics when ReplicationSourceManager refresh replication sources
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9b9f8514 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9b9f8514 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9b9f8514 Branch: refs/heads/HBASE-19064 Commit: 9b9f851470b74ea95766d2828c37e75675392a1b Parents: 09ca619 Author: Guanghao Zhang <zhangguangh...@xiaomi.com> Authored: Thu May 3 16:45:06 2018 +0800 Committer: Guanghao Zhang <zhangguangh...@xiaomi.com> Committed: Fri May 4 14:31:41 2018 +0800 ---------------------------------------------------------------------- .../replication/regionserver/RecoveredReplicationSource.java | 1 + .../hadoop/hbase/replication/regionserver/ReplicationSource.java | 1 + .../hbase/replication/regionserver/ReplicationSourceManager.java | 2 -- .../apache/hadoop/hbase/replication/ReplicationSourceDummy.java | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/9b9f8514/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java ---------------------------------------------------------------------- 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()); } http://git-wip-us.apache.org/repos/asf/hbase/blob/9b9f8514/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java ---------------------------------------------------------------------- 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 http://git-wip-us.apache.org/repos/asf/hbase/blob/9b9f8514/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java ---------------------------------------------------------------------- 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()); http://git-wip-us.apache.org/repos/asf/hbase/blob/9b9f8514/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java index ff20ddc..ec6ec96 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java @@ -80,12 +80,12 @@ public class ReplicationSourceDummy implements ReplicationSourceInterface { @Override public void terminate(String reason) { - + terminate(reason, null); } @Override public void terminate(String reason, Exception e) { - + this.metrics.clear(); } @Override