private byte[] toCompactionEventTrackerBytes(Collection<HStoreFile> storeFiles) {
      Set<String> notArchivedCompactedStoreFiles = this.compactedFilesSupplier.get().stream()
        .map(sf -> sf.getPath().getName()).collect(Collectors.toSet());
      Set<String> compactedStoreFiles = new HashSet<>();
      for (HStoreFile storeFile : storeFiles) {
        compactedStoreFiles.add(storeFile.getFileInfo().getPath().getName());
        for (String csf : storeFile.getCompactedStoreFiles()) {
          if (notArchivedCompactedStoreFiles.contains(csf)) {
            compactedStoreFiles.add(csf);
          }
        }
      }
      return ProtobufUtil.toCompactionEventTrackerBytes(compactedStoreFiles);
    }
Used when write {@link HStoreFile#COMPACTION_EVENT_KEY} to new file's file info. The
compacted store files's name is needed. But if the compacted store file is a result of
compaction, it's compacted files which still not archived is needed, too. And don't need to
add compacted files recursively. If file A, B, C compacted to new file D, and file D
compacted to new file E, will write A, B, C, D to file E's compacted files. So if file E
compacted to new file F, will add E to F's compacted files first, then add E's compacted
files: A, B, C, D to it. And no need to add D's compacted file, as D's compacted files has
been in E's compacted files, too. See HBASE-20724 for more details.
@param storeFiles The compacted store files to generate this new file
@return bytes of CompactionEventTracker
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileWriter.java