- 25 Oct 2023
- 1 Minute to read
- Print
- DarkLight
About Clustering
- Updated on 25 Oct 2023
- 1 Minute to read
- Print
- DarkLight
Overview
A Cluster is an environment of one or more Application Server instances on the same database backend. The servers work together to appropriately distribute workloads to prevent over or underutilization of any particular server.
This allows for an overall increase in availability and provides the ability to share a single storage location.
To further improve an environment's resilience, it is recommended to use a clustered SQL server environment to prevent database failures from interrupting service.
High Availability
High Availability configurations aim to remove any single points of failure in a process by creating a cluster of at least two Application Servers and a Load Balancer.
With the Application Servers configured for redundancy i.e. identically, it is recommended that users may construct an active-active cluster to boost processing power by dedicating more computing power to the system. It is recommended that the active-active cluster contains geographic separation.
Active-passive clusters are not recommended for most general purposes.
Transaction Data and Peer Communication
When a Flow or a Rule stores data, it is immediately written so it is not at risk during an outage. However, uncommitted i.e. in-progress Flow/Rule data, may be lost.
In the event of an outage, Flows with states can resume from their last recorded state before service interruption. Short workflows pose little risk of loss since they complete in milliseconds.
Yet, for critical Flows or Rules, any chance of interruption is unacceptable. To solve this, combining leased work with work queues establishes reliable Flow/Rule executions and retry attempts.
Failover servers further reduce outage disruption in their clustered environments by running any subsequent executions instead of the down server(s).
Clustered servers communicate with one another to clear cached data, when data changes, and when it should reload from the system's record to maintain efficiency.
Multi-Tenant and Clusters
Multi-Tenant environments allow Administrators to assign a Tenant Instance to one or more servers in a cluster without assigning the Tenant to all Nodes. This configuration is uncommon and will require additional configuration on the Load Balancer.
Users can use one of the caching types to temporarily store data. In a cluster, the Memory Cache Definition type will remain specific to the node it was created on. For cross-node caching, users should use a persistent Cache Definition type.