Installing a Cluster with a Separated Configuration Database

This procedure creates two clusters: one for the server nodes and one for configuration database nodes. The nodes in the server cluster point to the servers in the configuration database cluster for their configuration data. The nodes in the configuration database cluster replicate their data between each other.

The following diagram illustrates this installation scenario:



To install a separate configuration database, you first install the configuration database on servers in a cluster, then install the server on nodes in a separate cluster. At least one configuration database must be running before you can install the server.

Note: In the case of a separated database configuration cluster setup, as shown here, you can apply load balancing only to the Spectrum server cluster. You cannot apply load balancing to the separated database cluster.
  1. Place the Spectrum Technology Platform installer on the server where you want to install the configuration database.
    Note: We recommend a minimum of three nodes per cluster.
  2. Double-click installdb.exe.
  3. Install the configuration database on each node in the cluster.
    Important: When prompted with the option to start Spectrum Technology Platform after the installation, you must disable this option so that the database does not start automatically when the installation completes.
  4. Configure property settings on each node in the cluster.
    1. Configure properties in the DatabaseDirectory\repository\spectrum-container.properties file as described in Cluster Properties for a Configuration Database Cluster.
    2. Save and close spectrum-container.properties.
    3. Confirm that the property settings in the DatabaseDirectory\repository\neo4j.template match the following settings:
      dbms.active_database=graphdb
      dbms.default_database=graphdb
      dbms.default_listen_address=0.0.0.0
      causal_clustering.discovery_advertised_address=${spectrum.agent.address}
      causal_clustering.enable_pre_voting=false
      dbms.routing.enabled=true
      dbms.routing.listen_address=0.0.0.0
      dbms.routing.advertised_address=${spectrum.agent.address}
  5. Start each configuration database node in the cluster consecutively.
    Right-click the Spectrum Technology Platform icon in the Windows system tray and select Start Spectrum.
    Note: Verify that the configuration database is fully started before continuing by opening the log file DatabaseDirectory\repository\logs\debug.log.
  6. Install Spectrum Technology Platform on each node in the cluster.
    Important:
    • The installer will provide the option to auto start the Spectrum Technology Platform server. By default this option is not selected. Do not enable this option if installing a clustered environment.
    • When installing each server select the Server only option in the installer and provide the host and port of one or more of the configuration database servers. You can find the port in the file SpectrumDirectory\Database\repository\spectrum-container.properties. The port is specified in the spectrum.repository.server.connector.bolt.port property.
  7. On each node, configure settings in the SpectrumDirectory\server\conf\spectrum-container.properties file.
    1. Edit the properties in file spectrum-container.properties, as described in Cluster Properties.
    2. Save and close the spectrum-container.properties file.
    3. Some modules have module-specific settings that you must configure to enable the module to work in a cluster.
      Module Cluster Configuration Settings
      Advanced Matching These settings configure clustering for full-text search indexes. If you do not use full-text search indexes you do not need to configure these settings.

      Open this file in a text editor:

      SpectrumDirectory\server\modules\searchindex\es-container.properties

      Configure these properties:

      es.index.default_number_of_replicas
      Enter the number of additional copies you want created for each search index. This number should be the number of nodes in your cluster minus 1. For example, if your cluster has five nodes, you would enter "4" in this property.
      es.index.default_number_of_shards
      Enter the number of shards you want your index to have in the distributed environment. The more nodes that are in your cluster, the higher this number should be.
      Save and close es-container.properties when you are done editing these properties.
      Context Graph

      Context Graph models are stored on an external Neo4j Graph Database Server. For instructions about how to configure and connect to Neo4j Graph Database Server in a clustered configuration, see Installing a Cluster for Context Graph.

  8. On each node, configure settings for Search index.
    1. Open the file SpectrumDirectory\index\elasticsearch.template and scroll down to the Node Address section.
    2. Insert the hash character # to comment this line:
      # cluster.initial_master_nodes: ${initial_master_node}
    3. Remove the hash character # and the space after it to uncomment this line:
      cluster.initial_master_nodes: ${seeds}
      Important: Make sure that there is no space at the beginning of the line so that the code starts in column 1.

      Then edit it to specify the node names in the cluster:

      cluster.initial_master_nodes: node-1,node-2,node-3,...
      Important: This setting must be uncommented when you start the cluster for the first time.
  9. Confirm the following setting on each node in the cluster.
    • SpectrumDirectory\server\conf\spectrum-container.properties
      spectrum.repository.cluster.mode=CAUSAL
      Note: The spectrum.repository.cluster.mode setting shown here is for the Spectrum Technology Platform server running in a cluster.
  10. Start each server in the cluster.
    Right click the Spectrum Technology Platform icon in the system tray and then select Start Spectrum.
    For more information, see Starting a Cluster.
  11. On each node, open the SpectrumDirectory\index\elasticsearch.template file, insert the hash character # to comment out the following line:
    # cluster.initial_master_nodes: node-1,node-2,node-3,...
    Important: This setting must be commented out after you start the cluster for the first time. It should remain commented out for all subsequent restarts of the cluster, as Elasticsearch handles adding and removing nodes after the cluster is started initially.