Clustered Architecture for Context Graph

In a clustered environment, Context Graph graph databases are replicated to each Spectrum Technology Platform server in the cluster. The server that receives the first request to open a model is the master. All other servers maintain a replicated mirror of that master. If different servers receive requests to open different models, the masters for the models are on different servers. All writes to the database are synchronized with the master. Any server can process read requests.

We recommend that clusters have a minimum of three servers in order to achieve a level of fault tolerance. Also, an odd number of servers provides better individual server resiliency than an even-numbered cluster. We make these recommendations because once the model is running, the system will continue running as long as more than half the servers are in communication. For example, in a cluster of six servers, four must stay in communication; for a cluster of three servers, two must stay in communication, and for a cluster of two servers, all servers must be in communication. Both a three-server cluster and a four-server cluster can tolerate a maximum of one lost server.

All servers in the cluster must be available in order to open or create a model. If any server is unavailable, the server will wait for all servers to join the cluster. If this number of servers do not join within the timeout period, the operation fails.