code: private CompletableFuture<Void> fetchExistingKeys(Collection<BucketUpdate.Builder> builders, DirectSegmentAccess segment,
                                                        TimeoutTimer timer) {
          Exceptions.checkNotClosed(this.closed.get(), this);
          return Futures.loop(
                  builders,
                  bucketUpdate -> fetchExistingKeys(bucketUpdate, segment, timer).thenApply(v -> true),
                  this.executor);
      }
docs: Fetches the existing keys for all buckets in the given collection of {@link BucketUpdate}s.
  
  @param builders A Collection of {@link BucketUpdate.Builder}s to fetch for. Upon completion of this method,
  this will be updated with the existing keys.
  @param segment       The segment to operate on.
  @param timer         Timer for the operation.
  @return A CompletableFuture that, when completed, will contain the collection of {@link BucketUpdate}s that was
  passed in, with the existing keys populated.