From 6cbd0fb6337c56937bacac4c1d01c4dce69f470e 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 + .../hadoop/hbase/replication/regionserver/ReplicationSource.java | 1 + .../hbase/replication/regionserver/ReplicationSourceManager.java | 2 -- .../org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java | 4 ++-- 4 files changed, 4 insertions(+), 4 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()); 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 -- 2.7.4