@Override
  public boolean shouldPerformMajorCompaction(Collection<HStoreFile> filesToCompact)
    throws IOException {
    boolean isAfterSplit = StoreUtils.hasReferences(filesToCompact);
    if (isAfterSplit) {
      LOG.info("Split detected, delegate to the parent policy.");
      return super.shouldPerformMajorCompaction(filesToCompact);
    }
    return false;
  }
FIFO compaction policy selects only files which have all cells expired. The column family MUST
have non-default TTL. One of the use cases for this policy is when we need to store raw data
which will be post-processed later and discarded completely after quite short period of time. Raw
time-series vs. time-based roll up aggregates and compacted time-series. We collect raw
time-series and store them into CF with FIFO compaction policy, periodically we run task which
creates roll up aggregates and compacts time-series, the original raw data can be discarded after
that.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/FIFOCompactionPolicy.java