@Override
    public Subprocedure buildSubprocedure(String name, byte[] data) {
      List<String> families = null;
      // Currently we do not put other data except families, so it is ok to
      // judge by length that if families were specified
      if (data.length > 0) {
        try {
          HBaseProtos.NameStringPair nsp = HBaseProtos.NameStringPair.parseFrom(data);
          families = ImmutableList.copyOf(Strings.SPLITTER.split(nsp.getValue()));
        } catch (Exception e) {
          LOG.error("fail to get families by parsing from data", e);
        }
      }
      // The name of the procedure instance from the master is the table name.
      return RegionServerFlushTableProcedureManager.this.buildSubprocedure(name, families);
    }
Get the list of regions to flush for the table on this server It is possible that if a region
moves somewhere between the calls we'll miss the region.
@return the list of online regions. Empty list is returned if no regions.
hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.java