IP Library Granted Patent US 11,829,342
Granted Patent B2
US 11,829,342 · App. 17/029,498 · Granted Nov 28, 2023

Managing lock information associated with a lock operation

Inventors: Ming Zhang (Beijing, CN); Shuo Lv (Beijing, CN); Lei Gao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F16/2343G06F16/2237
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,829,342
App. No.
17/029,498
Granted
Nov 28, 2023
Kind
B2
Abstract

Storage management techniques involve determining, if it is determined that lock information associated with a lock operation performed on an object is to be inserted into a storage device, a target digest for representing the lock information; determining whether an idle index not associated with a historical digest exists in an index array for indicating a plurality of storage positions in the storage device; and inserting, if it is determined that an idle index exists in the index array, the lock information into a target storage position in the plurality of storage positions by associating the target digest with the idle index. Accordingly, lock information can be quickly inserted and cleared, thereby improving the system performance.

Claims (73)

1. A method of managing a lock tracking system of a storage system, comprising:

in response to determining that lock information associated with a lock operation performed on an object is to be inserted into a buffer cache of the storage system, generating a target digest representing the lock information, the target digest to be stored in a position of a digest array in the buffer cache, wherein positions of the digest array are associated with corresponding positions of an index array in the buffer cache, the index array storing locations of content data elements in the buffer cache, the content data elements storing object-related lock information;

locating an idle index not corresponding to a digest array position that stores a historical digest, the idle index being a position in the index array;

storing the target digest in a target position of the digest array, the target position corresponding in position to the idle index;

inserting the lock information into a target content data element at a storage location in the buffer cache, the storage location being separate from the index array and digest array;

storing, in the idle index, the storage location of the target content data element;

in response to the lock information being cleared, setting the target position of the digest array to invalid and performing hole compression on the target position of the digest array, the hole compression (i) causing a digest stored at a position preceding the target position to become adjacent to a digest stored at a position subsequent to the target position and (ii) causing a storage location stored at an index preceding the idle index to become adjacent to a storage location stored at an index subsequent to the idle index.

2. The method of claim 1 , wherein determining the target digest comprises:

acquiring a lock address of a locked object from the lock information; and

determining the target digest based on the lock address.

3. The method of claim 1 , further comprising:

locating, from among the positions of the index array, a position corresponding to a digest array position storing a historical digest that has expired; and

updating the index array based on the historical digest that has expired to generate a second idle index.

4. The method of claim 1 , further comprising:

disassociating a non-idle index that has been associated with a digest array position that stores a historical digest from the historical digest; and

clearing historical lock information inserted into a used content data element whose storage location is stored in the non-idle index.

5. The method of claim 1 , wherein inserting the lock information into a target content data element comprises:

determining, from a plurality of content data elements, a target content data element allocated for the idle index;

establishing a mapping relationship between the target content data element and the target digest by associating the target digest with the idle index; and

inserting the lock information into the target content data element based on the mapping relationship.

6. The method of claim 1 , further comprising:

generating, in response to receiving unlock information associated with an unlock operation for a locked object, another target digest for representing the unlock information;

determining, from candidate digests stored in digest array positions corresponding to the positions of the index array, whether a reference digest matching the another target digest exists;

determining, in response to determining that the reference digest exists, whether reference lock information represented by the reference digest matches the unlock information; and

clearing, in response to determining that the reference lock information matches the unlock information, the reference lock information from the storage device.

7. The method of claim 6 , further comprising:

inserting the unlock information into an available content data element in a plurality of content data elements.

8. The method of claim 1 , wherein the positions of the digest array have a corresponding positional relationship with the positions of the index array;

wherein performing the hole compression is further in response to determining that each of the positions of the index array is associated with a digest stored in a respective position of the digest array; and

wherein performing the hole compression further includes inserting an idle position at a tail of the digest array and inserting a second idle index at a tail of the index array.

9. The method of claim 1 , wherein locating the idle index includes:

accessing an insertion cursor indicating a starting position in the index array; and

starting from the starting position, searching positions in the index array to locate the idle index as an available index; and

wherein the method further comprises:

after locating the idle index, incrementing the insertion cursor to indicate a new starting position in the index array to perform a subsequent search operation.

10. An electronic device, comprising:

at least one processor; and

at least one memory storing computer program instructions, the at least one memory and the computer program instructions being configured to cause, with the at least one processor, the electronic device to perform actions comprising:

in response to determining that lock information associated with a lock operation performed on an object is to be inserted into a buffer cache of the storage system, generating a target digest representing the lock information, the target digest to be stored in a position of a digest array in the buffer cache, wherein positions of the digest array are associated with corresponding positions of an index array in the buffer cache, the index array storing locations of content data elements in the buffer cache, the content data elements constructed and arranged to store object-related lock information;

locating an idle index corresponding to a digest array position that stores a historical digest, the idle index being a position in the index array;

storing the target digest in a target position of the digest array, the target position corresponding in position to the idle index;

inserting the lock information into a target content data element at a storage location in the buffer cache, the storage location being separate from the index array and digest array; and

storing, in the idle index, the storage location of the target content data element;

in response to the lock information being cleared, setting the target position of the digest array to invalid and performing hole compression on the target position of the digest array, the hole compression (i) causing a digest stored at a position preceding the target position to become adjacent to a digest stored at a position subsequent to the target position and (ii) causing a storage location stored at an index preceding the idle index to become adjacent to a storage location stored at an index subsequent to the idle index.

11. The electronic device of claim 10 , wherein determining the target digest comprises:

acquiring a lock address of a locked object from the lock information; and

determining the target digest based on the lock address.

12. The electronic device of claim 10 , wherein the actions further comprise:

locating, from among the positions of the index array, a position corresponding to a digest array position storing a historical digest that has expired; and

updating the index array based on the historical digest that has expired to generate a second idle index.

13. The electronic device of claim 10 , wherein the actions further comprise:

disassociating a non-idle index that has been associated with a digest array position that stores a historical digest from the historical digest; and

clearing historical lock information inserted into a used content data element whose storage location is stored in the non-idle index.

14. The electronic device of claim 10 , wherein inserting the lock information into a target content data element comprises:

determining, from a plurality of content data elements, a target content data element allocated for the idle index;

establishing a mapping relationship between the target content data element and the target digest by associating the target digest with the idle index; and

inserting the lock information into the target content data element based on the mapping relationship.

15. The electronic device of claim 10 , wherein the actions further comprise:

generating, in response to receiving unlock information associated with an unlock operation for a locked object, another target digest for representing the unlock information;

determining, from candidate digests stored in digest array positions corresponding to the positions of the index array, whether a reference digest matching the another target digest exists;

determining, in response to determining that the reference digest exists, whether reference lock information represented by the reference digest matches the unlock information; and

clearing, in response to determining that the reference lock information matches the unlock information, the reference lock information from the storage device.

16. The electronic device of claim 15 , wherein the actions further comprise:

inserting the unlock information into an available content data element in a plurality of content data elements.

17. A computer program product having a non-transitory computer readable medium which stores a set of instructions to perform storage management; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

in response to determining that lock information associated with a lock operation performed on an object is to be inserted into a buffer cache of the storage system, generating a target digest representing the lock information, the target digest to be stored in a position of a digest array in the buffer cache, wherein positions of the digest array are associated with corresponding positions of an index array in the buffer cache, the index array storing locations of content data elements in the buffer cache, the content data elements storing object-related lock information;

locating an idle index not corresponding to a digest array position that stores a historical digest, the idle index being a position in the index array;

storing the target digest in a target position of the digest array, the target position corresponding in position to the idle index;

inserting the lock information into a target content data element at a storage location in the buffer cache, the storage location being separate from the index array and digest array; and

storing, in the idle index, the storage location of the target content data element;

in response to the lock information being cleared, setting the target position of the digest array to invalid and performing hole compression on the target position of the digest array, the hole compression (i) causing a digest stored at a position preceding the target position to become adjacent to a digest stored at a position subsequent to the target position and (ii) causing a storage location stored at an index preceding the idle index to become adjacent to a storage location stored at an index subsequent to the idle index.

18. The method of claim 1 , wherein locating the idle index is performed using an insertion cursor indicating a starting search position in the index array; and

wherein the method further comprises, in response to storing the location of the target content data element, incrementing the insertion cursor.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2021
From: ZHANG, MING; LV, SHUO; GAO, LEI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054817/0352 →
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 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 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 →