public void writeRegionServerLogTimestamp(Set<TableName> tables, Map<String, Long> newTimestamps,
    String backupRoot) throws IOException {
    if (LOG.isTraceEnabled()) {
      LOG.trace("write RS log time stamps to backup system table for tables ["
        + StringUtils.join(tables, ",") + "]");
    }
    List<Put> puts = new ArrayList<>();
    for (TableName table : tables) {
      byte[] smapData = toTableServerTimestampProto(table, newTimestamps).toByteArray();
      Put put = createPutForWriteRegionServerLogTimestamp(table, smapData, backupRoot);
      puts.add(put);
    }
    try (BufferedMutator bufferedMutator = connection.getBufferedMutator(tableName)) {
      bufferedMutator.mutate(puts);
    }
  }
Write the current timestamps for each regionserver to backup system table after a successful
full or incremental backup. The saved timestamp is of the last log file that was backed up
already.
@param tables        tables
@param newTimestamps timestamps
@param backupRoot    root directory path to backup
@throws IOException exception
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java