US 11,657,038 B1
Context preservation during server restart
Gopi Krishna Attaluri, Cupertino, CA (US); Ian Kosseff, Kirkland, WA (US); Kamal Kant Gupta, Belmont, CA (US); Saileshwar Krishnamurthy, Palo Alto, CA (US); Alok Nandan Nikhil, Seattle, WA (US); and Alexandre Verbitski, Woodinville, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Mar. 29, 2019, as Appl. No. 16/370,728.
Int. Cl. G06F 16/00 (2019.01); G06F 16/23 (2019.01); G06F 11/14 (2006.01); G06F 9/455 (2018.01)
CPC G06F 16/2379 (2019.01) [G06F 9/45558 (2013.01); G06F 11/1438 (2013.01); G06F 11/1464 (2013.01); G06F 2009/45583 (2013.01); G06F 2009/45595 (2013.01); G06F 2201/84 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
receiving a request to restart a database server having at least one open communications session with a database client, wherein the database server is an application supported by an operating system executed by a virtual machine hosted by a first computer system of a provider network, and wherein the database client is executed by a second computer system;
pending a connection between the database server and a connection manager of the operating system executed by the virtual machine hosted by the first computer system;
writing, by a state manager of the database server to a memory device, session state data associated with the at least one open communications session with the database client, the session state data including one or more session-specific variables associated with the at least one open communications session with the database client and a file descriptor associated with an established Transmission Control Protocol (TCP) connection to the database client;
launching, by the operating system, a restarted database server;
reading, by the state manager from the memory device, the session state data;
in response to the launching of the restarted database server, buffering, by the connection manager of the operating system executed by the virtual machine hosted by the first computer system, during a period of time when the database server is restarting, inbound data from the database client executed by the second computer system for the at least one open communications session with the database client;
reading, by the restarted database server, the inbound data;
restoring, by the state manager using the session state data, the at least one open communications session within the restarted database server; and
receiving, by the restarted database server, a transaction from the database client.