IP Library Granted Patent US 11,947,499
Granted Patent B2
US 11,947,499 · App. 16/944,250 · Granted Apr 2, 2024

Peer-to-peer global namespace for storage system metadata federations

Inventor: Qi Bao (Acton, MA)
Assignee: EMC IP Holding Company LLC
G06F16/178G06F16/164
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,947,499
App. No.
16/944,250
Granted
Apr 2, 2024
Kind
B2
Abstract

A peer-to-peer global namespace for storage system metadata federations. Specifically, the disclosure proposes a peer-to-peer metadata federation architecture, where enterprise storage metadata for any and all geo-distributed sites may be distributed across and continually reconciled by a network of nodes, instead of being maintained by a single node assigned to a given geographic location. In implementing a federation, the network of nodes may lack exploitable, centralized points of vulnerability, and therefore, may exhibit no central point of failure. Furthermore, the disclosure proposes the implementation of a global metadata namespace for the enterprise storage metadata spanning the entirety of an enterprise (across all geographic locations). The global metadata namespace may be maintained on each node through event-based synchronization.

Claims (71)

1. A method for synchronizing metadata across a plurality of federation member nodes, comprising:

detecting, by a first federation member node of the plurality of federation member nodes, a discrepancy between a slave metadata collection maintained on the first federation member node and a master metadata collection maintained on a second federation member node of the plurality of federation member nodes;

computing, by the first federation member node and in response to detecting the discrepancy, a local metadata namespace root delta comprising a hash difference between first and second aggregated cryptographic hashes;

mapping a set of commits applied to the master metadata collection to the local metadata namespace root delta based on the first and second aggregated cryptographic hashes, wherein the set of commits are searchable using the local metadata namespace root delta based on the mapping:

transmitting, by the first federation member node and to the second federation member node, a namespace update request comprising the local metadata namespace root delta and the set of commits;

receiving, by the first federation member node, from the second federation member node, and in response to the namespace update request, the set of commits applied to the master metadata collection,

wherein the set of commits represents the discrepancy between the slave and master metadata collections; and

applying, by the first federation member node and to correct the discrepancy, the set of commits to the slave metadata collection, and wherein the set of commits remains searchable using the local metadata namespace root delta after applying.

2. The method of claim 1 , wherein the first aggregated cryptographic hash is reflective of a first local metadata namespace root of a first local metadata namespace maintained on the first federation member node and the second aggregated cryptographic hash is reflective of a second local metadata namespace root of a second local metadata namespace maintained on the second federation member node.

3. The method of claim 2 , wherein the first local metadata namespace represents a first hash-based data structure used to verify the slave metadata collection, wherein the second local metadata namespace represents a second hash-based data structure used to verify the master metadata collection.

4. The method of claim 1 , further comprising:

prior to detecting the discrepancy by the first federation member node:

receiving, by the first federation member node and from the second federation member node, a heartbeat message comprising a first metadata namespace summary for a first global metadata namespace maintained on the second federation member node;

obtaining, by the first federation member node, a second metadata namespace summary for a second global metadata namespace maintained on the first federation member node; and

comparing, by the first federation member node, the first and second metadata namespace summaries,

wherein a mismatch between, based on comparing, the first and second metadata namespace summaries leads to detecting the discrepancy.

5. The method of claim 4 , wherein the first global metadata namespace represents a first hash-based data structure used to verify all metadata currently maintained on the second federation member node, wherein the second global metadata namespace represents a second hash-based data structure used to verify all metadata currently maintained on the first federation member node.

6. The method of claim 5 , wherein the first metadata namespace summary comprises a first global metadata namespace root of the first global metadata namespace and a plurality of first local metadata namespace roots of a first plurality of local metadata namespaces for a first plurality of metadata collections maintained on the second federation member node.

7. The method of claim 6 , wherein the second metadata namespace summary comprises a second global metadata namespace root of the second global metadata namespace and a plurality of second local metadata namespace roots of a second plurality of local metadata namespaces for a second plurality of metadata collections maintained on the first federation member node.

8. The method of claim 4 , further comprising:

prior to receiving the heartbeat message by the first federation member node:

detecting, by the second federation member node, the set of commits applied to the master metadata collection maintained thereon; and

multicasting, by the second federation member node and to a remainder of the plurality of federation member nodes comprising the first federation member node, a namespace update message comprising the set of commits,

wherein the first federation member node fails to receive the namespace update message.

9. The method of claim 8 , further comprising:

prior to multicasting the namespace update message by the second federation member node:

obtaining, by the second federation member node, a current local metadata namespace root of a current local metadata namespace maintained on the second federation member node for the master metadata collection;

updating, by the second federation member node and to include the set of commits, the current metadata namespace to obtain a new current metadata namespace;

obtaining, by the second federation member node, a new current local metadata namespace root of the new current metadata namespace; and

computing, by the second federation member node, the local metadata namespace root delta using the current and new current local metadata namespace roots.

10. A non-transitory computer readable medium (CRM) comprising computer readable program code, which when executed by a first computer processor of a first federation member node, enables the first computer processor to:

detect a discrepancy between a slave metadata collection maintained on the first federation member node and a master metadata collection maintained on a second federation member node;

compute, in response to detecting the discrepancy, a local metadata namespace root delta comprising a hash difference between first and second aggregated cryptographic hashes;

map a set of commits applied to the master metadata collection to the local metadata namespace root delta based on the first and second aggregated cryptographic hashes, wherein the set of commits are searchable using the local metadata namespace root delta based on the mapping;

transmit, to the second federation member node, a namespace update request comprising the local metadata namespace root delta and the set of commits;

receive, from the second federation member node and in response to the namespace update request, the set of commits applied to the master metadata collection,

wherein the set of commits represents the discrepancy between the slave and master metadata collections; and

apply, to correct the discrepancy, the set of commits to the slave metadata collection, and wherein the set of commits remains searchable using the local metadata namespace root delta after applying.

11. The non-transitory CRM of claim 10 , wherein the first aggregated cryptographic hash is reflective of a first local metadata namespace root of a first local metadata namespace maintained on the first federation member node and the second aggregated cryptographic hash is reflective of a second local metadata namespace root of a second local metadata namespace maintained on the second federation member node.

12. The non-transitory CRM of claim 11 , wherein the first local metadata namespace represents a first hash-based data structure used to verify the slave metadata collection, wherein the second local metadata namespace represents a second hash-based data structure used to verify the master metadata collection.

13. The non-transitory CRM of claim 10 , comprising computer readable program code, which when executed by the first computer processor of the first federation member node, further enables the first computer processor to:

prior to detecting the discrepancy:

receive, from the second federation member node, a heartbeat message comprising a first metadata namespace summary for a first global metadata namespace maintained on the second federation member node;

obtain a second metadata namespace summary for a second global metadata namespace maintained on the first federation member node; and

compare the first and second metadata namespace summaries,

wherein a mismatch between, based on comparing, the first and second metadata namespace summaries leads to detecting the discrepancy.

14. The non-transitory CRM of claim 13 , wherein the first global metadata namespace represents a first hash-based data structure used to verify all metadata currently maintained on the second federation member node, wherein the second global metadata namespace represents a second hash-based data structure used to verify all metadata currently maintained on the first federation member node.

15. The non-transitory CRM of claim 14 , wherein the first metadata namespace summary comprises a first global metadata namespace root of the first global metadata namespace and a plurality of first local metadata namespace roots of a first plurality of local metadata namespaces for a first plurality of metadata collections maintained on the second federation member node.

16. The non-transitory CRM of claim 15 , wherein the second metadata namespace summary comprises a second global metadata namespace root of the second global metadata namespace and a plurality of second local metadata namespace roots of a second plurality of local metadata namespaces for a second plurality of metadata collections maintained on the first federation member node.

17. The non-transitory CRM of claim 13 , comprising computer readable program code, which when executed by a second computer processor of the second federation member node, enables the second computer processor to:

prior to the first computer processor receiving the heartbeat message:

detect the set of commits applied to the master metadata collection maintained on the second federation member node; and

multicast to a remainder of the plurality of federation member nodes comprising the first federation member node, a namespace update message comprising the set of commits,

wherein the first computer processor of the first federation member node fails to receive the namespace update message.

18. The non-transitory CRM of claim 17 , comprising computer readable program code, which when executed by the second computer processor of the second federation member node, further enables the second computer processor to:

prior to multicasting the namespace update message:

obtain a current local metadata namespace root of a current local metadata namespace maintained on the second federation member node for the master metadata collection;

update, to include the set of commits, the current metadata namespace to obtain a new current metadata namespace;

obtain a new current local metadata namespace root of the new current metadata namespace; and

compute the local metadata namespace root delta using the current and new current local metadata namespace roots.

19. A system, comprising:

a plurality of federation member nodes comprising a first federation member node and a second federation member node,

wherein the first federation member node comprises a computer processor configured to:

detect a discrepancy between a slave metadata collection maintained on the first federation member node and a master metadata collection maintained on the second federation member node;

compute, in response to detecting the discrepancy, a local metadata namespace root delta comprising a hash difference between first and second aggregated cryptographic hashes;

map a set of commits applied to the master metadata collection to the local metadata namespace root delta based on the first and second aggregated cryptographic hashes, wherein the set of commits are searchable using the local metadata namespace root delta based on the mapping;

transmit, to the second federation member node, a namespace update request comprising the local metadata namespace root delta and the set of commits;

receive, from the second federation member node and in response to the namespace update request, the set of commits applied to the master metadata collection,

wherein the set of commits represents the discrepancy between the slave and master metadata collections; and

apply, to correct the discrepancy, the set of commits to the slave metadata collection, and wherein the set of commits remains searchable using the local metadata namespace root delta after applying.

20. The system of claim 19 , wherein the plurality of federation member nodes forms a geo-distributed, decentralized peer-to-peer network.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2020
From: BAO, QI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053941/0842 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2020
From: BAO, QI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054150/0476 →
Continuity (1)
Related Publication 20220035769A1 · Feb 3, 2022