private static void processDeltaDir(Path deltadir, ValidWriteIdList writeIdList, ValidTxnList validTxnList, AcidDirectory directory, AcidUtils.HdfsDirSnapshot dirSnapshot)
      throws IOException {
    ParsedDelta delta = parsedDelta(deltadir, directory.getFs(), dirSnapshot);
    if (!isDirUsable(deltadir, delta.getVisibilityTxnId(), directory.getAbortedDirectories(), validTxnList)) {
      return;
    }
    ValidWriteIdList.RangeResponse abortRange = writeIdList.isWriteIdRangeAborted(delta.minWriteId, delta.maxWriteId);
    if (ValidWriteIdList.RangeResponse.ALL == abortRange) {
      directory.getAbortedDirectories().add(deltadir);
      directory.getAbortedWriteIds().addAll(LongStream.rangeClosed(delta.minWriteId, delta.maxWriteId)
          .boxed().collect(Collectors.toList()));
    } else {
      if (ValidWriteIdList.RangeResponse.SOME == abortRange) {
        // This means this delta contains aborted writes but can not be cleaned
        // This is important for Cleaner to not remove metadata belonging to this transaction
        directory.setUnCompactedAborts(true);
      }
      if (writeIdList.isWriteIdRangeValid(delta.minWriteId, delta.maxWriteId) != ValidWriteIdList.RangeResponse.NONE) {
        directory.getCurrentDirectories().add(delta);
      }
    }
  }
Returns {@code true} if {@code parsedBase} was created by compaction.
As of Hive 4.0 we can tell if a directory is a result of compaction based on the
presence of {@link AcidUtils#VISIBILITY_PATTERN} suffix.  Base directories written prior to
that, have to rely on the {@link MetaDataFile} in the directory. So look at the filename first
since that is the cheaper test.
ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java