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)

Reply via email to