IP Library Granted Patent US 11,615,028
Granted Patent B2
US 11,615,028 · App. 17/237,359 · Granted Mar 28, 2023

System and method for lockless destaging of metadata pages

Inventors: Jenny Derzhavetz (Raanana, IL); Vladimir Shveidel (Pardes-Hana, IL); Dror Zalstein (Givatayim, IL); Bar David (Rishon Lezion, IL)
Assignee: EMC IP Holding Company, LLC
G06F12/0882G06F9/30047G06F12/0238G06F12/123
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,615,028
App. No.
17/237,359
Granted
Mar 28, 2023
Kind
B2
Abstract

A method, computer program product, and computing system for receiving a flush request for a metadata page stored in a storage array of a multi-node storage system. The flush request may be queued on a flush request lock queue on at least one node of the multi-node storage system. One or more flush requests may be processed, via multiple nodes of the multi-node storage system, on the metadata page based upon, at least in part, the flush request lock queue.

Claims (49)

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

receiving a flush request for a metadata page stored in a storage array of a multi-node storage system, wherein the flush request is a request to commit the metadata page from a cache memory system to the storage array, thus defining a commit request;

queueing the flush request on a flush request lock queue on at least one node of the multi-node storage system; and

processing, via multiple nodes of the multi-node storage system, one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue, wherein processing, via the multiple nodes of the multi-node storage system, the one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue includes:

determining, at each node of the multi-node storage system, whether a destage request for the metadata page is being processed on any node of the multi-node storage system based upon, at least in part, the flush request lock queue;

in response to determining that the destage request for the metadata page is being processed on at least one node, waiting until the destage request is cleared from the flush request lock queue; and

in response to determining that the destage request for the metadata page is not being processed on any node, processing, via one node of the multi-node storage system, the commit request.

2. The computer-implemented method of claim 1 , wherein the flush request is a request to destage the metadata page to the storage array, thus defining a destage request.

3. The computer implemented method of claim 2 , wherein processing, via the multiple nodes of the multi-node storage system, the one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue includes:

reading the metadata page from the storage array;

determining a current tablet identifier for the metadata page; and

processing the destage request based upon, at least in part, the current tablet identifier for the metadata page.

4. The computer implemented method of claim 3 , wherein processing the destage request based upon, at least in part, the current tablet identifier for the metadata page includes:

skipping the destage request when the current tablet identifier for the metadata page indicates that the metadata page read from the storage array is newer than the metadata data page to destage; and

processing the destage request when the current tablet identifier for the metadata page indicates that the metadata page read from the storage array is older than the metadata data page to destage.

5. The computer implemented method of claim 1 , further comprising:

determining that at least one node of the multi-node storage system has failed;

pausing flush requests for each metadata page referenced within the flush request lock queue; and

flushing each metadata page referenced within the flush request lock queue from a non-volatile storage area to the storage array.

6. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

receiving a flush request for a metadata page stored in a storage array of a multi-node storage system, wherein the flush request is a request to destage the metadata page to the storage array, thus defining a destage request;

queueing the flush request on a flush request lock queue on at least one node of the multi-node storage system; and

processing, via multiple nodes of the multi-node storage system, one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue, wherein processing, via the multiple nodes of the multi-node storage system, the one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue includes:

reading the metadata page from the storage array;

determining a current tablet identifier for the metadata page; and

processing the destage request based upon, at least in part, the current tablet identifier for the metadata page.

7. The computer program product of claim 6 , wherein the flush request is a request to commit the metadata page from a cache memory system to the storage array, thus defining a commit request.

8. The computer program product of claim 7 , wherein processing, via the multiple nodes of the multi-node storage system, the one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue includes:

determining, at each node of the multi-node storage system, whether a destage request for the metadata page is being processed on the node based upon, at least in part, the flush request lock queue;

in response to determining that the destage request for the metadata page is being processed on at least one node, waiting until the destage request is cleared from the flush request lock queue; and

in response to determining that the destage request for the metadata page is not being processed on any node, processing, via one node of the multi-node storage system, the commit request.

9. The computer program product of claim 6 , wherein processing the destage request based upon, at least in part, the current tablet identifier for the metadata page includes:

skipping the destage request when the current tablet identifier for the metadata page indicates that the metadata page read from the storage array is newer than the metadata data page to destage; and

processing the destage request when the current tablet identifier for the metadata page indicates that the metadata page read from the storage array is older than the metadata data page to destage.

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

determining that at least one node of the multi-node storage system has failed;

pausing flush requests for each metadata page referenced within the flush request lock queue; and

flushing each metadata page referenced within the flush request lock queue from a non-volatile storage area to the storage array.

11. A computing system comprising:

a memory; and

a processor configured to receive a flush request for a metadata page stored in a storage array of a multi-node storage system, wherein the flush request is a request to destage the metadata page to the storage array, thus defining a destage request, wherein the processor is further configured to queue the flush request on a flush request lock queue on at least one node of the multi-node storage system, and wherein the processor is further configured to process, via multiple nodes of the multi-node storage system, one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue, wherein processing, via the multiple nodes of the multi-node storage system, the one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue includes: reading the metadata page from the storage array, determining a current tablet identifier for the metadata page, and processing the destage request based upon, at least in part, the current tablet identifier for the metadata page.

12. The computing system of claim 11 , wherein the flush request is a request to commit the metadata page from a cache memory system to the storage array, thus defining a commit request.

13. The computing system of claim 12 , wherein processing, via the multiple nodes of the multi-node storage system, the one or more flush requests on the metadata page based upon, at least in part, the flush request lock queue includes:

determining, at each node of the multi-node storage system, whether a destage request for the metadata page is being processed on the node based upon, at least in part, the flush request lock queue;

in response to determining that the destage request for the metadata page is being processed on at least one node, waiting until the destage request is cleared from the flush request lock queue; and

in response to determining that the destage request for the metadata page is not being processed on any node, processing, via one node of the multi-node storage system, the commit request.

14. The computing system of claim 11 , wherein processing the destage request based upon, at least in part, the current tablet identifier for the metadata page includes:

skipping the destage request when the current tablet identifier for the metadata page indicates that the metadata page read from the storage array is newer than the metadata data page to destage; and

processing the destage request when the current tablet identifier for the metadata page indicates that the metadata page read from the storage array is older than the metadata data page to destage.

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 22, 2021
From: DERZHAVETZ, JENNY; SHVEIDEL, VLADIMIR; ZALSTEIN, DROR; DAVID, BAR
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 056003/0980 →