TIBCO Spotfire® Server and Environment - Installation and Administration

Clustered server deployments

Large companies often opt for clustered server deployments, where several Spotfire Servers share a database and work together to carry out the server tasks.

Clustered servers provide the following benefits:
  • Failover protection if a server goes down.
  • Scalability for the growing organization.
  • Better performance in a system that handles a high volume of work.

Clustering is enabled by default in Spotfire Server.

You must have at least one working Spotfire Server before you configure the cluster.

Configuration

Usually a load balancer is added to the clustered deployment, in front of the servers, to help distribute the workload, but this is not required. The load balancer you choose must support session affinity; this means that after a session has been established, the load balancer continues to route all requests from a particular client to a particular server. To be able to analyze streaming data in web clients, the load balancer must support WebSockets from the web client to the Spotfire Servers. Companies must supply their own load balancer.

The following diagram shows a typical clustered deployment with a load balancer.
Cluster diagram with load balancer

A cluster may also contain multiple Spotfire Servers that can be accessed individually through their URLs, but share the same set of node managers.

Apache Ignite

Clustering is implemented using Apache Ignite. Apache Ignite clustering requires no manual configuration. It provides TLS version 1.2 for communication and a fast clustering solution. In addition, it looks for specific nodes by using their IP address, rather than discovering any node that communicates using multicasting.

Ports

By default, Apache Ignite uses these three ports:

  • 5701 (this base value is configurable)
  • 5702 (base value + 1)
  • 5703 (base value +2)
You can change the default clustering ports when you configure the cluster, either in the configuration tool or by using the config-cluster command. For details, see Setting up a cluster of Spotfire Servers or config-cluster.

Multiple network interfaces

If there are multiple network interfaces, and at least one of these network interfaces is not reachable from all the nodes and servers in the cluster, you must configure each server and node manager to use a specific address/network interface.

To configure the correct address/network interface for servers to use, set the addresses property during server configuration; see Creating the bootstrap.xml file. Otherwise, use the set-addresses command to set the correct address/network interface for the servers; see set-addresses.

The correct address/network interface for node managers to use must be set when you install each node manager. For a Windows node manager, this is set on the Network Names page of an interactive installation, or the NODEMANAGER_HOST_NAMES in a silent installation. For a Linux node manager, set the NODEMANAGER_HOST_NAMES in the post-installation script.

Session clustering (for failover)

Session clustering enables users to continue their work without interruption even if a server goes down or must be restarted.

The sessions are stored in a shared in-memory store, so there must be at least one additional server online (within the same site) for the session to be kept. Note that there is no persistent storage available, so if all servers in a site are restarted at the same time, then the sessions will be lost.

The end-user will normally not notice that a session is handed over to another server, with the following exceptions:

  • If the user had an ongoing execution of an information link on the server that went down.
  • If the user was saving to or opening anything from the library on the server that went down.
  • If an administrator user was deploying packages (using the Deployment & Packages app).
To disable the session clustering, change the clustering.session-clustering.enabled configuration property to false (the default is true), using the set-config-prop command:
config export-config --force
config set-config-prop -n clustering.session-clustering.enabled -v false
config import-config -c "Disabled session clustering"

Upgrading

Upgrading to a new version of Spotfire Server automatically switches any existing clusters to Apache Ignite clustering, if the old server environment was based on an earlier solution.