@Test
  public void concurrentBatchDeleteTest() throws Exception {
    int extraBlobCount = 2000 / PUT_RECORD_SIZE + 1;
    put(extraBlobCount, PUT_RECORD_SIZE, Utils.Infinite_Time);
    List<BatchDeleter> batchDeleters = new ArrayList<>(liveKeys.size());
    List<MockId> liveKeysArray = new ArrayList<>(liveKeys);
    int chunkSize = 5;
    for (int i=0; i<liveKeysArray.size(); i+=chunkSize){
      batchDeleters.add(new BatchDeleter(liveKeysArray.subList(i, Math.min(i+chunkSize, liveKeysArray.size()))));
    }
    ExecutorService executorService = Executors.newFixedThreadPool(batchDeleters.size());
    try {
      List<Future<CallableResult>> futures = executorService.invokeAll(batchDeleters);
      verifyBatchDeleteFutures(batchDeleters, futures);
    } finally {
      executorService.shutdownNow();
    }
  }
Tests the case where there are many concurrent BATCH_DELETEs each deleting a list of ids
@throws Exception
ambry-store/src/test/java/com/github/ambry/store/BlobStoreTest.java