Server Load Distribution via Client Assignment Redirection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing server selection mechanisms fail to intelligently distribute load among servers, leading to overloading of some servers while others remain underutilized, and cause lengthy disruptions when a server fails, especially in real-time communications services.

Innovation Solution

A system that redirects incoming client requests to other servers to distribute traffic load, using existing protocol mechanisms to assign clients to specific servers, with a database managing client-to-server assignments, allowing for centralized maintenance and reallocation of resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If random or round-robin server selection is used, then server selection is simple to implement, but load distribution is unintelligent causing some servers to be overloaded while others remain underutilized

Engineering Contradiction:
Improveserver selection implementation simplicityVSAvoidload distribution efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system implements feedback by having servers query a name service to determine client assignments before handling requests. The name service receives feedback about server availability and client assignments, and uses this information to redirect clients to appropriate servers, creating a closed-loop system that optimizes load distribution based on real-time server status and assignment data.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The name service acts as an intermediary between clients and servers. Instead of clients directly selecting servers or servers passively accepting connections, the name service mediates the interaction by querying client assignments and redirecting clients to their designated servers, enabling intelligent load distribution without requiring clients to have complex selection logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If existing server selection mechanisms are used, then protocol changes are not required, but server failure causes lengthy disruptions before clients are rehomed

Engineering Contradiction:
Improveprotocol modification requirementVSAvoidservice continuity during server failure
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system performs preliminary action by pre-establishing client-to-server assignments in the name service database before server failures occur. When a server fails, the name service already has the assignment information ready and can immediately redirect affected clients to alternative servers without requiring clients to perform discovery or reselection operations, thereby minimizing disruption time.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple servers provide common services, then service availability increases, but load distribution becomes problematic causing some servers to fail with too many clients

Engineering Contradiction:
Improveservice availabilityVSAvoidserver load distribution
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The name service implements feedback mechanisms to monitor server status and client assignments. When servers become overloaded or fail, the name service receives feedback about their status and automatically redirects clients to healthier servers, maintaining service availability while preventing any single server from becoming overloaded with too many clients.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7543061B2Method and system for distributing load by redirecting traffic
Publication Date: 2009.06.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7543061B2 patent drawing
  • US7543061B2 patent drawing
  • US7543061B2 patent drawing

AI summary

Disclosed is a system for servers to redirect client requests to other servers in order to distribute client traffic among the servers. A client is assigned to a server although the client may be unaware of that assignment. When the client accesses a server, a server possibly identified to the client by a name service, the server checks the client's assignment. If the client is not assigned to this server, then in some scenarios this server redirects the client to its assigned server. The client responds by sending its request to the assigned server. In other scenarios, the first server accessed by the client proxies the client's traffic to the assigned server. A database is kept of client-to-server assignments. If the present load distribution is less than ideal (e.g., clients are assigned to an unavailable server), then the assignment database is updated to reflect how the load should be distributed.