Consistent Hashing Load Balancer Dynamic Thresholds

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing load balancing systems face challenges in maintaining consistent mapping of tasks with the same task ID to the same worker across a distributed network, especially when workers are added or removed, leading to inefficiencies in load distribution and migration.

Innovation Solution

A deterministic approach to consistent hashing is implemented using a slotted hash function and a registry system that adjusts thresholds dynamically based on the number of workers, ensuring balanced load distribution and minimizing migration impacts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a load balancer uses a hash function to map tasks to workers, then load distribution is achieved, but consistency of mapping is lost when workers are added or removed

Engineering Contradiction:
Improveload distribution efficiencyVSAvoidtask-to-worker mapping consistency
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent implements dynamic rehashing where the hash function parameters are updated when workers are added or removed. The load balancer maintains a registry of workers and dynamically adjusts the hash function's threshold values to accommodate changing system topology, ensuring consistent task mapping while maintaining load distribution efficiency

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameters of the hash function based on the number of active workers. When workers are added or removed, the load balancer recalculates and updates the threshold values in the hash function, allowing the system to adapt to different scales while maintaining consistent task-to-worker mapping relationships

Inventive Principle:
Principle #35Parameter changes

2Stability of the object's composition

If the load balancer maintains a registry for each task with threshold values, then consistent hashing is achieved, but system complexity increases

Engineering Contradiction:
Improvetask mapping consistencyVSAvoidregistry management complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent uses a universal hash function that serves multiple purposes: it maps tasks to workers, maintains consistency across dynamic topology changes, and enables efficient load distribution. The same hash function with updated thresholds handles all these requirements without needing separate mechanisms for each function

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The load balancer automatically manages the registry and hash function parameters without external intervention. When workers are added or removed, the system self-adjusts by recalculating thresholds and updating the hash function, eliminating the need for manual configuration or complex external management

Inventive Principle:
Principle #25Self-service

3Productivity

If stochastic hashing methods are used for load balancing, then load distribution is achieved, but performance in terms of balance and migration is inferior

Engineering Contradiction:
Improveload distributionVSAvoidload balance consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent replaces stochastic (random) hashing mechanisms with a deterministic hash function that uses mathematical thresholds. This substitution eliminates the variability and unpredictability inherent in stochastic methods, providing consistent and reliable load distribution while maintaining ease of implementation

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

Data Source

PatentUS10296394B2Consistent hashing
Publication Date: 2019.05.21 NEC CORP
  • US10296394B2 patent drawing
  • US10296394B2 patent drawing
  • US10296394B2 patent drawing

AI summary

Computer-implemented methods and a system are provided for distributing tasks between a plurality of processes in a computer network. A method includes distributing, by a load balancer in the computer network, tasks between the plurality of processes. The method further includes maintaining, by the load balancer, a registry for each of the tasks. For a given task, the registry indicates which of the plurality of processes to which the given task is distributed based on a hash function. The method also includes forming, by the load balancer, a respective set of registries for each of the plurality of processes, based on a set of thresholds. The method additionally includes redefining, by the load balancer, the set of thresholds when one of the plurality of processes ceases or a new process, added to the plurality of processes, commences.