Affinity Table for Distributed Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed load balancing systems, maintaining client affinity across connections is challenging, especially when server membership changes, as it can lead to loss of session state and shopping cart information if requests are routed to the wrong server.

Innovation Solution

Each server in a cluster maintains an affinity table and broadcasts requests to determine if other servers have affinity with the client, allowing the appropriate server to respond, ensuring client affinity by querying other servers if necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If requests are load balanced across multiple servers, then system productivity and scalability are improved, but client affinity may be lost causing session state and shopping cart information to be unavailable

Engineering Contradiction:
Improveworkload distributionVSAvoidclient affinity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an affinity table as an intermediary data structure that mediates between the load balancer and servers. This affinity table stores mappings between client identifiers and their assigned servers, allowing the load balancer to make informed routing decisions that maintain client affinity while distributing workload across multiple servers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a single server receives all requests to maintain client affinity, then session state availability is improved, but system scalability and productivity are reduced

Engineering Contradiction:
Improvesession state availabilityVSAvoidworkload capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the client affinity management by dividing the server cluster into multiple affinity zones, each managed by specific servers. The affinity table segments client assignments across these zones, allowing different portions of the workload to be handled by different servers while maintaining affinity within each segment.

Inventive Principle:
Principle #1Segmentation

3Stability of the object's composition

If client affinity is maintained across server changes, then data consistency is improved, but system complexity increases due to affinity tracking

Engineering Contradiction:
Improvedata consistencyVSAvoidaffinity management complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The affinity table is designed to be self-updating through affinity update messages exchanged between servers. When a server processes a request or experiences changes, it automatically updates the affinity table with relevant information, reducing the need for complex external management mechanisms and simplifying the overall system architecture.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8176495B2Client affinity in distributed load balancing systems
Publication Date: 2012.05.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8176495B2 patent drawing
  • US8176495B2 patent drawing
  • US8176495B2 patent drawing

AI summary

Aspects of the subject matter described herein relate to client affinity in distributed load balancing systems. In aspects, a request from a requester is sent to each server of a cluster. Each server determines whether it has affinity to the requester. If so, the server responds to the request. Otherwise, if the request would normally be load balanced to the server, the server queries the other servers in the cluster to determine whether any of them have affinity to the requester. If one of them does, the server drops the request and allows the other server to respond to the request; otherwise, the server responds to the request.