public long splitLogDistributed(final List<Path> logDirs) throws IOException {
    if (logDirs.isEmpty()) {
      return 0;
    }
    Set<ServerName> serverNames = new HashSet<>();
    for (Path logDir : logDirs) {
      try {
        ServerName serverName = AbstractFSWALProvider.getServerNameFromWALDirectoryName(logDir);
        if (serverName != null) {
          serverNames.add(serverName);
        }
      } catch (IllegalArgumentException e) {
        // ignore invalid format error.
        LOG.warn("Cannot parse server name from " + logDir);
      }
    }
    return splitLogDistributed(serverNames, logDirs, null);
  }
The caller will block until all the log files of the given region server have been processed -
successfully split or an error is encountered - by an available worker region server. This
method must only be called after the region servers have been brought online.
@param logDirs List of log dirs to split
@throws IOException If there was an error while splitting any log file
@return cumulative size of the logfiles split
hbase-server/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java