protected void scheduleFlush(String encodedRegionName, List<byte[]> families) {
    RegionServerServices services = this.abortable;
    HRegion r = (HRegion) services.getRegion(encodedRegionName);
    if (r == null) {
      LOG.warn("Failed to schedule flush of {}, because it is not online on us", encodedRegionName);
      return;
    }
    FlushRequester requester = services.getFlushRequester();
    if (requester == null) {
      LOG.warn("Failed to schedule flush of {}, region={}, because FlushRequester is null",
        encodedRegionName, r);
      return;
    }
    // flush specified stores to clean old logs
    requester.requestFlush(r, families, FlushLifeCycleTracker.DUMMY);
  }
Runs periodically to determine if the WAL should be rolled. NOTE: This class extends Thread
rather than Chore because the sleep time can be interrupted when there is something to do, rather
than the Chore sleep time which is invariant. TODO: change to a pool of threads
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java