@Override
  public String getStats() {
    StringBuilder sb = new StringBuilder();
    sb.append("Total replicated edits: ").append(totalReplicatedEdits)
      .append(", current progress: \n");
    for (Map.Entry<String, ReplicationSourceShipper> entry : workerThreads.entrySet()) {
      String walGroupId = entry.getKey();
      ReplicationSourceShipper worker = entry.getValue();
      long position = worker.getCurrentPosition();
      Path currentPath = worker.getCurrentPath();
      sb.append("walGroup [").append(walGroupId).append("]: ");
      if (currentPath != null) {
        sb.append("currently replicating from: ").append(currentPath).append(" at position: ")
          .append(position).append("\n");
      } else {
        sb.append("no replication ongoing, waiting for new log").append("\n");
      }
    }
    return sb.toString();
  }
Do the sleeping logic
@param msg             Why we sleep
@param sleepMultiplier by how many times the default sleeping time is augmented
@return True if <code>sleepMultiplier</code> is &lt; <code>maxRetriesMultiplier</code>
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java