IP Library Granted Patent US 11,467,963
Granted Patent B2
US 11,467,963 · App. 17/068,281 · Granted Oct 11, 2022

System and method for reducing reference count update contention in metadata blocks

Inventors: Bar David (Rishon Lezion, IL); Bar Harel (Tel Aviv, IL); Dror Zalstein (Givatayim, IL)
Assignee: EMC IP HOLDING COMPANY, LLC
G06F12/0815G06F3/0608G06F3/0641G06F2212/154G06F2212/621
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,467,963
App. No.
17/068,281
Granted
Oct 11, 2022
Kind
B2
Abstract

A method, computer program product, and computing system for receiving, at a node of a multi-node storage system, one or more updates to a reference count associated with a metadata block. One or more reference count deltas associated with the metadata block may be stored in a cache memory system of the node. An existing copy of the metadata block in a cache memory system of each other node of the multi-node storage system may be retained.

Claims (54)

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

receiving, at a node of a multi-node storage system, one or more updates to a reference count associated with a metadata block;

storing one or more reference count deltas associated with the metadata block in a cache memory system of the node;

retaining, in a cache memory system of each other node of the multi-node storage system, an existing copy of the metadata blocks;

writing the one or more reference count deltas associated with the metadata block to one or more delta container pages of the storage array;

determining that writing each of the one or more reference count deltas to the metadata block will exceed a maximum reference count associated with the metadata block:

writing a first portion of the one or more reference count deltas to the metadata block in the storage array based upon, at least in part, the maximum reference count associated with the metadata block; and

writing the remaining one or more reference count deltas back to the one or more delta container pages of the storage array.

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

receiving, from a node of the multi-node storage system, a request to perform an operation on the metadata block that requires a consistent reference count associated with the metadata block, thus defining a requesting node; and

providing an exclusive lock on the metadata block to the requesting node.

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

receiving, from at least one node, a request to perform an operation on the metadata block that does not require a consistent reference count associated with the metadata block; and

providing a shared lock on the metadata block to the at least one node of the multi-node storage system.

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

updating, via at least one node, the reference count associated with the metadata block based upon, at least in part, the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node.

5. The computer-implemented method of claim 4 , wherein updating, via the at least one node, the reference count associated with the metadata block based upon, at least in part, the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node includes:

caching a copy of the metadata block from a storage array to the cache memory system of the at least one node; and

applying the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node to the cached copy of the metadata block.

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

writing at least a subset of the one or more reference count deltas to the cached copy of the metadata block based upon, at least in part, a maximum reference count associated with the cached copy of the metadata block.

7. 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, at a node of a multi-node storage system, one or more updates to a reference count associated with a metadata block;

storing one or more reference count deltas associated with the metadata block in a cache memory system of the node;

retaining, in a cache memory system of each other node of the multi-node storage system, an existing copy of the metadata blocks;

updating, via at least one node, the reference count associated with the metadata block based upon, at least in part, the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node, wherein updating, via the at least one node, the reference count associated with the metadata block based upon, at least in part, the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node includes:

caching a copy of the metadata block from a storage array to the cache memory system of the at least one node, and

applying the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node to the cached copy of the metadata block; and

writing at least a subset of the one or more reference count deltas to the cached copy of the metadata block based upon, at least in part, a maximum reference count associated with the cached copy of the metadata block.

8. The computer program product of claim 7 , wherein the operations further comprise:

receiving, from a node of the multi-node storage system, a request to perform an operation on the metadata block that requires a consistent reference count associated with the metadata block, thus defining a requesting node; and

providing an exclusive lock on the metadata block to the requesting node.

9. The computer program product of claim 7 , wherein the operations further comprise:

receiving, from at least one node, a request to perform an operation on the metadata block that does not require a consistent reference count associated with the metadata block; and

providing a shared lock on the metadata block to the at least one node of the multi-node storage system.

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

writing the one or more reference count deltas associated with the metadata block to one or more delta container pages of the storage array;

determining that writing each of the one or more reference count deltas to the metadata block will exceed a maximum reference count associated with the metadata block;

writing a first portion of the one or more reference count deltas to the metadata block in the storage array based upon, at least in part, the maximum reference count associated with the metadata block; and

writing the remaining one or more reference count deltas back to the one or more delta container pages of the storage array.

11. A computing system comprising:

a memory; and

a processor configured to receive, at a node of a multi-node storage system, one or more updates to a reference count associated with a metadata block, wherein the processor is further configured to store one or more reference count deltas associated with the metadata block in a cache memory system of the node, wherein the processor is further configured to retain, in a cache memory system of each other node of the multi-node storage system, an existing copy of the metadata block, wherein the processor is further configured to write the one or more reference count deltas associated with the metadata block to one or more delta container pages of the storage array, wherein the processor is further configured to determine that writing each of the one or more reference count deltas to the metadata block will exceed a maximum reference count associated with the metadata block, wherein the processor is further configured to write a first portion of the one or more reference count deltas to the metadata block in the storage array based upon, at least in part, the maximum reference count associated with the metadata block, and wherein the processor is further configured to write the remaining one or more reference count deltas back to the one or more delta container pages of the storage array.

12. The computing system of claim 11 , wherein the processor is further configured to:

receive, from a node of the multi-node storage system, a request to perform an operation on the metadata block that requires a consistent reference count associated with the metadata block, thus defining a requesting node; and

provide an exclusive lock on the metadata block to the requesting node.

13. The computing system of claim 11 , wherein the processor is further configured to:

receive, from at least one node, a request to perform an operation on the metadata block that does not require a consistent reference count associated with the metadata block; and

provide a shared lock on the metadata block to the at least one node of the multi-node storage system.

14. The computing system of claim 11 , wherein the processor is further configured to:

update, via at least one node, the reference count associated with the metadata block based upon, at least in part, the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node.

15. The computing system of claim 14 , wherein updating, via the at least one node, the reference count associated with the metadata block based upon, at least in part, the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node includes:

caching a copy of the metadata block from a storage array to the cache memory system of the at least one node; and

applying the one or more reference count deltas associated with the metadata block stored in the cache memory system of the at least one node to the cached copy of the metadata block.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2020
From: DAVID, BAR; HAREL, BAR; ZALSTEIN, DROR
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 054028/0882 →