Arc Jump Per-Key Server Selection for Load Balancing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
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
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.
Data Source
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.


