IP Library Granted Patent US 10,860,433
Granted Patent B1
US 10,860,433 · App. 15/791,799 · Granted Dec 8, 2020

Directional consistency in capture and recovery of cloud-native applications

Inventors: Amit Lieberman (Raanana, IL); Assaf Natanzon (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
G06F11/1464G06F16/2365G06F2201/84
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,860,433
App. No.
15/791,799
Granted
Dec 8, 2020
Kind
B1
Abstract

An apparatus in one embodiment comprises at least one processing platform including a plurality of processing devices. The processing platform is configured to execute a cloud-native application utilizing a plurality of micro-services each associated with a different set of one or more underlying databases, to capture state of the cloud-native application for a particular point in time, and to perform operational recovery of the cloud-native application for the particular point in time utilizing the captured state. Capturing state of the cloud-native application for the particular point in time comprises capturing the state in accordance with a directional dependency graph that characterizes relationships between the micro-services and the associated databases utilized in executing the cloud-native application in order to ensure directional consistency between the databases in the captured state. Performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state comprises performing the operational recovery in accordance with the directional dependency graph.

Claims (77)

1. An apparatus comprising:

at least one processing platform comprising a plurality of processing devices;

said at least one processing platform being configured:

to execute a cloud-native application utilizing a plurality of micro-services each associated with a different set of one or more underlying databases;

to capture state of the cloud-native application for a particular point in time; and

to perform operational recovery of the cloud-native application for the particular point in time utilizing the captured state;

wherein capturing state of the cloud-native application for the particular point in time comprises:

capturing the state in accordance with a directional dependency graph that characterizes relationships between the micro-services and the associated databases utilized in executing the cloud-native application in order to ensure directional consistency between the databases in the captured state, the directional dependency graph comprising a root node and a plurality of additional nodes and wherein each of at least a subset of the nodes corresponds to a different one of the databases; and

creating backup copies of the databases via respective copy application programming interfaces in accordance with a copy sequence defined by interconnections between nodes of the directional dependency graph;

wherein capturing state of the cloud-native application for the particular point in time further comprises:

traversing multiple nodes of the directional dependency graph starting from the root node; and

in conjunction with the traversing:

creating a backup copy of the database associated with a current one of the traversed nodes;

recursively repeating said creating of a backup copy for other databases associated with respective other ones of the traversed nodes; and

storing metadata comprising a pointer for each of the backup copies in a copy metadata store; and

wherein performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state comprises performing the operational recovery in accordance with the directional dependency graph by:

traversing multiple nodes of the directional dependency graph starting from the root node; and

in conjunction with the traversing:

reading stored metadata for a backup copy of a database associated with a current one of the traversed nodes from a copy metadata store to obtain a pointer to that backup copy;

restoring the backup copy utilizing the obtained pointer; and

recursively repeating said reading and restoring for other databases associated with respective other ones of the traversed nodes.

2. The apparatus of claim 1 wherein the cloud-native application is executed responsive to a request received in an application programming interface gateway of the processing platform from a user device over a network.

3. The apparatus of claim 1 wherein a first one of the plurality of micro-services utilized in executing the cloud-native application is dependent on a first database and a second one of the plurality of micro-services utilized in executing the cloud-native application is dependent on the first database and at least a second database separate from the first database.

4. The apparatus of claim 3 wherein the second micro-service stores metadata in the first database and data objects in the second database.

5. The apparatus of claim 4 wherein the directional dependency graph indicates that state of the second database is directionally dependent upon state of the first database and therefore state is captured for the first database before state is captured for the second database in order to ensure directional consistency between the first and second databases.

6. The apparatus of claim 1 wherein the directional dependency graph is at least partially defined by a user of the cloud-native application.

7. The apparatus of claim 1 wherein performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state comprises recovering the databases from backup copies via respective restore application programming interfaces in accordance with a restore sequence defined by interconnections between nodes of the directional dependency graph.

8. The apparatus of claim 1 wherein processing platform comprises a cloud-native application backup orchestrator configured to capture state of the cloud-native application and to perform operational recovery of the cloud-native application.

9. The apparatus of claim 1 wherein each of at least a subset of the micro-services is associated with a different one of the databases.

10. The apparatus of claim 1 wherein each of at least a subset of the micro-services is associated with multiple ones of the databases.

11. A method comprising:

executing a cloud-native application utilizing a plurality of micro-services each associated with a different set of one or more underlying databases;

capturing state of the cloud-native application for a particular point in time; and

performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state;

wherein capturing state of the cloud-native application for the particular point in time comprises:

capturing the state in accordance with a directional dependency graph that characterizes relationships between the micro-services and the associated databases utilized in executing the cloud-native application in order to ensure directional consistency between the databases in the captured state, the directional dependency graph comprising a root node and a plurality of additional nodes and wherein each of at least a subset of the nodes corresponds to a different one of the databases; and

creating backup copies of the databases via respective copy application programming interfaces in accordance with a copy sequence defined by interconnections between nodes of the directional dependency graph;

wherein capturing state of the cloud-native application for the particular point in time further comprises:

traversing multiple nodes of the directional dependency graph starting from the root node; and

in conjunction with the traversing:

creating a backup copy of the database associated with a current one of the traversed nodes;

recursively repeating said creating of a backup copy for other databases associated with respective other ones of the traversed nodes; and

storing metadata comprising a pointer for each of the backup copies in a copy metadata store;

wherein performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state comprises performing the operational recovery in accordance with the directional dependency graph by:

traversing multiple nodes of the directional dependency graph starting from the root node; and

in conjunction with the traversing:

reading stored metadata for a backup copy of a database associated with a current one of the traversed nodes from a copy metadata store to obtain a pointer to that backup copy;

restoring the backup copy utilizing the obtained pointer; and

recursively repeating said reading and restoring for other databases associated with respective other ones of the traversed nodes; and

wherein the method is performed by at least one processing platform comprising a plurality of processing devices.

12. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing platform causes said at least one processing platform:

to execute a cloud-native application utilizing a plurality of micro-services each associated with a different set of one or more underlying databases;

to capture state of the cloud-native application for a particular point in time; and

to perform operational recovery of the cloud-native application for the particular point in time utilizing the captured state;

wherein capturing state of the cloud-native application for the particular point in time comprises:

capturing the state in accordance with a directional dependency graph that characterizes relationships between the micro-services and the associated databases utilized in executing the cloud-native application in order to ensure directional consistency between the databases in the captured state, the directional dependency graph comprising a root node and a plurality of additional nodes and wherein each of at least a subset of the nodes corresponds to a different one of the databases; and

creating backup copies of the databases via respective copy application programming interfaces in accordance with a copy sequence defined by interconnections between nodes of the directional dependency graph;

wherein capturing state of the cloud-native application for the particular point in time further comprises:

traversing multiple nodes of the directional dependency graph starting from the root node; and

in conjunction with the traversing:

creating a backup copy of the database associated with a current one of the traversed nodes;

recursively repeating said creating of a backup copy for other databases associated with respective other ones of the traversed nodes; and

storing metadata comprising a pointer for each of the backup copies in a copy metadata store; and

wherein performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state comprises performing the operational recovery in accordance with the directional dependency graph by:

traversing multiple nodes of the directional dependency graph starting from the root node; and

in conjunction with the traversing:

reading stored metadata for a backup copy of a database associated with a current one of the traversed nodes from a copy metadata store to obtain a pointer to that backup copy;

restoring the backup copy utilizing the obtained pointer; and

recursively repeating said reading and restoring for other databases associated with respective other ones of the traversed nodes.

13. The computer program product of claim 12 wherein a first one of the plurality of micro-services utilized in executing the cloud-native application is dependent on a first database and a second one of the plurality of micro-services utilized in executing the cloud-native application is dependent on the first database and at least a second database separate from the first database.

14. The computer program product of claim 13 wherein the second micro-service stores metadata in the first database and data objects in the second database.

15. The computer program product of claim 14 wherein the directional dependency graph indicates that state of the second database is directionally dependent upon state of the first database and therefore state is captured for the first database before state is captured for the second database in order to ensure directional consistency between the first and second databases.

16. The computer program product of claim 12 wherein performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state comprises recovering the databases from backup copies via respective restore application programming interfaces in accordance with a restore sequence defined by interconnections between nodes of the directional dependency graph.

17. The method of claim 11 wherein a first one of the plurality of micro-services utilized in executing the cloud-native application is dependent on a first database and a second one of the plurality of micro-services utilized in executing the cloud-native application is dependent on the first database and at least a second database separate from the first database.

18. The method of claim 17 wherein the second micro-service stores metadata in the first database and data objects in the second database.

19. The method of claim 18 wherein the directional dependency graph indicates that state of the second database is directionally dependent upon state of the first database and therefore state is captured for the first database before state is captured for the second database in order to ensure directional consistency between the first and second databases.

20. The method of claim 11 wherein performing operational recovery of the cloud-native application for the particular point in time utilizing the captured state comprises recovering the databases from backup copies via respective restore application programming interfaces in accordance with a restore sequence defined by interconnections between nodes of the directional dependency graph.

Assignments (8)
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 IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
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 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 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2017
From: LIEBERMAN, AMIT; NATANZON, ASSAF
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043936/0747 →
Cited By (2)
US 12,556,464 US 12,608,282