Swift restoration of connections and sessions
AssigneeAmazon Technologies, Inc.
InventorsShyam Prasad Rajagopal, Marc Stephen Olson, Sudhir Venkata Dachepalli, Zhiping Zhang
Life of this patent
Estimating the term…
Abstract
Systems and methods are provided for swift restoration of a network connection and communication session between computing systems. A network connection between two computing systems may be established. When the network connection is interrupted, one computing system may send a reestablishment connection to the other computing system, and the network connection may be reestablished based on the reestablishment communication without establishing a second network connection.
Claims20
A system comprising:
- a server comprising a first volatile storage and a first computer processor;
- and
- a host device comprising second volatile storage, a persistent storage, and a second computer processor;
- wherein the host device is configured to:
- establish a network connection with the server, wherein the network connection comprises one of a Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or Scalable Reliable Datagram protocol (SRD) connection;
- send, to the server via the network connection, a plurality of input/output communications;
- initiate an update to executable software stored in the second volatile storage;
- in response to initiating an update to the executable software, store, in the persistent storage, connection metadata associated with the network connection, wherein the connection metadata comprises a connection identifier, a connection key, and a server identifier associated with the server;
- send to the server, in response to completion of the update to the executable software, a reestablishment communication comprising at least a portion of the connection metadata, wherein the network connection is reestablished based at least partly on the reestablishment communication and without establishing a second network connection;
- and
- resend, to the server, at least one input/output communication of the plurality of input/output communications based at least partly on a failure to receive an acknowledgement of the at least one input/output communication from the server;
- and
- wherein the server is configured to:
- receive, into a queue in the second volatile storage, the plurality of input/output communications from the host device via the network connection established with the host device, wherein the network connection is interrupted subsequent to receiving an input/output communication of the plurality of input/output communications;
- receive the reestablishment communication from the host device;
- and
- in response to receiving the reestablishment communication:
- reestablish the network connection;
- receive, into the queue, the at least one input/output communication resent from the host device;
- and
- initiate a cleanup procedure, wherein the cleanup procedure comprises:
- determining whether the queue includes one or more un-processed input/output communications that were received prior to receiving the reestablishment communication;
- and
- based on the queue including one or more un-processed input/output communications received prior to receiving the reestablishment communication, removing the one or more un-processed input/output communications received prior to receiving the reestablishment communication from the queue.
A computer-implemented method comprising:
- under control of a first computing system comprising persistent storage and one or more computer processors configured to execute specific instructions,
- initiating, by an application layer, a network connection with a second computing system, wherein the network connection comprises one of a Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or Scalable Reliable Datagram protocol (SRD) connection;
- exchanging, by a transportation layer, a first plurality of data communications with the second computing system via the network connection, wherein the first plurality of data communications comprises a first plurality of input/output requests;
- storing, in the persistent storage, connection metadata representing one or more data items to be used in reestablishing communication with the second computing system via the network connection, wherein the connection metadata is accessible by the transportation layer;
- determining that a network connection interruption has occurred;
- determining that the network connection interruption has been resolved;
- and
- in response to determining that the network connection interruption has been resolved:
- sending, by the transportation layer, a reestablishment communication to the second computing system based at least partly on determining that the network connection interruption has been resolved, wherein the reestablishment communication comprises at least a portion of the connection metadata, and wherein the network connection is reestablished based at least partly on the reestablishment communication without establishing a second network connection;
- determining that no response was received from the second computing system for one or more input/output requests of the first plurality of input/output requests;
- and
- exchanging, by the transportation layer, a second plurality of data communications with the second computing system via the network connection subsequent to reestablishment of the network connection, wherein the second plurality of data communications comprises the one or more input/output requests for which no response was received.
A computer-implemented method comprising:
- under control of a first computing system comprising computer-readable storage and one or more computer processors configured to execute specific instructions:
- establishing a network connection with a second computing system, wherein the network connection comprises one of a Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or Scalable Reliable Datagram protocol (SRD) connection, and wherein the network connection is associated with connection metadata representing one or more data items to be used in communicating with the second computing system via the network connection;
- receiving, into a queue in the computer-readable storage, a plurality of communications from the second computing system via the network connection, wherein the network connection is interrupted after receipt of a communication of the plurality of communications;
- receiving a reestablishment communication from the second computing system, wherein the reestablishment communication comprises at least a portion of the connection metadata, and wherein the network connection is reestablished based at least partly on the reestablishment communication without establishing a second network connection;
- and
- in response to receiving the reestablishment communication:
- resuming receipt, into the queue, of communications from the second computing system via the network connection that has been reestablished;
- and
- initiating a cleanup procedure, wherein the cleanup procedure comprises:
- determining whether the queue includes one or more un-processed communications that were received prior to receiving the reestablishment communication;
- and
- based on the queue including one or more un-processed communications received prior to receiving the reestablishment communication, removing the one or more un-processed communications from the queue received prior to receiving the reestablishment communication.
Dependencies are inferred from the claim text.