Connection Manager Shared Memory Session Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing application servers face inefficiencies and session loss due to the overhead of establishing connections between the connection manager and J2EE dispatcher, as well as the risk of virtual machine crashes leading to session drops, particularly in handling distributed and non-distributed computing sessions.
Innovation Solution
Implementing a connection manager that utilizes shared memory regions for request/response data transfer, including a request/response shared memory for normal operations and shared closure-based shared memory for session state information, along with request notification queues to facilitate fast session failover and manage worker nodes, thereby reducing overhead and ensuring session reliability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If connection manager establishes separate connections for each worker node in J2EE standards-based software suite, then request routing capability is improved, but connection overhead and system complexity increase
Solution Approach 1:
The patent merges multiple worker nodes into a single shared memory space, allowing the connection manager to communicate with all worker nodes through one connection rather than establishing separate connections to each worker node. This reduces connection overhead while maintaining the ability to route requests to appropriate worker nodes through memory-based coordination.
Solution Approach 2:
The patent introduces shared memory as an intermediary between the connection manager and worker nodes. Instead of direct connections between the connection manager and each worker node, all communication passes through the shared memory region, which acts as a mediator to reduce connection complexity while preserving routing functionality.
2Reliability
If virtual machine crashes are allowed to occur, then system resilience is improved, but session loss increases
Solution Approach 1:
The patent implements session state information storage in shared memory before worker node failures can occur. By maintaining session state in a location accessible to all worker nodes and the connection manager, the system prepares in advance for potential crashes, allowing failed sessions to be recovered by other worker nodes without data loss.
Solution Approach 2:
The patent implements session failover mechanisms that monitor worker node health and automatically redirect sessions from failed worker nodes to healthy ones. This feedback loop ensures that when a virtual machine crashes, the system detects the failure and redistributes sessions, preventing session loss while maintaining system resilience.
3Productivity
If shared memory is used for request/response data transfer, then data transfer efficiency is improved, but memory management complexity increases
Solution Approach 1:
The patent segments the shared memory into distinct regions for different purposes: request data, response data, and session state information. This segmentation allows efficient data transfer while simplifying memory management by providing clear boundaries and access patterns for different types of data, reducing the complexity of managing the shared memory space.
4Reliability
If request notification queues are implemented, then session failover speed is improved, but system complexity increases
Solution Approach 1:
The patent implements request notification queues that pre-process and organize incoming requests before they need to be routed to worker nodes. By preparing requests in advance and maintaining ready queues, the system can rapidly failover sessions when worker nodes fail without needing to reprocess requests, achieving fast failover while managing complexity through structured queue management.
Data Source
AI summary
A method is described that involves establishing a connection over a shared memory between a connection manager and a worker node. The shared memory is accessible to multiple worker nodes. Then sending, from the connection manager to the worker node over the connection, a first request containing a method call to a remote object on the worker node. Also sending, from the connection manager to the worker node over the connection, a second request containing a second method call to a second remote object on the worker node.


