private void releaseResource() {
    if (chunkIndexToBuf == null) {
      return;
    }
    for (Integer key : chunkIndexToBuf.keySet()) {
      ByteBuf byteBuf = chunkIndexToBuf.remove(key);
      if (byteBuf != null) {
        ReferenceCountUtil.safeRelease(byteBuf);
      }
    }
    firstChunk.maybeReleaseDecryptionResultBuffer();
    if (dataChunks != null) {
      for (GetChunk getChunk : dataChunks) {
        getChunk.maybeReleaseDecryptionResultBuffer();
      }
    }
  }
Release all the {@link ByteBuf} in the map. Use {@link ConcurrentHashMap#remove(Object)} method to avoid
conflict with the release call in the chunk async callback.
ambry-router/src/main/java/com/github/ambry/router/GetBlobOperation.java