private void saveLatestContainerDeletionTime(long latestContainerDeletionTimestamp) throws CloudStorageException {
    try {
      ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
      buffer.putLong(latestContainerDeletionTimestamp);
      ByteArrayInputStream bais = new ByteArrayInputStream(buffer.array());
      requestAgent.doWithRetries(() -> {
        try {
          azureBlobDataAccessor.uploadFileAsync(AzureCloudDestination.CHECKPOINT_CONTAINER,
              CONTAINER_DELETION_CHECKPOINT_FILE, bais).join();
          return null;
        } catch (CompletionException e) {
          throw toCloudStorageException("Error uploading checkpoint file for container deletion",
              Utils.extractFutureExceptionCause(e), null);
        }
      }, "update-container-deletion-checkpoint", null);
    } catch (CloudStorageException e) {
      logger.error("Could not save update deprecated container progress", e);
      throw e;
    }
  }
Save the deleted container update checkpoint {@code latestContainerDeletionTimestamp} to Azure Blob Store.
@param latestContainerDeletionTimestamp timestamp representing deleteTriggerTime upto which deleted containers have been updated in cloud.
@throws CloudStorageException in case of any error.
ambry-cloud/src/main/java/com/github/ambry/cloud/azure/AzureContainerCompactor.java