EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB4759: MicroStrategy 2021 Intelligence Server cluster load balancing FAQ


Community Admin

• Strategy


MicroStrategy Intelligence Server cluster load balancing FAQ

What is load balancing?
Load balancing, as it applies to Strategy Intelligence Server, 2021 is a strategy aimed at achieving even distribution of Strategy Web or Web Universal user sessions across Strategy Intelligence Servers, so that no single machine is overwhelmed. This strategy is particularly valuable when it is difficult to predict the number of requests a server will receive. Strategy achieves 4-tier load balancing by incorporating load balancers into the Strategy Web products.
 
The ultimate goal of load balancing is to use all available resources in the most efficient manner, leading to improved system performance. When considering load balancing in Strategy environment, the two most critical points to consider are:
 

  1. Defining how to calculate a 'load' on a Strategy Intelligence Server machine.
  2. Collecting information required to calculate the load.

The load balancers collect information on the number of user sessions each node is carrying. Based on this information at the time a user logs in to a project, Strategy Web or Web Universal connects them to the Intelligence Server node that is carrying the lightest session load.
 
All requests by that user are routed to the node to which they are connected until the user disconnects from the Strategy Web product.
 
How does Strategy Intelligence Server calculate load?
In Strategy Intelligence Server 'load' on a cluster node is defined as the number of user connections on the Strategy Intelligence Server machine.
 
When a new user logs into Strategy Web, a new connection is opened to the Strategy Intelligence Server node with the least load. That Strategy Intelligence Server node will execute all jobs run by the user. (This type of load balancing is sometimes referred to as load sharing.)
 
In addition, Strategy Web allows administrators the capability of assigning weights to each Strategy Intelligence Server node within the cluster, such that relative loads can be calibrated by factors such as the number of Central Processing Units (CPUs) on each Strategy Intelligence Server machine. Weighting is assigned at run-time through the Strategy Extensible Markup Language (XML) Application Programming Interface (API).
 
Through customization, the load balancing weighting factors can be adjusted programmatically. For example, an executable can be written that monitors the CPU usage on every Strategy Intelligence Server cluster node. Depending on relative CPU usage, this executable can dynamically modify the weighting factors to force the load balancers to create new user sessions on nodes with low CPU usage. This type of customization can effectively provide load balancing based on metrics other than the number of user sessions on a node.
 
Why is load balancing performed based on the number of user connections?
The most common alternative load balancing algorithm requested is that based on the number of jobs running on the Strategy Intelligence Server node. Although job count may intuitively seem to be a more accurate measure of load compared to session count, this is not necessarily the case.
 
Every job does not put an equal amount of processing load on a Strategy Intelligence Server machine. Some jobs may take hours to run, while others take only a few seconds. Depending on the nature of the report, some jobs may require more processing by the Analytical Engine, which can be processor and memory intensive. As can be seen, the load of 100 jobs on one machine's processors or memory may be very different on another machine. Therefore, job count is simply an approximation of machine load. When load balancing based on the job count, with the assumption of it being an average load and if all jobs are split into groups with the same number of jobs, the aggregate cost of running each group is about equal.
 
When load balancing based on the number of sessions, with the assumption of it being an average load and if all users are split into groups with the same number of users, the aggregate of users will have approximately the same usage profile. That is, each user will, on average, run the same mix of simple and complex reports at similar times after connecting to a project in Strategy Web. Even if users can be categorized into a few usage profiles (power and casual users), users in each category should generally be split equally amongst all Strategy Intelligence Servers.
 
When comparing load balancing based on job and session count, the question is, which is the better assumption - that job costs for reports is about equal, or that usage profiles of users is about equal? For most users, Strategy expects that neither assumption is better than the other.
 
However, opening new sessions on a Strategy Intelligence Server incurs some overhead. Load balancing based on job count would require the creation of sessions on all Strategy Intelligence Server nodes in a cluster. Therefore, given the choice between the two equally valid algorithms, load balancing based on session count becomes the better choice due to the overhead of opening and closing user connections.
 
More sophisticated load balancing must take into account factors such as job cost, job characteristics (e.g., Does the job require heavy use of the Analytical Engine?), machine size, CPU and memory usage. Due to the difficulty of implementing methods to measure these factors, session count is an approximation of load that should be sufficient for a majority of implementations.
 
What other benefits are there for the current design of load balancing in Strategy?
Each Strategy Intelligence Server can measure the load on itself. Therefore, each load balancer can maintain up-to-date load information by communicating with each Strategy Intelligence Server. No communication is necessary between the load balancers on each Strategy Web machine. As a result, no overhead is necessary to perform load balancing in a 4-tier environment; each Strategy Web machine need not be aware of the existence of other Strategy Web machines. This design makes the implementation of Strategy Web clusters simple and fault-tolerant. Web machine clustering can be achieved by using third-party software.
 


Comment

0 comments

Details

Knowledge Article

Published:

April 6, 2017

Last Updated:

August 12, 2024