IP Library Granted Patent US 10,146,642
Granted Patent B1
US 10,146,642 · App. 15/079,628 · Granted Dec 4, 2018

Fault resilient distributed computing using virtual machine continuous data protection

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,146,642
App. No.
15/079,628
Granted
Dec 4, 2018
Kind
B1
Abstract

Methods and apparatus are provided for fault resilient distributed computing using a continuous data protection feature of virtual machines. An exemplary method by a compute node for executing a process of a distributed application comprises providing a virtual machine having continuous data protection to store a copy of a state of the process in a performance storage tier; and providing a virtual machine to intercept messages of the process and to store a copy of the intercepted messages in a message log, wherein the process communicates with a plurality of other processes executing on other compute nodes, and wherein the plurality of processes employ asynchronous checkpointing. The process optionally communicates with the other processes in the distributed application using one or more virtual networks. The state is optionally moved from the performance storage tier to a capacity storage tier when a new state is stored. The stored state and/or the message log can be purged using a stored epoch counter, or when an explicit checkpoint routine has completed.

Claims (34)

1. A method implemented by a compute node executing a process of a distributed application, comprising the steps of:

providing a first virtual machine having substantially continuous data protection to store a copy of a state of said process in a performance storage tier that employs storage resources based on performance considerations; and

providing a second virtual machine to intercept messages of said process on said compute node and to store a copy of said intercepted messages in a message log, wherein the intercepted messages of said process (i) allow said copy of said state of said process to be obtained in an uncoordinated manner with respect to one or more additional processes of said distributed application and (ii) comprise messages that are exchanged by said process on said compute node with the one or more additional processes of said distributed application executing on one or more other compute nodes, and wherein, following a failure of said compute node, said message log is used to process one or more messages exchanged following a most recent storage of said copy of said state of said process;

wherein said process and said one or more additional processes employ asynchronous checkpointing;

the compute node being implemented utilizing at least one processing device coupled to a memory.

2. The method of claim 1 , wherein the state comprises one or more of modified pages and processor registers of said process.

3. The method of claim 1 , wherein the state is stored using asynchronous distributed transactional checkpoints with respect to other compute nodes.

4. The method of claim 1 , wherein the process communicates with said other processes in said distributed application using one or more virtual networks.

5. The method of claim 1 , wherein the intercepted messages of said process comprise messages that are one or more of sent and received by said process.

6. The method of claim 1 , wherein the message log is stored in one or more of said performance storage tier and on one or more of said compute nodes.

7. The method of claim 1 , wherein the performance storage tier comprises a key-value storage tier and wherein the method further comprises one or more of using a key-value interface to migrate a host image of said process on a different compute node and deduplicating said state stored across a plurality of said compute nodes.

8. The method of claim 1 , further comprising the step of moving the state from the performance storage tier to a capacity storage tier that employs storage resources based on capacity considerations when a new state of said compute node is stored in said performance storage tier.

9. The method of claim 1 , further comprising the steps of storing an epoch counter with one or more of said stored state and said intercepted messages and purging one or more of said stored state and said intercepted messages using the epoch counter.

10. The method of claim 1 , further comprising the steps of executing an explicit checkpoint routine and purging one or more of said stored state and said intercepted messages when said explicit checkpoint routine has completed.

11. The method of claim 1 , further comprising one or more of the steps of using said stored state to reconstruct a host image on a different compute node, using said message log to resend messages received after said state was stored and using said message log to filter messages sent after said state was stored such that the same message is not sent twice.

12. A computer program product of a compute node executing a process of a distributed application, comprising a non-transitory machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps:

providing a first virtual machine having substantially continuous data protection to store a copy of a state of said process in a performance storage tier that employs storage resources based on performance considerations; and

providing a second virtual machine to intercept messages of said process on said compute node and to store a copy of said intercepted messages in a message log, wherein the intercepted messages of said process (i) allow said copy of said state of said process to be obtained in an uncoordinated manner with respect to one or more additional processes of said distributed application and (ii) comprise messages that are exchanged by said process on said compute node with the one or more additional processes of said distributed application executing on one or more other compute nodes, and wherein, following a failure of said compute node, said message log is used to process one or more messages exchanged following a most recent storage of said copy of said state of said process;

wherein said process and said one or more additional processes employ asynchronous checkpointing;

the compute node being implemented utilizing at least one processing device coupled to a memory.

13. The computer program product of claim 12 , further comprising one or more of the steps of storing an epoch counter with one or more of said stored state and said intercepted messages; and executing an explicit checkpoint routine; and wherein one or more of (a) said stored state, and (b) said intercepted messages are one or more of: (i) purged using said epoch counter, and (ii) purged when said explicit checkpoint routine has completed.

14. A compute node system executing a process of a distributed application, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

providing a first virtual machine having substantially continuous data protection to store a copy of a state of said process in a performance storage tier that employs storage resources based on performance considerations; and

providing a second virtual machine to intercept messages of said process on said compute node and to store a copy of said intercepted messages in a message log, wherein the intercepted messages of said process (i) allow said copy of said state of said process to be obtained in an uncoordinated manner with respect to one or more additional processes of said distributed application and (ii) comprise messages that are exchanged by said process on said compute node with the one or more additional processes of said distributed application executing on one or more other compute nodes, and wherein, following a failure of said compute node, said message log is used to process one or more messages exchanged following a most recent storage of said copy of said state of said process;

wherein said process and said one or more additional processes employ asynchronous checkpointing;

the compute node being implemented utilizing at least one processing device coupled to a memory.

15. The compute node system of claim 14 , wherein the process communicates with said other processes in said distributed application using one or more virtual networks.

16. The compute node system of claim 14 , wherein the performance storage tier comprises a key-value storage tier and wherein the steps further comprise one or more of using a key-value interface to migrate a host image of said process on a different compute node and deduplicating said state stored across a plurality of said compute nodes.

17. The compute node system of claim 14 , further comprising the step of moving the state from the performance storage tier to a capacity storage tier that employs storage resources based on capacity considerations when a new state of said compute node is stored in said performance storage tier.

18. The compute node system of claim 14 , further comprising the steps of storing an epoch counter with one or more of said stored state and said intercepted messages and purging one or more of said stored state and said intercepted messages using epoch counter.

19. The compute node system of claim 14 , further comprising the steps of executing an explicit checkpoint routine and purging one or more of said stored state and said intercepted messages when said explicit checkpoint routine has completed.

20. The compute node system of claim 14 , further comprising one or more of the steps of using said stored state to reconstruct a host image on a different compute node, using said message log to resend messages received after said state was stored and using said message log to filter messages sent after said state was stored such that the same message is not sent twice.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 048825 FRAME 0489 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058000/0916 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Apr 8, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 048825/0489 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047118/0324 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2016
From: BENT, JOHN M.; FAIBISH, SORIN; COMBES, PATRICK S.; PAEGLE, ERIKS S.; SIMONS, JOSHUA EMERSON
To: EMC CORPORATION
Reel/Frame 038681/0052 →