Load Balancing in a Clustered Installation
Clusters distribute business processes internally using a load-balancing algorithm determined by the scheduling policy. In addition, external load balancing mechanisms distribute incoming HTTP, FTP or other network traffic.
When a business process is placed in the queue, the relative loading of the servers participating in a cluster determines if the work should be distributed or executed locally.
Each node notifies the other nodes in a cluster that it is available and what its current load is through a multicast mechanism that is a network technology between communicating point-to-point and broadcasting to the whole network. The broadcasted load factor is derived from the average time that business processes in a particular queue are executing before relinquishing the CPU and the number of business processes waiting in the queue. The distribution algorithm is based on the load factor of each node and configuration parameter to determine on which node the job is going to be executed. This describes how quickly a business process would run after it is sent from one node to another node.
The following graphic shows how this process works:

The algorithm that decides whether to distribute work is determined by active scheduling policy. A configurable threshold percentage determines when to distribute work to a node that is more lightly loaded than the current node. If there is more than one, it chooses the one with the lowest load factor. If a node fails to respond to an attempted distribution of work, it will not receive any more work until it communicates to the cluster that it is functional. If an attempt at distribution fails, the context is placed back in the queue to execute locally and the target node is marked as being “suspect” until it asserts to the cluster that it is functional.
