Technologies for data center environment checkpointing
Abstract
Technologies for environment checkpointing include an orchestration node communicatively coupled to one or more working computing nodes. The orchestration node is configured to administer an environment checkpointing event by transmitting a checkpoint initialization signal to each of the one or more working computing nodes that have been registered with the orchestration node. Each working computing node is configured to pause and buffer any presently executing applications, save checkpointing data (an execution state of each of the one or more applications) and transmit the checkpointing data to the orchestration node. Other embodiments are described and claimed.
Claims
exact text as granted — not AI-modified1 - 25 . (canceled)
26 . A method for performing a checkpointing event, the method comprising:
receiving, by a hardware event monitor of a computing node, a checkpoint initialization signal from an orchestration node communicatively coupled to the computing node; pausing, by a processor of the computing node, one or more applications presently executing on the computing node in response to receiving the checkpoint initialization signal; buffering, by an input/output (I/O) buffering device of the computing node, input/output (I/O) signals of the one or more paused applications; saving, by a hardware checkpoint support of the computing node, checkpointing data to a memory storage device of the computing node, wherein the checkpointing data includes an execution state of each of the one or more applications; and transmitting, by the computing node, the checkpointing data to the orchestration node.
27 . The method of claim 26 , further comprising locking, by the computing node, context of the computing node to block any new data received by the computing node from being processed by the computing node in response to receiving the checkpoint initialization signal.
28 . The method of claim 27 , further comprising:
receiving, by the hardware event monitor of a computing node, a checkpoint complete signal from the orchestration node; and resuming the one or more paused applications in response to receiving the checkpoint complete signal.
29 . The method of claim 28 , wherein resuming the one or more paused applications comprises (i) unlocking context of the computing node to allow any new data to be received by the computing node and (ii) releasing the input/output (I/O) signals of the one or more applications from the input/output (I/O) buffering device of the computing node.
30 . The method of claim 26 , further comprising registering, by the computing node, with the orchestration node to provide an indication that the checkpointing event is to be initiated by the orchestration node.
31 . The method of claim 30 , further comprising:
receiving, by the computing node, environment checkpointing data from the orchestration node, wherein the environment checkpointing data includes execution state data of other computing nodes communicatively coupled to the orchestration node; and storing, by the computing node, the environment checkpointing data in a local storage.
32 . The method of claim 31 , further comprising:
receiving, by the computing node, a checkpoint restore signal from the orchestration node; loading, by the hardware checkpoint support, a saved execution state of at least one of the one or more applications into a memory of the computing node; and resuming, by the computing node, execution of the at least one of the one or more applications from the saved execution stated loaded into the memory.
33 . The method of claim 32 , wherein loading the saved execution state comprises loading a saved execution state based at least in part on the environment checkpointing data.
34 . The method of claim 26 , further comprising:
executing, by the computing node, a distributed application using a main thread initiated by the computing node; wherein saving the checkpointing data comprises saving an execution state of the distributed application, and wherein the execution state is indicative of a virtual memory state of the distributed application.
35 . The method of claim 34 , further comprising:
saving memory pages, stored in a memory of the computing node, corresponding to a first application of the one or more applications in response to a determination that the first application is lagging behind the main thread; and flushing memory pages, stored in the memory, corresponding to a second application of the one or more applications in response to a determination that the second application is working ahead of the main thread.
36 . The method of claim 26 , wherein buffering the input/output (I/O) signals of the one or more paused applications comprises buffering memory access events.
37 . The method of claim 26 , wherein buffering the input/output (I/O) signals of the one or more paused applications comprises buffering disk access events.
38 . The method of claim 26 , wherein buffering the input/output (I/O) signals of the one or more paused applications comprises buffering network access events.
39 . A method for administering an environment checkpointing event, the method comprising:
transmitting, by an orchestration node, a checkpoint initialization signal to each of a plurality of working computing nodes communicatively coupled to the orchestration node in response to an environment checkpoint initialization signal indicative of a checkpoint event; receiving, by the orchestration node, checkpointing data from each working computing node in response to the checkpoint initialization signal, wherein the checkpoint data includes an execution state of at least one application of corresponding working computing node; storing, by a memory storage device of the orchestration node, the received checkpointing data; transmitting, by the orchestration node, a checkpoint complete signal to each of the plurality of working computing nodes.
40 . The method of claim 39 , wherein transmitting the checkpoint complete signal to the plurality of working computing nodes comprises transmitting the checkpoint complete signal to the plurality of working computing nodes in response to a determination that the checkpointing data has been received from each of the plurality of working computing nodes.
41 . The method of claim 39 , further comprising transmitting, by the orchestration node, the received checkpointing data from each of the plurality of working computing nodes to each of the plurality of working computing nodes communicatively coupled to and registered with the orchestration node.
42 . A computing node comprising:
one or more processors; and one or more memory devices having stored therein a plurality of instructions that, when executed by the one or more processors, cause the computing node to:
pause one or more applications presently executed on the computing node;
buffer, by an input/output (I/O) buffering device, input/output (I/O) signals of the one or more paused applications; and
transmit checkpointing data indicative of an execution state of each of the one or more applications to a remote node.
43 . The computing node of claim 42 , wherein to pause the one or more applications comprises to pause the one or more applications in response to receipt of a checkpoint initialization signal received from the remote node, and wherein the plurality of instructions, when executed, further cause the computing node to:
lock context of the computing node to block any new data received by the computing node from being processed by the computing node in response to receipt of the checkpoint initialization signal.
44 . The computing node of claim 43 , wherein the plurality of instructions, when executed by the one or more processors, further cause the computing node to:
receive a checkpoint complete signal from the remote node, and resume the one or more paused applications in response to having received the checkpoint complete signal, wherein to resume the one or more paused applications comprises to (i) unlock context of the computing node to allow any new data to be received by the computing node and (ii) release the input/output (I/O) signals of the one or more applications from the input/output (I/O) buffering device.
45 . The computing node of claim 42 , wherein the plurality of instructions, when executed by the one or more processors, further cause the computing node to:
save the checkpointing data to a memory storage device of the computing node, wherein the checkpointing data includes an execution state of each of the one or more applications; and execute a distributed application using a main thread initiated by the computing node, wherein to save the checkpointing data comprises to save an execution state of the distributed application, and wherein the execution state is indicative of a virtual memory state of the distributed application.
46 . An orchestration node comprising:
one or more processors; and one or more memory devices having stored therein a plurality of instructions that, when executed by the one or more processors, cause the orchestration node to:
transmit a checkpoint initialization signal to each of a plurality of working computing nodes communicatively coupled to the orchestration node in response to an environment checkpoint initialization signal indicative of a checkpoint event, and
transmit a checkpoint complete signal to each of the plurality of working computing nodes in response to a determination that checkpointing data has been received from each corresponding working computing node, wherein the checkpoint data includes an execution state of at least one application of a corresponding working computing node.
47 . The orchestration node of claim 46 , wherein the plurality of instructions, when executed, further cause the orchestration node to:
receive checkpointing data from each working computing node in response to the checkpoint initialization signal, and store the received checkpointing data, and
48 . The orchestration node of claim 46 , wherein the plurality of instructions, when executed, further cause the orchestration node to transmit the received checkpointing data from each of the plurality of working computing nodes to each of the plurality of working computing nodes communicatively coupled to and registered with the orchestration node.
49 . One or more computer-readable storage media comprising a plurality of instructions stored thereon that, when executed by a computing node, cause the computing node to:
pause one or more applications presently executed on the computing node; buffer, by an input/output (I/O) buffering device, input/output (I/O) signals of the one or more paused applications; and transmit checkpointing data indicative of an execution state of each of the one or more applications to a remote node.
50 . The one or more computer-readable storage media of claim 49 , wherein to pause the one or more applications comprises to pause the one or more applications in response to receipt of a checkpoint initialization signal received from the remote node, and wherein the plurality of instructions, when executed, further cause the computing node to:
lock context of the computing node to block any new data received by the computing node from being processed by the computing node in response to receipt of the checkpoint initialization signal.
51 . The one or more computer-readable storage media of claim 50 , wherein the plurality of instructions, when executed by the computing node, further cause the computing node to:
receive a checkpoint complete signal from the remote node, and resume the one or more paused applications in response to having received the checkpoint complete signal, wherein to resume the one or more paused applications comprises to (i) unlock context of the computing node to allow any new data to be received by the computing node and (ii) release the input/output (I/O) signals of the one or more applications from the input/output (I/O) buffering device.
52 . The one or more computer-readable storage media of claim 49 , wherein the plurality of instructions, when executed by the computing node, further cause the computing node to:
save the checkpointing data to a memory storage device of the computing node, wherein the checkpointing data includes an execution state of each of the one or more applications; and execute a distributed application using a main thread initiated by the computing node, wherein to save the checkpointing data comprises to save an execution state of the distributed application, and wherein the execution state is indicative of a virtual memory state of the distributed application.
53 . One or more computer-readable storage media comprising a plurality of instructions stored thereon that, when executed by an orchestration node, cause the orchestration node to:
transmit a checkpoint initialization signal to each of a plurality of working computing nodes communicatively coupled to the orchestration node in response to an environment checkpoint initialization signal indicative of a checkpoint event, and transmit a checkpoint complete signal to each of the plurality of working computing nodes in response to a determination that checkpointing data has been received from each corresponding working computing node, wherein the checkpoint data includes an execution state of at least one application of a corresponding working computing node.
54 . The one or more computer-readable storage media of claim 53 , wherein the plurality of instructions, when executed, further cause the orchestration node to:
receive checkpointing data from each working computing node in response to the checkpoint initialization signal, and store the received checkpointing data, and
55 . The one or more computer-readable storage media of claim 53 , wherein the plurality of instructions, when executed, further cause the orchestration node to transmit the received checkpointing data from each of the plurality of working computing nodes to each of the plurality of working computing nodes communicatively coupled to and registered with the orchestration node.Join the waitlist — get patent alerts
Track US2017357552A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.