void initialize(PersistentIndex srcIndex) throws StoreException {
    this.srcIndex = srcIndex;
    if (compactionLog == null && srcIndex.hardDeleter != null && srcIndex.hardDeleter.isPaused()) {
      logger.debug("Resuming hard delete in {} during compactor initialize because there is no compaction in progress",
          storeId);
      srcIndex.hardDeleter.resume();
    }
    isActive = true;
    logger.info("Direct IO config: {}, OS: {}, availability: {}", config.storeCompactionEnableDirectIO,
        System.getProperty("os.name"), useDirectIO);
    srcMetrics.initializeCompactorGauges(storeId, compactionInProgress, currentCompactionDetails, compactedLogCount,
        logSegmentCount);
    logger.trace("Initialized BlobStoreCompactor for {}", storeId);
  }
Initializes the compactor and sets the {@link PersistentIndex} to copy data from.
@param srcIndex the {@link PersistentIndex} to copy data from.
ambry-store/src/main/java/com/github/ambry/store/BlobStoreCompactor.java