You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Lijin Bin (Jira)" <ji...@apache.org> on 2019/10/30 09:25:00 UTC
[jira] [Created] (HBASE-23231) ReplicationSource do not update
metrics when refresh
Lijin Bin created HBASE-23231:
---------------------------------
Summary: ReplicationSource do not update metrics when refresh
Key: HBASE-23231
URL: https://issues.apache.org/jira/browse/HBASE-23231
Project: HBase
Issue Type: Bug
Affects Versions: 2.2.2
Reporter: Lijin Bin
Assignee: Lijin Bin
When replication refresh to new state, it will create a new source and terminate the old source and replace the old source with new source.
{code}
public void refreshSources(String peerId) throws IOException {
String terminateMessage = "Peer " + peerId +
" state or config changed. Will close the previous replication source and open a new one";
ReplicationPeer peer = replicationPeers.getPeer(peerId);
ReplicationSourceInterface src = createSource(peerId, peer);
// synchronized on latestPaths to avoid missing the new log
synchronized (this.latestPaths) {
ReplicationSourceInterface toRemove = this.sources.put(peerId, src);
if (toRemove != null) {
LOG.info("Terminate replication source for " + toRemove.getPeerId());
toRemove.terminate(terminateMessage);
}
for (NavigableSet<String> walsByGroup : walsById.get(peerId).values()) {
walsByGroup.forEach(wal -> src.enqueueLog(new Path(this.logDir, wal)));
}
}
LOG.info("Startup replication source for " + src.getPeerId());
src.startup();
{code}
terminate replication source will remove all metrics, current terminate replication source be called after create new source which do init metrics, so the result is there is no corresponding metrics after refresh replication source.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)