Affinity Load Balancing for Server Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems lack a mechanism to prevent a single server from becoming overloaded with different affinities in a cluster, leading to resource slowdowns as other servers remain idle, due to the absence of effective affinity load balancing.

Innovation Solution

A method and system for affinity load balancing that involves a task manager determining whether a server has affinity to a task type, releasing tasks to servers with existing affinities, and allowing servers to acquire affinities within configurable limits, using a shared memory for node affinities and task weights to distribute workload across the cluster.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a server acquires affinity to task types without limits, then task processing efficiency is improved, but server overload occurs and system resources slow down

Engineering Contradiction:
Improvetask processing efficiencyVSAvoidserver overload prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts server affinities based on current workload conditions. Servers can acquire and release affinities dynamically, allowing the system to adapt to changing task demands while preventing any single server from becoming overloaded with too many affinities simultaneously.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces configurable affinity limits as a parameter to control how many affinities a server can hold. By changing this parameter, the system can balance between task processing efficiency and preventing server overload, allowing flexible adjustment based on system capacity and demand.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If tasks are distributed across multiple servers, then resource utilization is improved, but coordination complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidload balancing mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The load balancing mechanism operates autonomously without requiring complex centralized coordination. Each server independently manages its own affinities and task assignments based on simple rules, eliminating the need for complex inter-server communication and coordination protocols.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an affinity limit configuration as an intermediary parameter that mediates between task distribution needs and server capacity constraints. This simple configurable parameter provides a straightforward mechanism to control load distribution without requiring complex real-time coordination between servers.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If servers are assigned specific task affinities, then task processing speed is improved, but system adaptability decreases

Engineering Contradiction:
Improvetask processing speedVSAvoidtask type flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

Server affinities are dynamic rather than static. Servers can acquire new affinities when needed and release them when no longer required, allowing the system to maintain fast processing for current task types while remaining adaptable to future task requirements. The affinity limit ensures this adaptability occurs in a controlled manner.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3539278B1Method and system for affinity load balancing
Publication Date: 2021.08.25 TRILLIANT NETWORKS INC
  • EP3539278B1 patent drawingFigure 1
  • EP3539278B1 patent drawingFigure 2
  • EP3539278B1 patent drawingFigure 3

AI summary

A computer implemented method and apparatus for affinity load balancing. The method comprises receiving a task request on a first server of a plurality of server, wherein a task associated with the task request is to be performed on a first device of a plurality of devices; extracting a task type and a device identifier from the task request; determining whether a second server of the plurality of server has acquired an affinity for the task type; and acquiring the affinity for the task type when it is determined the second server of the plurality of servers has not acquired an affinity for the task type.