en:app:020cor:110sm:020mgr:0240loadbal

Load Balancing

The application relies on the presence of Managers. Only a single instance of each manager may run in the entire installation (on one server only). The operation of these Managers is maintained by the Watchdogs running on the various application servers: the Watchdogs synchronize their operation via DB, and they distribute the Managers among themselves in such a way that one, and only one, instance of each Manager is running. If individual application servers go offline, the Managers disappearing as a result are distributed to other servers.

More detailed information about the mode of operation, the technology and the implementation is provided in the developer documentation, in the section “Load Balancing”.

Overview

If an application runs on several application servers (referred to as 'nodes' below), then the load must be distributed among the nodes in such a way that individual nodes do not become overloaded, causing overall system performance to degrade, while other nodes only handle below-average loads.

Proper distribution of the load among the nodes (load balancing) can be achieved using the functionality described below, which is built into the application. Alternatively, load balancing can also be handled outside the application, e.g., through the use of upstream load-balancing switches.

The load-balancing method implemented in the application relies on the following components and procedures:

Instead of having a fixed server name, the Windows client can operate with a list of server names. This list is stored in the Windows registry. When a connection from the application server is in place, the list is updated in preparation for the next time the client is started. When starting up using the list of server names, the client randomly selects a server from the list in order to establish a connection. If this connection cannot be established successfully, the client tries other server names from the list, one after the other, until a connection can be established successfully. Once client processes are running, they cannot be moved among application servers.

Overloading of individual nodes ? while other nodes handle much smaller loads ? is prevented by the application's watchdog processes running on each node, which together ensure that an overloaded node will no longer accept new connections, if possible. At the same time, the watchdog processes ensure that at least one node will accept new connections at all times. The node with the smallest load will accept new connections in order to ensure that even if the overall system is overloaded, new connections can be established and users can still work with the application, even if the system performance may be less than satisfactory for individual users.

en/app/020cor/110sm/020mgr/0240loadbal.txt · Last modified: 2022/04/19 13:13 (external edit)