Hash-Based Work Load Distribution for Server Affinity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional work load distribution systems, such as those using a round-robin algorithm, fail to ensure consistent assignment of work to the same server process from a particular source, lacking both fairness and affinity in work distribution across multiple server processes.

Innovation Solution

A method involving a mixing function, such as a hash function, applied to request identifiers to generate reproducible outputs, followed by a modulo operation to determine server process assignments, ensuring fair and consistent distribution of work across multiple server processes while allowing for configurable server process numbers and hosting hierarchy points.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a round-robin algorithm is used for work distribution, then fairness of work distribution is ensured, but affinity to a particular server process for one application is lost

Engineering Contradiction:
Improvefairness of work distributionVSAvoidaffinity to server process
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The patent changes the parameter of the distribution algorithm from sequential (round-robin) to hash-based. By applying a mixing function (hash) to the request identifier and using the result to select the server process, the system achieves both fairness (uniform distribution across n processes) and affinity (consistent selection for the same request identifier).

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent replaces the mechanical sequential selection mechanism of round-robin with a mathematical hash function. This substitution transforms the distribution mechanism from one that cycles through processes sequentially to one that deterministically maps request identifiers to processes, achieving both fairness and stability simultaneously.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Device complexity

If random server process assignment is used, then simplicity of the algorithm is maintained, but consistent assignment from a particular source to the same server process is lost

Engineering Contradiction:
Improvealgorithm complexityVSAvoidconsistent assignment
Core Design Contradiction:
Device complexityVSStability of the object's composition

Solution Approach 1:

The patent uses the request identifier (such as a session ID or client ID) as a key to deterministically select the server process. This approach copies the stability of the identifier into the server process selection, ensuring that the same identifier always maps to the same process while maintaining algorithmic simplicity through the use of hash functions.

Inventive Principle:
Principle #26Copying

3Stability of the object's composition

If affinity to a particular server process is implemented, then consistent work assignment from a source is achieved, but fairness of work distribution across server processes may be compromised

Engineering Contradiction:
Improveaffinity to server processVSAvoidfairness of work distribution
Core Design Contradiction:
Stability of the object's compositionVSReliability

Solution Approach 1:

The patent changes the selection criterion from sequential indexing to hash-based mapping. The mixing function distributes request identifiers uniformly across the range of server process indices, ensuring that affinity (same identifier → same process) does not bias the overall distribution. The fairness emerges from the uniform distribution properties of the hash function.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8150970B1Work load distribution among server processes
Publication Date: 2012.04.03 ADOBE INC
  • US8150970B1 patent drawing
  • US8150970B1 patent drawing
  • US8150970B1 patent drawing

AI summary

Technologies relating to work load distribution. A request is received for access to one of n server processes, where n is an integer greater than one. A mixing function is applied to an identifier associated with the request to generate a reproducible output representative of the identifier. A modulo operation is applied to the output, where a dividend in the modulo operation is the output and a divisor in the modulo operation is n, to determine a remainder. The request is assigned to a server process from the n server processes in accordance with the remainder.