Arc Jump Per-Key Server Selection for Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed computing systems face challenges in load balancing, particularly in ensuring even resource utilization and handling server additions or removals, which can lead to inefficient resource use and overloading, especially when using virtualization technologies.

Innovation Solution

The implementation of a consistent hash ring algorithm with the 'power of k choices' allows for multiple potential server placements and data locations, enabling more even load distribution and minimizing the impact of server changes, such as the 'arc jump' algorithm for handling overloaded servers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If deterministic load balancing is used to route the same client to the same device, then state information can be saved locally without synchronization overhead, but the system becomes vulnerable to overloading when servers are added or removed

Engineering Contradiction:
Improvestate persistenceVSAvoidsystem reconfiguration
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic load balancing by allowing the system to switch between deterministic routing (for stability and state persistence) and alternative server selection (for adaptability during reconfiguration). When servers are added or removed, the system dynamically adjusts routing decisions to prevent overloading while maintaining state information where possible.

Inventive Principle:
Principle #15Dynamics

2Speed

If load balancing occurs quickly to avoid service delays, then service operation is not delayed, but it becomes difficult to ensure even resource utilization across all devices

Engineering Contradiction:
Improveload balancing speedVSAvoidresource utilization
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent employs preliminary action by pre-calculating and maintaining a mapping between clients and suitable servers, including backup options. This allows the load balancer to make immediate routing decisions without real-time computation, ensuring both fast load balancing and even resource utilization through pre-planned distribution strategies.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If virtualization technologies are used to simplify creation and destruction of computing devices, then resource flexibility is improved, but load balancing becomes more difficult due to frequent system reconfiguration

Engineering Contradiction:
Improvedevice provisioningVSAvoidload balancing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary load balancer that abstracts the complexity of virtual machine creation and destruction from the service logic. This intermediary component handles all load balancing decisions, server selection, and state management, simplifying the overall system architecture while accommodating frequent virtual device provisioning and teardown.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Quantity of substance

If multiple devices are used to host a service, then available resources are increased, but the complexity of distributing load evenly among devices increases

Engineering Contradiction:
Improveavailable resourcesVSAvoidload distribution complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting load distribution parameters based on current system state, server capacity, and client requirements. The load balancer monitors resource utilization metrics and modifies routing decisions to maintain even distribution across multiple devices, adapting parameters such as weight factors and threshold values to optimize load balance as the system evolves.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11310309B1Arc jump: per-key selection of an alternative server when implemented bounded loads
Publication Date: 2022.04.19 AMAZON TECH INC
  • US11310309B1 patent drawing
  • US11310309B1 patent drawing
  • US11310309B1 patent drawing

AI summary

Systems and methods are described for implementing an “arc jump” technique in conjunction with bounded loads in consistent hashing. In general, bounded loads refers to limiting the ability of a single device within a distributed system to store data objects, such that when a request to store a new data object would otherwise be directed to that device, it is instead redirected to an alternative device. Redirecting all requests to a single alternative device can lead to cascading failures, as the alternative device must maintain its own load and that which has been redirected to it. Embodiments of the present disclosure address this by determining an alternative device on a per-object basis, such as by again hashing the object with an additional seed value. This distributes request from an overloaded device among all other devices of the distributed system, avoiding cascading failures.