Affinity Table for Distributed Load Balancing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


