@Override
    public Collection<? extends AutoCloseable> updateNodes(DispatchNodesConfig nodesConfig) {
        Map<Integer, NodeConnectionPool> currentPools = new HashMap<>(nodeConnectionPools);
        Map<Integer, NodeConnectionPool> nextPools = new HashMap<>();
        // Who can be reused
        for (Node node : nodesConfig.node()) {
            if (   currentPools.containsKey(node.key())
                && currentPools.get(node.key()).nextConnection() instanceof RpcNodeConnection rpcNodeConnection
                && rpcNodeConnection.getPort() == node.port()
                && rpcNodeConnection.getHostname().equals(node.host()))
            {
                nextPools.put(node.key(), currentPools.remove(node.key()));
            } else {
                ArrayList<NodeConnection> connections = new ArrayList<>(numConnections);
                for (int i = 0; i < numConnections; i++) {
                    connections.add(rpcClient.createConnection(node.host(), node.port()));
                }
                nextPools.put(node.key(), new NodeConnectionPool(connections));
            }
        }
        this.nodeConnectionPools = Map.copyOf(nextPools);
        return currentPools.values();
    }
Connections to the search nodes this talks to, indexed by node id ("partid")
container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcResourcePool.java