private void propagateOptions() {
        verifyInControllerThread();
        selfTerminateIfConfiguredNodeIndexHasChanged();

        if (changesConfiguredNodeSet(options.nodes())) {
            // Force slobrok node re-fetch in case of changes to the set of configured nodes
            cluster.setSlobrokGenerationCount(0);
        }

        stateVersionTracker.setMinMergeCompletionRatio(options.minMergeCompletionRatio());

        communicator.propagateOptions(options);
        indexPageRequestHandler.propagateOptions(options);

        if (nodeLookup instanceof SlobrokClient) {
            ((SlobrokClient) nodeLookup).setSlobrokConnectionSpecs(options.slobrokConnectionSpecs());
        }
        eventLog.setMaxSize(options.eventLogMaxSize(), options.eventNodeLogMaxSize());
        cluster.setDistribution(options.storageDistribution());
        cluster.setNodes(options.nodes(), databaseContext.getNodeStateUpdateListener());
        database.setZooKeeperAddress(options.zooKeeperServerAddress(), databaseContext);
        database.setZooKeeperSessionTimeout(options.zooKeeperSessionTimeout(), databaseContext);
        stateGatherer.setMaxSlobrokDisconnectGracePeriod(options.maxSlobrokDisconnectGracePeriod());
        stateGatherer.setNodeStateRequestTimeout(options.nodeStateRequestTimeoutMS());

        // TODO: remove as many temporal parameter dependencies as possible here. Currently duplication of state.
        stateChangeHandler.reconfigureFromOptions(options);

        masterElectionHandler.setFleetControllerCount(options.fleetControllerCount());
        masterElectionHandler.setMasterZooKeeperCooldownPeriod(options.masterZooKeeperCooldownPeriod());

        if (rpcServer != null) {
            rpcServer.setMasterElectionHandler(masterElectionHandler);
            rpcServer.setSlobrokConnectionSpecs(options.slobrokConnectionSpecs(), options.rpcPort());
        }

        long currentTime = timer.getCurrentTimeInMillis();
        nextStateSendTime = Math.min(currentTime + options.minTimeBetweenNewSystemStates(), nextStateSendTime);
    }
This is called when the options field has been set to a new set of options
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java