code: @Override
      public void markAsDown(ConnectionException reason) {
          // Make sure we're not triggering the reconnect process more than once
          if (isReconnecting.compareAndSet(false, true)) {
              
              markedDownCount.incrementAndGet();
              
              if (reason != null && !(reason instanceof TimeoutException)) {
                  discardIdleConnections();
              }
              
              listener.onHostDown(this);
              monitor .onHostDown(getHost(), reason);
  
              retryContext.begin();
              
              try {
                  long delay = retryContext.getNextDelay();
                  executor.schedule(new Runnable() {
                      @Override
                      public void run() {
                          Thread.currentThread().setName("RetryService : " + host.getName());
                          try {
                              if (activeCount.get() == 0)
                                  reconnect();
                              
                              // Created a new connection successfully.
                              try {
                                  retryContext.success();
                                  if (isReconnecting.compareAndSet(true, false)) {
                                      monitor .onHostReactivated(host, SimpleHostConnectionPool.this);
                                      listener.onHostUp(SimpleHostConnectionPool.this);
                                  }
                              }
                              catch (Throwable t) {
                                  LOG.error("Error reconnecting client", t);
                              }
                              return;
                          }
                          catch (Throwable t) {
                              // Ignore
                              //t.printStackTrace();
                          }
                          
                          if (!isShutdown()) {
                              long delay = retryContext.getNextDelay();
                              executor.schedule(this, delay, TimeUnit.MILLISECONDS);
                          }
                      }
                  }, delay, TimeUnit.MILLISECONDS);
              }
              catch (Exception e) {
                  LOG.error("Failed to schedule retry task for " + host.getHostName(), e);
              }
          }
      }
docs: Mark the host as down. No new connections will be created from this host.
  Connections currently in use will be allowed to continue processing.