void removePartition(PartitionId partitionId) {
    rwLock.writeLock().lock();
    try {
      PartitionInfo partitionInfo = partitionToPartitionInfo.get(partitionId);
      stopPartitionReplication(partitionId);
      storeManager.shutdownBlobStore(partitionId);
      storeManager.removeBlobStore(partitionId);
      partitionInfo.setReplicaThread(null);
      azureStorageContainerMetricsCollector.removePartition(partitionId.getId());
      logger.info("Partition {} removed from {}", partitionId, dataNodeId);
    } catch (Throwable e) {
      // Helix will run into error state if exception throws in Helix context.
      vcrMetrics.removePartitionErrorCount.inc();
      logger.error("Failed to remove partition-{} due to {}", partitionId, dataNodeId, e);
    } finally {
      rwLock.writeLock().unlock();
    }
  }
Remove a replica of given {@link PartitionId} and its {@link RemoteReplicaInfo}s from the backup list.
@param partitionId the {@link PartitionId} of the replica to removed.
ambry-cloud/src/main/java/com/github/ambry/cloud/VcrReplicationManager.java