Load balancing considerations

HCL Traveler servers in a Highly Available (HA) environment will perform their own load balancing to ensure best possible performance and consistent user experience.

This should not be confused with a network load balancer. A network load balancer is required to balance traffic for the Domino® HTTP server. HTTP server participation is limited in the sync process and typically only hands off the request to the HCL Traveler server, therefore the network load balancer can use a simple, round-robin approach. See Deployment checklist for HA for more information on the requirements for a network load balancer. Once the request is passed off to the HCL Traveler server, it will be load balanced for processing. To understand how this is done, it is important to understand the HCL Traveler load balancing terminology.

Availability index

The Availability Index (AI) is simply the percent a particular server is available, and is based on current CPU and memory usage as well as several other performance characteristics. The AI does not look at the number of devices being serviced as this value is not a performance health indicator for the system so it is normal for the number of devices serviced to be different for Traveler servers that have the same AI. The AI is generally 0-100%, but can be negative if the server is overloaded or has been classified as unavailable.

Master monitor

Each user is assigned a master monitor the first time his/her device connects. The master monitor is essentially the HCL Traveler server responsible for handling any and all work for that user. If the user connects multiple devices, each device will be routed to the master monitor for processing. If no device connects, the master monitor assignment will expire after 24 hours. On each device connection, the HCL Traveler server will decide if the master monitor should be moved, or if no master monitor is currently assigned, which server to assign the user. The algorithm used to assign master monitors is described in the following sections.

Availability index bias

A bias or weighting is used to improve performance when deciding which server should be the master monitor for a particular user. The two types of bias are local server and current master monitor. Local server is simply the current local server (for example, the server to which the network load balancer routed the connection). The default local server is assigned a bias of 10%. The current master monitor bias is for the server that is currently assigned as the master monitor for this user. The default master monitor bias is 20%. If no master monitor is assigned then no server will get this bias.

Load balancing algorithm

The algorithm used to balance traffic across HCL Traveler servers is a simple one. For each request from the device, the local server will determine what is the best server to handle the request. The best server is determined by comparing the AIs of each server. If any bias applies to a server, it is added to the AI. The server with the highest computed AI is chosen. If this server is not currently the master monitor, then it gets assigned as the master monitor for the user and the master monitor bias will apply. To prevent thrashing, a user's master monitor can not be switched again for at least 10 minutes. The following table shows examples of HCL Traveler load balancing.

Table 1. Load balancing examples
Server 1 (Local Server) Bias = 10% Server 2 No bias Server 3 (Master Monitor) Bias = 20% Load balance winner and master monitor
Current AI AI + Bias Current AI AI + Bias Current AI AI + Bias
90 100 90 90 90 110 Server 3
70 80 90 90 50 70 Server 2
85 95 90 90 70 90 Server 1

notes.ini settings

These notes.ini parameters can be used to adjust the previous algorithm. It is recommended to only change these values in small increments and monitor the systems for performance changes. In general, the default values should be sufficient.

Table 2. notes.ini settings
Setting Default value Description
NTS_ROUTE_BIND_HOLD_TIME 600000 (milliseconds) Minimum time required before a particular user's master monitor can be moved once assigned.
NTS_ROUTE_LOCAL_BIAS 10 (Percent) Bias added to the local server's AI.
NTS_ROUTE_CURRENT_BIAS 20 (Percent) Bias added to the current master monitor server's AI.