Session Manager Load Balancing via Pre-calculated Host Resources
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Load balancing across servers is challenging due to the difficulty in efficiently distributing work across different machines to utilize available resources effectively.
Innovation Solution
A session manager is used to manage the selection of a remote host for a session by utilizing resource information from remote hosts to determine which host can accommodate new processes or sessions, with each remote host performing a resource calculation and sending the results to the session manager, which then directs the client to the most suitable remote host.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If load balancing is implemented across servers, then resource utilization is improved, but system complexity increases
Solution Approach 1:
A session manager is introduced as an intermediary component that centralizes the load balancing logic. The session manager receives requests from clients, determines the appropriate remote host based on resource information, and directs the client to connect to that host. This mediator approach simplifies the overall system architecture by consolidating decision-making in a single component rather than requiring complex peer-to-peer coordination between multiple servers.
Solution Approach 2:
Remote hosts perform resource calculations in advance and send their resource information to the session manager before receiving actual client requests. This preliminary action allows the session manager to make informed load balancing decisions based on pre-collected resource status data, eliminating the need for real-time complex calculations during request handling and reducing system operational complexity.
2Measurement precision
If resource calculations are performed by each remote host, then load distribution accuracy is improved, but communication overhead increases
Solution Approach 1:
The resource calculation function is extracted from the session manager and delegated to individual remote hosts. Each remote host independently determines its own resource capacity and sends this information to the session manager. This extraction allows accurate, localized resource assessment at each host while minimizing communication overhead, as only the calculated result (not the raw resource data) needs to be transmitted.
3Loss of time
If session manager directs clients to remote hosts, then connection establishment time is reduced, but network traffic increases
Solution Approach 1:
The session manager pre-determines the optimal remote host for each client based on resource information received in advance. By making the load balancing decision before the actual connection is established, the system reduces connection establishment time as clients are directly routed to appropriate hosts without unnecessary intermediation. The network traffic increase is minimized by transmitting only essential resource information and connection directives.
Data Source
AI summary
A session manager is used to manage selection of a remote host for a session in response to a request that is associated with a user. The session manager uses resource information obtained from remote hosts in advance of the request to determine which remote host to associate with a session for a client. Each remote host performs a resource calculation (configurable) to determine how many processes/sessions it can further accommodate. The remote host sends the results of the resource calculation and other determined resource information to the session manager. The session manager provides the determined remote host to a client device. The client device then directly connects to the determined remote host. A process may be automatically started on the remote host for the client as the user. The session manager may also store and receive information for active and historical processes, remote host status, and remote host configuration.


