public void addAndStartBootstrapSession(@Nonnull PartitionId partitionId, @Nonnull String snapShotId,
      @Nonnull String bootstrappingNodeId) {
    Objects.requireNonNull(partitionId, "partitionId cannot be null");
    Objects.requireNonNull(snapShotId, "snapShotId cannot be null");
    Objects.requireNonNull(bootstrappingNodeId, "bootstrappingNodeId cannot be null");
    validateBootstrapSessionManagerIsRunningOrThrow();

    controlCompactionForBlobStore(partitionId, false);
    BootstrapSession session = new BootstrapSession(partitionId, snapShotId, bootstrappingNodeId,
        diskManagerConfig, enableCompactionOnTimerExpiryHandler, enableCompactionOnTimerExpiryHandler);
    bootstrapSessionsMap
      .computeIfAbsent(bootstrappingNodeId, k -> new HashMap<>())
      .put(partitionId.getId(), session);
    session.start();
  }
Adds a new bootstrap session and starts it.
@param partitionId The partition ID for the session.
@param snapShotId The snapshot ID for the session.
@param bootstrappingNodeId The bootstrapping node ID for the session.
ambry-store/src/main/java/com/github/ambry/store/BootstrapSessionManager.java