code: public void primeConnections(List<Server> servers) {
          if (servers == null || servers.size() == 0) {
              logger.debug("No server to prime");
              return;
          }
          for (Server server: servers) {
              server.setReadyToServe(false);
          }
          int totalCount = (int) (servers.size() * primeRatio); 
          final CountDownLatch latch = new CountDownLatch(totalCount);
          final AtomicInteger successCount = new AtomicInteger(0);
          final AtomicInteger failureCount= new AtomicInteger(0);
          primeConnectionsAsync(servers, new PrimeConnectionListener()  {            
              @Override
              public void primeCompleted(Server s, Throwable lastException) {
                  if (lastException == null) {
                      successCount.incrementAndGet();
                      s.setReadyToServe(true);
                  } else {
                      failureCount.incrementAndGet();
                  }
                  latch.countDown();
              }
          }); 
                  
          Stopwatch stopWatch = initialPrimeTimer.start();
          try {
              latch.await(maxTotalTimeToPrimeConnections, TimeUnit.MILLISECONDS);
          } catch (InterruptedException e) {
              logger.error("Priming connection interrupted", e);
          } finally {
              stopWatch.stop();
          }
  
          stats = new PrimeConnectionEndStats(totalCount, successCount.get(), failureCount.get(), stopWatch.getDuration(TimeUnit.MILLISECONDS));
  
          printStats(stats);
      }
docs: Prime connections, blocking until configured percentage (default is 100%) of target servers are primed
  or max time is reached.
  
  @see CommonClientConfigKey#MinPrimeConnectionsRatio
  @see CommonClientConfigKey#MaxTotalTimeToPrimeConnections