docs: protected Pair<Double, ServerHolder> chooseBestServer(
        final DataSegment proposalSegment,
        final Iterable<ServerHolder> serverHolders,
        final boolean includeCurrentServer
    )
    {
      Pair<Double, ServerHolder> bestServer = Pair.of(Double.POSITIVE_INFINITY, null);
  
      List<ListenableFuture<Pair<Double, ServerHolder>>> futures = new ArrayList<>();
  
      for (final ServerHolder server : serverHolders) {
        futures.add(
            exec.submit(
                () -> Pair.of(computeCost(proposalSegment, server, includeCurrentServer), server)
            )
        );
      }
  
      final ListenableFuture<List<Pair<Double, ServerHolder>>> resultsFuture = Futures.allAsList(futures);
      final List<Pair<Double, ServerHolder>> bestServers = new ArrayList<>();
      bestServers.add(bestServer);
      try {
        for (Pair<Double, ServerHolder> server : resultsFuture.get()) {
          if (server.lhs <= bestServers.get(0).lhs) {
            if (server.lhs < bestServers.get(0).lhs) {
              bestServers.clear();
            }
            bestServers.add(server);
          }
        }
  
        // Randomly choose a server from the best servers
        bestServer = bestServers.get(ThreadLocalRandom.current().nextInt(bestServers.size()));
      }
      catch (Exception e) {
        log.makeAlert(e, "Cost Balancer Multithread strategy wasn't able to complete cost computation.").emit();
      }
      return bestServer;
    }