Server Identifier Based Load Balancing for Session Continuity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In large-scale distributed systems, server changes due to additions or removals disrupt traffic distribution, leading to session interruptions and sub-optimal performance as traffic is reallocated, causing processing overhead and potential loss of in-flight requests.
Innovation Solution
A method where first data is directed to a given server based on a server identifier, with subsequent data also directed to the same server unless a further parameter indicates a need to redirect, allowing for efficient load balancing and session affinity without relying on mapping tables.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If hash values are reallocated when servers change, then load can be redistributed across new servers, but session affinity is lost and sessions may be interrupted
Solution Approach 1:
The system performs preliminary actions by establishing session affinity bindings before server changes occur. When a client device communicates with a server, the load balancer creates a binding between the client's identifier and the server's identifier, storing this association in advance. This preliminary binding ensures that when servers are added or removed, existing sessions can maintain their affinity to the original server while new traffic can be distributed to new servers, thus preventing session interruptions during load redistribution.
2Reliability
If mapping tables are used to maintain session affinity, then sessions can be tracked across server changes, but processing overhead increases
Solution Approach 1:
The invention extracts the session affinity maintenance function from the load balancer's core processing path. Instead of requiring the load balancer to consult mapping tables for every packet, the system embeds the server identifier directly in the packet headers and uses simple filter-based matching. This extraction moves the complexity from active table lookups to passive header inspection, significantly reducing processing overhead while maintaining reliable session tracking.
Solution Approach 2:
The system creates simplified copies of session affinity functionality using filter rules that mirror the mapping table logic. Rather than implementing full mapping table structures with complex lookup operations, the load balancer uses lightweight filter rules that copy only the essential matching logic, enabling fast session affinity maintenance without the overhead of traditional mapping tables.
3Productivity
If traffic is redistributed during server changes, then new servers can handle increased demand, but in-flight requests may be lost
Solution Approach 1:
The system establishes session affinity bindings in advance before server changes occur. When a client initiates communication, the load balancer binds the client's identifier to the selected server's identifier and stores this binding. This preliminary action ensures that all subsequent packets from that client are directed to the same server, protecting in-flight requests from being lost during server changes while allowing new servers to accept new sessions and improve overall utilization.
Data Source
AI summary
Processing data in a communications system comprising a plurality of servers is provided. First data received from a communications device is directed to a given server in the plurality of servers. A server identifier identifying the given server is transmitted to the communications device. Subsequent data is received from the communications device. The subsequent data comprises the server identifier and a further parameter. The given server is selected on the basis of at least the server identifier and some of the subsequent data received from the communications device is directed to the given server. In the event of a need to redirect subsequent data to a server other than the given server, a different server is selected on the basis of at least the further parameter and further of the subsequent data received from the communications device is directed to the selected different server.


