TableDescriptor[] getTables(AtomicInteger numSkipped) {
    List<TableName> tableNames = new ArrayList<>();
    long now = EnvironmentEdgeManager.currentTime();

    for (HbckRegionInfo hbi : regionInfoMap.values()) {
      HbckRegionInfo.MetaEntry info = hbi.getMetaEntry();

      // if the start key is zero, then we have found the first region of a table.
      // pick only those tables that were not modified in the last few milliseconds.
      if (
        info != null && info.getRegionInfo().getStartKey().length == 0
          && !info.getRegionInfo().isMetaRegion()
      ) {
        if (info.modTime + timelag < now) {
          tableNames.add(info.getRegionInfo().getTable());
        } else {
          numSkipped.incrementAndGet(); // one more in-flux table
        }
      }
    }
    return getTableDescriptors(tableNames);
  }
Return a list of user-space table names whose metadata have not been modified in the last few
milliseconds specified by timelag if any of the REGIONINFO_QUALIFIER, SERVER_QUALIFIER,
STARTCODE_QUALIFIER, SPLITA_QUALIFIER, SPLITB_QUALIFIER have not changed in the last
milliseconds specified by timelag, then the table is a candidate to be returned.
@return tables that have not been modified recently
@throws IOException if an error is encountered
hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java