Network Load Balancer Client Affinity via Exception Lists

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network load balancing technologies fail to maintain affinity with a client for all connections, including new connections, after cluster configuration changes, which is problematic for applications requiring the same node to handle all connections from a client regardless of changes.

Innovation Solution

Implementing a network load balancing system where each node maintains an affinity list of clients and propagates this information to other nodes, allowing the node owning the bucket to handle packets even if it no longer owns the bucket, by using affinity and exception lists to ensure client-node affinity is preserved during bucket redistribution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If bucket redistribution is performed during convergence after cluster configuration changes, then load balancing is improved, but client-node affinity is lost causing new connections to be handled by different nodes

Engineering Contradiction:
Improveload balancingVSAvoidclient-node affinity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by maintaining affinity lists that track which nodes previously handled connections from which clients. During convergence, these affinity lists are propagated to ensure that even if bucket ownership changes, nodes can still identify and maintain affinity with their original clients through the propagated affinity information.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The affinity list acts as an intermediary mechanism between bucket redistribution and client connection handling. By propagating affinity lists during convergence, the system creates a mediating layer that allows nodes to recognize and maintain client affinity relationships even when bucket ownership changes, thus preserving client-node affinity while enabling load balancing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the same node handles all connections from a client regardless of bucket ownership, then client affinity is maintained, but packet routing complexity increases requiring affinity list propagation and exception list building

Engineering Contradiction:
Improveclient-node affinityVSAvoidpacket routing logic
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the routing decision process into distinct components: affinity list maintenance at each node, affinity list propagation during convergence, and exception list building at bucket-owning nodes. This segmentation allows each node to handle a specific aspect of the complexity rather than requiring all nodes to implement complete affinity tracking logic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each node independently maintains its own affinity list and participates in propagating affinity information during convergence without requiring centralized coordination. Nodes autonomously build their exception lists based on received affinity information, distributing the complexity management across all nodes rather than concentrating it in a single controller.

Inventive Principle:
Principle #25Self-service

3Reliability

If affinity lists are propagated during convergence, then client affinity is preserved after bucket redistribution, but convergence time and communication overhead increase

Engineering Contradiction:
Improveclient-node affinity preservationVSAvoidconvergence time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system merges the affinity list propagation process with the existing convergence procedure. By integrating affinity information exchange into the standard convergence flow, the system leverages existing communication infrastructure and timing rather than adding a separate, time-consuming propagation phase. This combining approach preserves client affinity while minimizing additional convergence time.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8046467B2Maintaining client affinity in network load balancing systems
Publication Date: 2011.10.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8046467B2 patent drawing
  • US8046467B2 patent drawing
  • US8046467B2 patent drawing

AI summary

Described is a technology in a network load balancing system (node cluster), by which client affinity is preserved across cluster configuration changes, including for new connections from a previous client. Each node maintains a list of the clients that are to remain (have affinity, or “stickiness”) with that node, including following bucket redistribution resulting from convergence. Each affinity list is communicated during convergence so that other nodes may build an exception list or lists. Via a node's exception list, the node that owns a bucket corresponding to a client knows of the affinity with another node and thus drops any packets from that client. Affinity may expire, whereby the node having affinity with that client releases it and notifies the node owning the bucket for that client that the client is no longer to be treated as an exception.