Network Socket Failover During Application Migration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing techniques for maintaining network connections during application service interruptions, such as software migration, face challenges like duplicative processing, risk of connection termination, and requirement for separate machines or protocol modifications, which are not efficient or reliable.
Innovation Solution
A system and method for implementing network connection failover by maintaining a network socket on behalf of the application, using connection managers to sustain the connection by acknowledging incoming traffic and updating the socket state upon restart, without requiring additional machines or protocol modifications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the application is migrated from one network system to another, then load balancing and system optimization are improved, but the network connection is terminated and transaction state is lost
Solution Approach 1:
The patent introduces a front-end communication entity that acts as an intermediary between the application and the network. This entity takes over network protocol processing during application migration, allowing the application to be quiesced and migrated without terminating the network connection. The front-end entity maintains the connection by handling packet acknowledgment and protocol state management while the application is being transferred between systems.
2Reliability
If a front end communication entity is used to offload network protocol processing, then connection continuity is maintained, but duplicative processing resources are required
Solution Approach 1:
The patent applies preliminary action by having the front-end communication entity prepare and maintain the network connection state before the application actually needs to resume processing. The entity pre-establishes the connection, manages protocol state in advance, and keeps the connection warm during the application's quiescent period, so that when the application restarts, the connection is already established and ready for immediate data transmission without requiring duplicative ongoing processing resources.
3Ease of manufacture
If the network connection is isolated during interruption, then the application can be migrated, but the peer may drop the connection due to retransmission timeouts
Solution Approach 1:
The front-end communication entity serves as a mediator that remains active and communicates with the network peer throughout the application migration process. Instead of isolating the connection, the front-end entity continues to acknowledge packets, manage the TCP state machine, and maintain the connection alive. This allows the application to be migrated in the background while the front-end entity handles all network protocol interactions, preventing the peer from dropping the connection due to timeouts.
4Reliability
If TCP protocol is modified at both endpoints to support temporary inactivity, then connection can be maintained, but network stack modifications are required
Solution Approach 1:
The front-end communication entity acts as a mediator that implements the connection maintenance logic without requiring modifications to the standard TCP network stack at either endpoint. The entity intercepts and manages network packets, implements custom logic for maintaining connections during application quiescence, and translates this into standard TCP protocol interactions. This approach maintains connection reliability while avoiding the complexity of modifying core network stack protocols.
Data Source
AI summary
A system, method and computer program product for implementing network connection failover during application service interruption. While the application is quiesced, a network socket that terminates a network connection to a network peer is maintained on behalf of the application. The socket's network connection state information is sustained by providing acknowledgements of incoming network traffic to the network peer that prevent the peer from terminating the connection. Upon restart, the application is brought up with a blocked socket. The state of the blocked socket is conformed to a current network connection state of the original socket and the blocked socket is unblocked.


