Load Balancer Session Management for Collaboration Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern computer systems face challenges in managing bidirectional communication channels for collaboration sessions across different domains, particularly in handling failovers to ensure continuous communication among client devices participating in collaboration sessions.
Innovation Solution
The system employs a load balancer to manage service instances and establish bidirectional communication channels, using session identifiers and service instance identifiers to facilitate communication between web browser applications and service instances, while also handling requests for collaboration sessions and failovers by selecting appropriate service instances to maintain session integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a load balancer distributes requests across multiple service instances, then system reliability is improved through failover capability, but session management complexity increases due to the need to track service instance identifiers across different instances
Solution Approach 1:
The system performs preliminary actions by embedding the service instance identifier in the collaboration session identifier before the client device needs to reconnect. When the load balancer receives a new connection request, it can immediately retrieve the stored service instance identifier and route the request to the correct service instance without requiring complex real-time tracking or coordination between instances
Solution Approach 2:
The load balancer acts as an intermediary that maintains the mapping between collaboration session identifiers and service instance identifiers. It receives collaboration session identifiers from client devices, retrieves the corresponding service instance identifiers from its storage, and forwards requests to the appropriate service instances, thereby simplifying session management across multiple instances
2Reliability
If the system stores session identifiers and service instance identifiers for later retrieval, then communication reliability is improved during failovers, but memory usage increases to maintain these mappings
Solution Approach 1:
The system segments the identification information into two distinct components: collaboration session identifiers that client devices receive and use for reconnection, and service instance identifiers that the load balancer uses for internal routing. This segmentation allows the system to store only the necessary mappings (collaboration session ID to service instance ID) in the load balancer's memory, rather than storing complete session state information across all service instances
Solution Approach 2:
The load balancer creates and maintains a copy of the service instance identifier mapping in its memory based on the collaboration session identifier. This copy allows the load balancer to quickly retrieve the correct service instance without requiring the service instance itself to store or manage the mapping information, thereby reducing the overall memory burden on the distributed system
Data Source
AI summary
Some embodiments provide a non-transitory machine-readable medium stores a program. The program receives, from an application a session identifier associated with a service instance in a plurality of service instances and a service identifier associated with the second service instance. The program further sends a response that includes a collaboration session identifier associated with the collaboration session to the application. The program also receives, from a web browser application the collaboration session identifier. The program further sends the session identifier and the service instance identifier to the web browser application. The program also receives, from the web browser application a request for a bidirectional communication channel for the collaboration session. The request includes the session identifier and the service instance identifier. The program further creates the bidirectional communication channel between the web browser application and the second service instance.


