IP Library Granted Patent US 11,593,496
Granted Patent B2
US 11,593,496 · App. 15/959,386 · Granted Feb 28, 2023

Decentralized data protection system for multi-cloud computing environment

Inventors: Pengfei Wu (Shanghai, CN); Kun Wang (Beijing, CN); Stephen J. Todd (Shrewsbury, MA); Assaf Natanzon (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
G06F21/6218G06F16/2255G06F16/27H04L63/20
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 11,593,496
App. No.
15/959,386
Granted
Feb 28, 2023
Kind
B2
Abstract

In a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes, a method maintains a decentralized metadata database framework, wherein each node comprises a decentralized metadata database component operatively coupled to each other decentralized metadata database component of the framework and wherein each of at least two of the decentralized metadata database components stores a set of metadata records corresponding to protected data stored across the plurality of cloud platforms. Further, the method manages one or more access requests directed to the protected data through one or more of the decentralized metadata database components of the framework.

Claims (55)

1. A method comprising:

in a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes and wherein at least a subset of nodes in the multi-cloud computing environment are part of a decentralized metadata database framework;

storing, in a given decentralized metadata database component of a given node of the subset of nodes, a set of metadata records corresponding to protected data stored as replicas across the plurality of cloud platforms, wherein at least a given metadata record in the set of metadata records stored in the given decentralized metadata database component of the given node comprises metadata that is the same as at least some metadata in a metadata record stored in at least another decentralized metadata database component of another node of the subset of nodes;

maintaining, in a given data protection engine of the given node, a node state, one or more data protection policies, and a distributed state monitor, wherein: (i) in response to receipt of a protected data access request, the distributed state monitor of the given data protection engine checks the state of protected data prior to responding to the protected data access request by checking a state of one or more replicas of the protected data against the one or more data protection policies; (ii) the one or more data protection policies control placement of the one or more replicas of the protected data across the plurality of cloud platforms; (iii) the given data protection engine publishes the node state of the given node to other nodes of the subset of nodes, the node state comprising location awareness data indicating a logical subdivision and a physical location in the multi-cloud computing environment at which the given node operates; and

responding to the protected data access request by the given data protection engine of the given node, wherein responding to the protected data access request comprises causing one or more of the subset of nodes selected based at least in part on the location awareness data and the one or more data protection policies to provide at least a portion of data requested by the protected data access request;

wherein the protected data is stored in the multi-cloud environment in accordance with a content defined chunking data deduplication algorithm and a version control algorithm;

wherein the version control algorithm, responsive to adding a new version of a given file:

initiates the content defined chunking data deduplication algorithm to perform block level data deduplication for the new version of the given file and determine one or more changed file blocks in the new version of the given file;

generates metadata for the new version of the given file, the metadata describing the one or more changed file blocks in the new version of the given file; and

adds a hash link from the metadata for the new version of the given file to metadata for a previous version of the given file;

wherein the given data protection engine publishes the node state of the given node to other nodes of the subset of nodes periodically utilizing one or more heartbeat check signals and responses in each of a set of two or more checking periods;

wherein the given data protection engine refrains from publishing the node state of the given node to other nodes of the subset of nodes utilizing the one or more heartbeat check signals and responses in a given one of the two or more checking periods when the node state is published in response to one or more protected data access request received by the given node during the given checking period; and

wherein the method is implemented via one or more processing devices each comprising a processor coupled to a memory.

2. The method of claim 1 , wherein causing one or more of the subset of nodes selected based at least in part on the location awareness data and the one or more data protection policies to provide at least a portion of data requested by the protected data access request comprises causing the given node to provide said at least a portion of the data requested by the protected data access request.

3. The method of claim 1 , wherein causing one or more of the subset of nodes selected based at least in part on the location awareness data and the one or more data protection policies to provide at least a portion of data requested by the protected data access request comprises causing at least one node other than the given node to provide said at least a portion of the data requested by the protected data access request.

4. The method of claim 1 , wherein causing one or more of the subset of nodes selected based at least in part on the location awareness data and the one or more data protection policies to provide at least a portion of data requested by the protected data access request comprises causing the given node to provide a first portion of the data requested by the protected data access request and causing at least one node other than the given node to provide at least a second portion of the data requested by the protected data access request.

5. The method of claim 1 , wherein the one or more of the subset of nodes is further selected based at least in part on a replica selection policy, the replica selection policy specifying which of the one or more replicas from which to provide said at least a portion of the data requested by the protected data access request based on a location of a source of the protected data access request and locations of the one or more replicas of the protected data.

6. The method of claim 5 , wherein the replica selection policy specifies that the one or more replicas from which to provide said at least a portion of the data requested by the protected data access request should be in a same cloud platform as the source of the protected data access request if available.

7. The method of claim 5 , wherein the replica selection policy specifies that the one or more replicas from which to provide said at least a portion of the data requested by the protected data access request should be in at least one of a same network subnet and a same rack as the source of the protected data access request if available.

8. The method of claim 1 , wherein the one or more data protection policies specify a set of data protection parameters, the set of data protection parameters comprising a data protection mode parameter specifying whether the one or more replicas of the protected data are to be stored on two or more different clouds in the multi-cloud environment, in a same cloud in the multi-cloud environment, or in a same data center of a same cloud in the multi-cloud environment.

9. The method of claim 8 , wherein the set of data protection parameters further comprises a duplication factor specifying a number of the one or more replicas of the protected data to be stored in the multi-cloud environment.

10. The method of claim 9 , wherein the set of data protection parameters further comprises an interval specifying how often each node of the subset of nodes checks the state of the one or more replicas of the protected data.

11. The method of claim 10 , wherein the one or more data protection policies specify a set of replica placement parameters, the set of replica placement policies specifying at least one of network subnets and racks where the one or more replicas are to be stored in the multi-cloud environment.

12. The method of claim 11 , wherein the distributed state monitor of the given data protection engine, in response to determining that the state of the one or more replicas of the protected data does not meet the duplication factor of the one or more data protection policies, causes creation of one or more additional replicas of the protected data at one or more locations in the multi-cloud environment that meet that set of replica placement policies.

13. The method of claim 1 , wherein the protected data access request comprises a request for a first file comprising two or more file blocks, wherein at least one of the two or more file blocks is obtained from at least one replica of a second file having at least one file block that is the same as one of the two or more file blocks of the first file.

14. An article of manufacture 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 device causes said at least one processing device to perform:

in a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes and wherein at least a subset of nodes in the multi-cloud computing environment are part of a decentralized metadata database framework;

storing, in a given decentralized metadata database component of a given node of the subset of nodes, a set of metadata records corresponding to protected data stored as replicas across the plurality of cloud platforms, wherein at least a given metadata record in the set of metadata records stored in the given decentralized metadata database component of the given node comprises metadata that is the same as at least some metadata in a metadata record stored in at least another decentralized metadata database component of another node of the subset of nodes;

maintaining, in a given data protection engine of the given node, a node state, one or more data protection policies, and a distributed state monitor, wherein: (i) in response to receipt of a protected data access request, the distributed state monitor of the given data protection engine checks the state of protected data prior to responding to the protected data access request by checking a state of one or more replicas of the protected data against the one or more data protection policies; (ii) the one or more data protection policies control placement of the one or more replicas of the protected data across the plurality of cloud platforms; (iii) the given data protection engine publishes the node state of the given node to other nodes of the subset of nodes, the node state comprising location awareness data indicating a logical subdivision and a physical location in the multi-cloud computing environment at which the given node operates; and

responding to the protected data access request by the given data protection engine of the given node, wherein responding to the protected data access request comprises causing one or more of the subset of nodes selected based at least in part on the location awareness data and the one or more data protection policies to provide at least a portion of data requested by the protected data access request;

wherein the protected data is stored in the multi-cloud environment in accordance with a content defined chunking data deduplication algorithm and a version control algorithm;

wherein the version control algorithm, responsive to adding a new version of a given file:

initiates the content defined chunking data deduplication algorithm to perform block level data deduplication for the new version of the given file and determine one or more changed file blocks in the new version of the given file;

generates metadata for the new version of the given file, the metadata describing the one or more changed file blocks in the new version of the given file; and

adds a hash link from the metadata for the new version of the given file to metadata for a previous version of the given file;

wherein the given data protection engine publishes the node state of the given node to other nodes of the subset of nodes periodically utilizing one or more heartbeat check signals and responses in each of a set of two or more checking periods; and

wherein the given data protection engine refrains from publishing the node state of the given node to other nodes of the subset of nodes utilizing the one or more heartbeat check signals and responses in a given one of the two or more checking periods when the node state is published in response to one or more protected data access request received by the given node during the given checking period.

15. The article of manufacture of claim 14 , wherein the one or more of the subset of nodes is further selected based at least in part on a replica selection policy, the replica selection policy specifying which of the one or more replicas from which to provide said at least a portion of the data requested by the protected data access request based on a location of a source of the protected data access request and locations of the one or more replicas of the protected data.

16. The article of manufacture of claim 14 , wherein the protected data access request comprises a request for a first file comprising two or more file blocks, and wherein at least one of the two or more file blocks is obtained from at least one replica of a second file having at least one file block that is the same as one of the two or more file blocks of the first file.

17. A system comprising:

one or more processing devices including a processor coupled to memory and configured to:

in a multi-cloud computing environment comprising a plurality of cloud platforms with each cloud platform comprising one or more nodes and wherein at least a subset of nodes in the multi-cloud computing environment are part of a decentralized metadata database framework;

storing, in a given decentralized metadata database component of a given node of the subset of nodes, a set of metadata records corresponding to protected data stored as replicas across the plurality of cloud platforms, wherein at least a given metadata record in the set of metadata records stored in the given decentralized metadata database component of the given node comprises metadata that is the same as at least some metadata in a metadata record stored in at least another decentralized metadata database component of another node of the subset of nodes;

maintaining, in a given data protection engine of the given node, a node state, one or more data protection policies, and a distributed state monitor, wherein: (i) in response to receipt of a protected data access request, the distributed state monitor of the given data protection engine checks the state of protected data prior to responding to the protected data access request by checking a state of one or more replicas of the protected data against the one or more data protection policies; (ii) the one or more data protection policies control placement of the one or more replicas of the protected data across the plurality of cloud platforms; (iii) the given data protection engine publishes the node state of the given node to other nodes of the subset of nodes, the node state comprising location awareness data indicating a logical subdivision and a physical location in the multi-cloud computing environment at which the given node operates; and

responding to the protected data access request by the given data protection engine of the given node, wherein responding to the protected data access request comprises causing one or more of the subset of nodes selected based at least in part on the location awareness data and the one or more data protection policies to provide at least a portion of data requested by the protected data access request;

wherein the protected data is stored in the multi-cloud environment in accordance with a content defined chunking data deduplication algorithm and a version control algorithm;

wherein the version control algorithm, responsive to adding a new version of a given file:

initiates the content defined chunking data deduplication algorithm to perform block level data deduplication for the new version of the given file and determine one or more changed file blocks in the new version of the given file;

generates metadata for the new version of the given file, the metadata describing the one or more changed file blocks in the new version of the given file; and

adds a hash link from the metadata for the new version of the given file to metadata for a previous version of the given file;

wherein the given data protection engine publishes the node state of the given node to other nodes of the subset of nodes periodically utilizing one or more heartbeat check signals and responses in each of a set of two or more checking periods; and

wherein the given data protection engine refrains from publishing the node state of the given node to other nodes of the subset of nodes utilizing the one or more heartbeat check signals and responses in a given one of the two or more checking periods when the node state is published in response to one or more protected data access request received by the given node during the given checking period.

18. The system of claim 17 , wherein the one or more of the subset of nodes is further selected based at least in part on a replica selection policy, the replica selection policy specifying which of the one or more replicas from which to provide said at least a portion of the data requested by the protected data access request based on a location of a source of the protected data access request and locations of the one or more replicas of the protected data.

19. The system of claim 17 , wherein the protected data access request comprises a request for a first file comprising two or more file blocks, and wherein at least one of the two or more file blocks is obtained from at least one replica of a second file having at least one file block that is the same as one of the two or more file blocks of the first file.

20. The system of claim 17 , wherein at least one of the one or more changed file blocks in the new version of the given file is stored in a first subset of the plurality of cloud platforms, wherein at least one unchanged file block in the new version of the given file is stored in a second subset of the plurality of cloud platforms, and wherein the second subset of the plurality of cloud platforms is different than the first subset of the plurality of cloud platforms.

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 (046366/0014) 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
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 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 058298/0093 →
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 Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2018
From: WU, PENGFEI; WANG, KUN; TODD, STEPHEN J.; NATANZON, ASSAF
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045608/0126 →
Continuity (1)
Related Publication 20190325155A1 · Oct 24, 2019