@Override
  public void init(Map<String, Object> params) {
    super.init(params);
    if (MapUtils.isNotEmpty(params)) {
      Object master = params.get(HMaster.MASTER);
      if (master != null && master instanceof MasterServices) {
        MasterServices m = (MasterServices) master;
        barrier = m.getReplicationLogCleanerBarrier();
        rpm = m.getReplicationPeerManager();
        getNotFullyDeadServers = () -> getNotFullyDeadServers(m);
        return;
      }
    }
    throw new IllegalArgumentException("Missing " + HMaster.MASTER + " parameter");
  }
Implementation of a log cleaner that checks if a log is still scheduled for replication before
deleting it when its TTL is over.
<p/>
The logic is a bit complicated after we switch to use table based replication queue storage, see
the design doc in HBASE-27109 and the comments in HBASE-27214 for more details.
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java