Methods and apparatus for remotely updating executing processes
First Claim
1. A method, comprising:
- detecting, by an update agent executing on a computing device on a local network, that an update package for a current process executing on the computing device is available on a remote network, wherein the current process receives I/O requests including write requests from one or more client processes via one or more I/O ports, appends write data indicated by the write requests to an in-memory portion of a write log on a local data store, and uploads write data from the write log to a remote data store;
downloading the update package to the computing device in response to said detecting;
directing the current process to start an update sequence;
storing, by the current process, a current configuration to an external store, wherein the current configuration includes at least an indication of the one or more I/O ports;
instantiating an updated process on the computing device according to the downloaded update package;
loading, by the updated process, the current configuration from the external store;
flushing, by the current process, write data from the in-memory portion of the write log to the local data store;
releasing, by the current process, the one or more I/O ports; and
receiving, by the updated process, I/O requests including write requests from the one or more client processes via the one or more I/O ports.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, apparatus, and computer-accessible storage media for remotely updating an executing process that receives I/O requests on I/O port(s), stores write data to a write log on local storage, and uploads data from the write log to remote storage. An update for the process is detected and downloaded, and an updated process is instantiated from the update. The current process is directed to perform a shutdown for update during an update window. In response, the current process saves its current configuration, flushes an in-memory portion of the write log to local storage, and releases its I/O port(s). The updated process loads the saved configuration, detects that the port(s) have been released, and starts accepting I/O requests on the ports. During flushing, the current process flushes current data in memory while continuing to append new write data, stops accepting new write requests, and then flushes the new write data.
-
Citations
22 Claims
-
1. A method, comprising:
-
detecting, by an update agent executing on a computing device on a local network, that an update package for a current process executing on the computing device is available on a remote network, wherein the current process receives I/O requests including write requests from one or more client processes via one or more I/O ports, appends write data indicated by the write requests to an in-memory portion of a write log on a local data store, and uploads write data from the write log to a remote data store; downloading the update package to the computing device in response to said detecting; directing the current process to start an update sequence; storing, by the current process, a current configuration to an external store, wherein the current configuration includes at least an indication of the one or more I/O ports; instantiating an updated process on the computing device according to the downloaded update package; loading, by the updated process, the current configuration from the external store; flushing, by the current process, write data from the in-memory portion of the write log to the local data store; releasing, by the current process, the one or more I/O ports; and receiving, by the updated process, I/O requests including write requests from the one or more client processes via the one or more I/O ports. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A device, comprising:
-
at least one processor; and a memory comprising program instructions, wherein the program instructions are executable by the at least one processor to implement a storage gateway process that receives I/O requests including write requests from one or more client processes on a local network via one or more I/O ports, appends write data indicated by the write requests to an in-memory portion of a write log on a local data store, and uploads write data from the write log to a remote data store; wherein the program instructions are further executable by the at least one processor to download an update package from a remote network, direct the storage gateway process to shut down, and instantiate an updated storage gateway process in the memory according to the downloaded update package; wherein, in response to receiving the direction to shut down, the storage gateway process persists a storage gateway configuration that includes an indication of the one or more I/O ports, flushes write data from the in-memory portion of the write log to the local data store, and releases the one or more I/O ports; and wherein the updated storage gateway process loads the persisted storage gateway configuration and, subsequent to the storage gateway process releasing the one or more I/O ports, takes over storage gateway operations from the storage gateway process. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-accessible storage medium storing program instructions computer-executable to implement a storage gateway process on a computing device, the storage gateway process operable to:
-
perform storage gateway operations that include receiving I/O requests including write requests from one or more client processes on a local network via one or more I/O ports, appending write data indicated by the write requests to an in-memory portion of a write log on a local data store, and uploading write data from the write log to a remote data store; receive an indication that the storage gateway process is to shut down so that an updated storage gateway process can take over the storage gateway operations; and in response to receiving said indication; persist a storage gateway configuration that includes an indication of the one or more I/O ports; flush write data from the in-memory portion of the write log to the local data store, wherein, to flush write data from the in-memory portion of the write log to the local data store, the storage gateway process is further operable to; flush current write data in the in-memory portion of the write log to the local data store while accepting I/O requests including new write requests on the one or more I/O ports and appending new write data indicated by the new write requests to the in-memory portion of the write log, and after flushing the current write data in the in-memory portion of the write log to the local data store, flush the new write data in the in-memory portion of the write log to the local data store while rejecting subsequent write requests on the one or more I/O ports; and release the one or more I/O ports so that the updated storage gateway process can take over the storage gateway operations. - View Dependent Claims (19, 20, 21, 22)
-
Specification