IP Library Granted Patent US 12,007,976
Granted Patent B2
US 12,007,976 · App. 17/243,252 · Granted Jun 11, 2024

System and method for consistent metadata access based on local locks semantics in a multi-node cluster

Inventors: Vladimir Shveidel (Pardes-Hana, IL); Bar David (Rishon Lezion, IL); David Bernard (Westford, MA); Jason E. Raff (Bedford, NH); Shari A. Vietry (Merrimack, NH)
Assignee: EMC IP Holding Company, LLC
G06F16/2343G06F16/2379G06F16/172
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 12,007,976
App. No.
17/243,252
Granted
Jun 11, 2024
Kind
B2
Abstract

A method, computer program product, and computer system for acquiring, by a first node, local locks of the first node associated with a metadata log transaction, wherein the first node acquires the local locks of the first node prior to sending a commit message to a second node. The second node may acquire local locks of the second node associated with the metadata log transaction, wherein the second node acquires the local locks of the second node based upon, at least in part, receiving the commit message from the first node.

Claims (56)

1. A computer-implemented method, executed on a computing device, comprising:

acquiring, by a first node, local locks of the first node associated with a metadata log transaction, wherein the first node acquires the local locks of the first node prior to sending a commit message to a second node;

acquiring, by the second node, local locks of the second node associated with the metadata log transaction, wherein the second node acquires the local locks of the second node based upon, at least in part, receiving the commit message from the first node;

acquiring a shared lock for all metadata pages involved with the metadata log transaction at the first node independently of whether all the metadata pages involved with the metadata log transaction at the first node is a cache hit or cache miss to avoid concurrent loading a same metadata page; and

executing an atomic operation on a loading page associated with all the metadata pages involved with the metadata log transaction at the first node,

wherein during a first time interval between when a metadata commit began on the first node and when the commit message is received by the second node, the first node has no access to locked data, and the second node sees old data,

wherein during a second time interval when the second node is processing the metadata commit based upon, at least in part, the received commit message, both the first node and the second node have no access to the locked data, and

wherein during a third time interval between when the metadata commit being done on the second node and when the metadata commit is completed on the first node, the first node has no access to the locked data, and the second node sees new data.

2. The computer-implemented method of claim 1 wherein the local locks of the first node associated with the metadata log transaction include all the metadata pages involved with the metadata log transaction at the first node.

3. The computer-implemented method of claim 2 wherein the local locks of the second node associated with the metadata log transaction include all the metadata pages involved with the metadata log transaction at the second node.

4. The computer-implemented method of claim 1 wherein the commit message includes metadata log deltas.

5. The computer-implemented method of claim 4 further comprising:

persisting, by the second node, the metadata log deltas in a raw data log;

updating, by the second node, a volatile state of the second node; and

releasing the local locks of the second node associated with the metadata log transaction at the second node.

6. The computer-implemented method of claim 5 further comprising:

receiving, by the first node, a reply from the second node based upon, at least in part, releasing the local locks of the second node associated with the metadata log transaction;

updating, by the first node, a volatile state of the first node; and

releasing the local locks of the first node associated with the metadata log transaction at the first node.

7. A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed across one or more processors, causes at least a portion of the one or more processors to perform operations comprising:

acquiring, by a first node, local locks of the first node associated with a metadata log transaction, wherein the first node acquires the local locks of the first node prior to sending a commit message to a second node;

acquiring, by the second node, local locks of the second node associated with the metadata log transaction, wherein the second node acquires the local locks of the second node based upon, at least in part, receiving the commit message from the first node;

acquiring a shared lock for all metadata pages involved with the metadata log transaction at the first node independently of whether all the metadata pages involved with the metadata log transaction at the first node is a cache hit or cache miss to avoid concurrent loading a same metadata page; and

executing an atomic operation on a loading page associated with all the metadata pages involved with the metadata log transaction at the first node,

wherein during a first time interval between when a metadata commit began on the first node and when the commit message is received by the second node, the first node has no access to locked data, and the second node sees old data,

wherein during a second time interval when the second node is processing the metadata commit based upon, at least in part, the received commit message, both the first node and the second node have no access to the locked data, and

wherein during a third time interval between when the metadata commit being done on the second node and when the metadata commit is completed on the first node, the first node has no access to the locked data, and the second node sees new data.

8. The computer program product of claim 7 wherein the local locks of the first node associated with the metadata log transaction include all the metadata pages involved with the metadata log transaction at the first node.

9. The computer program product of claim 8 wherein the local locks of the second node associated with the metadata log transaction include all the metadata pages involved with the metadata log transaction at the second node.

10. The computer program product of claim 7 wherein the commit message includes metadata log deltas.

11. The computer program product of claim 10 wherein the operations further comprise:

persisting, by the second node, the metadata log deltas in a raw data log;

updating, by the second node, a volatile state of the second node; and

releasing the local locks of the second node associated with the metadata log transaction at the second node.

12. The computer program product of claim 11 wherein the operations further comprise:

receiving, by the first node, a reply from the second node based upon, at least in part, releasing the local locks of the second node associated with the metadata log transaction;

updating, by the first node, a volatile state of the first node; and

releasing the local locks of the first node associated with the metadata log transaction at the first node.

13. A computing system including one or more processors and one or more memories configured to perform operations comprising:

acquiring, by a first node, local locks of the first node associated with a metadata log transaction, wherein the first node acquires the local locks of the first node prior to sending a commit message to a second node;

acquiring, by the second node, local locks of the second node associated with the metadata log transaction, wherein the second node acquires the local locks of the second node based upon, at least in part, receiving the commit message from the first node;

acquiring a shared lock for all metadata pages involved with the metadata log transaction at the first node independently of whether all the metadata pages involved with the metadata log transaction at the first node is a cache hit or cache miss to avoid concurrent loading a same metadata page; and

executing an atomic operation on a loading page associated with all the metadata pages involved with the metadata log transaction at the first node,

wherein during a first time interval between when a metadata commit began on the first node and when the commit message is received by the second node, the first node has no access to locked data, and the second node sees old data,

wherein during a second time interval when the second node is processing the metadata commit based upon, at least in part, the received commit message, both the first node and the second node have no access to the locked data, and

wherein during a third time interval between when the metadata commit being done on the second node and when the metadata commit is completed on the first node, the first node has no access to the locked data, and the second node sees new data.

14. The computing system of claim 13 wherein the local locks of the first node associated with the metadata log transaction include all the metadata pages involved with the metadata log transaction at the first node, and wherein the local locks of the second node associated with the metadata log transaction include all the metadata pages involved with the metadata log transaction at the second node.

15. The computing system of claim 13 wherein the commit message includes metadata log deltas.

16. The computing system of claim 15 wherein the operations further comprise:

persisting, by the second node, the metadata log deltas in a raw data log;

updating, by the second node, a volatile state of the second node; and

releasing the local locks of the second node associated with the metadata log transaction at the second node.

17. The computing system of claim 16 wherein the operations further comprise:

receiving, by the first node, a reply from the second node based upon, at least in part, releasing the local locks of the second node associated with the metadata log transaction;

updating, by the first node, a volatile state of the first node; and

releasing the local locks of the first node associated with the metadata log transaction at the first node.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) 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 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) 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 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) 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 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
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 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
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 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
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 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2021
From: SHVEIDEL, VLADIMIR; DAVID, BAR; BERNARD, DAVID; RAFF, JASON E.; VIETRY, SHARI A.
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 056074/0271 →