Distributed Load Balancer State Synchronization via Atomic RMC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Centralized load balancing architectures in data centers face performance limitations due to single points of failure and network bottlenecks, which can lead to inefficiencies and reliability issues.

Innovation Solution

A distributed load balancer system utilizing multiple service engines that synchronize load balancing state information using a distributed data store service supporting an atomic read-miss-create (RMC) function, ensuring global visibility and constant updates of load balancing data across service engines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a centralized load balancer is used, then data management is straightforward, but system reliability deteriorates due to single point of failure

Engineering Contradiction:
Improvedata managementVSAvoidsystem reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent divides the centralized load balancer into multiple distributed service engines that operate independently across different nodes. Each service engine maintains its own state information locally, eliminating the single point of failure while distributing the data management function across the network rather than concentrating it in one centralized location.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If a centralized load balancer is used, then data management is straightforward, but network throughput deteriorates due to network bottleneck

Engineering Contradiction:
Improvedata managementVSAvoidnetwork throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the load balancing function across multiple distributed service engines, each handling connections locally without requiring all traffic to pass through a single centralized point. This distribution eliminates the network bottleneck that would exist in a centralized architecture where all connection decisions must converge at one location.

Inventive Principle:
Principle #1Segmentation

3Reliability

If a distributed load balancer is used, then system reliability is improved, but device complexity increases

Engineering Contradiction:
Improvesystem reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent employs copying by having multiple service engines maintain local copies of load balancing state information. Instead of requiring complex real-time synchronization across all nodes, each service engine keeps its own copy of the state data, which simplifies the distributed system architecture while maintaining reliability through redundancy.

Inventive Principle:
Principle #26Copying

4Productivity

If a distributed load balancer is used, then network throughput is improved, but synchronization complexity increases

Engineering Contradiction:
Improvenetwork throughputVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses copying by having each service engine maintain a local copy of load balancing state information. This approach improves network throughput by allowing parallel processing at multiple nodes while avoiding the complexity of centralized coordination. The local copies are updated independently based on local events, eliminating the need for complex global synchronization mechanisms.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10089153B2Synchronizing load balancing state information
Publication Date: 2018.10.02 VMWARE INC
  • US10089153B2 patent drawing
  • US10089153B2 patent drawing
  • US10089153B2 patent drawing

AI summary

Load balancing includes receiving, from a client, a connection request to establish a connection with a server; determining load balancing state information based at least in part on the connection request; synchronizing the load balancing state information across a plurality of service engines using a distributed data store service, the distributed data store service being configured to: determine whether in a distributed data store there is an existing entry that corresponds to the load balancing state information; in the event that it is determined that in the distributed data store there is no existing entry that corresponds to the load balancing state information, atomically create a new entry based on the load balancing state information; and distributing the connection to a selected server among a plurality of servers, the selected server being selected based at least in part on the load balancing state information.