Session Manager Load Balancing via Pre-calculated Host Resources

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Productivity

If load balancing is implemented across servers, then resource utilization is improved, but system complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If resource calculations are performed by each remote host, then load distribution accuracy is improved, but communication overhead increases

Engineering Contradiction:
Improveload distribution accuracyVSAvoidcommunication overhead
Core Design Contradiction:
Measurement precisionVSLoss of information

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.

Inventive Principle:
Principle #2Taking out (Extraction)

3Loss of time

If session manager directs clients to remote hosts, then connection establishment time is reduced, but network traffic increases

Engineering Contradiction:
Improveconnection establishment timeVSAvoidnetwork traffic
Core Design Contradiction:
Loss of timeVSLoss of information

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10547564B2Service-based load-balancing management of processes on remote hosts
Publication Date: 2020.01.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10547564B2 patent drawing
  • US10547564B2 patent drawing
  • US10547564B2 patent drawing

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.