IP Library Granted Patent US 10,942,895
Granted Patent B2
US 10,942,895 · App. 16/732,976 · Granted Mar 9, 2021

Storage system with decrement protection of reference counts

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 10,942,895
App. No.
16/732,976
Granted
Mar 9, 2021
Kind
B2
Abstract

A storage system in one embodiment comprises a plurality of storage devices storing data pages. Each data page has a content-based signature derived from that data page. The content-based signatures are associated with physical locations storing the data pages. In response to receipt of a write input/output (IO) request that includes a data segment that is smaller than a page granularity of the storage devices, a content-based signature associated with the data segment is determined which also corresponds to a target data page stored at one of the physical locations. In response to determining the content-based signature, an inflight write count corresponding to the content-based signature is incremented. In response to a decrement request to decrement a reference count of the physical location corresponding to the content-based signature, a decrement flag corresponding to the content-based signature is set in the data structure and the decrement request is postponed.

Claims (63)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory, the at least one processing device being configured:

to receive a decrement request to decrement a reference count of a physical location corresponding to a content-based signature of a target data page stored in a storage system comprising a plurality of storage devices;

to determine whether or not a write request which is associated with the target data page is pending, the write request comprising a data segment that is smaller than a page granularity of the plurality of storage devices; and

to postpone the decrement request based at least in part on a determination that the write request is pending.

2. The apparatus of claim 1 , wherein determining whether or not the write request which is associated with the target data page is pending comprises determining that an inflight write count that corresponds to the content-based signature of the target data page has a first value, the inflight write count being stored in a data structure associated with the at least one processing device.

3. The apparatus of claim 2 , wherein the at least one processing device is further configured:

to determine that the inflight write count has been changed to a second value; and

to execute the postponed decrement request based at least in part on the determination that the inflight write count has been changed to the second value.

4. The apparatus of claim 3 , wherein determining that the inflight write count has been changed to the second value comprises determining that an entry in the data structure corresponding to the content-based signature of the target data page has been removed from the data structure.

5. The apparatus of claim 2 , wherein the at least one processing device is further configured to set a decrement postponed flag corresponding to the content-based signature of the target data page in the data structure associated with the at least one processing device based at least in part on the receipt of the decrement request and the determination that the inflight write count that corresponds to the content-based signature of the target data page has the first value.

6. The apparatus of claim 5 , wherein the at least one processing device is further configured:

to receive a second decrement request to decrement the reference count of the physical location corresponding to the content-based signature of the target data page;

to determine that the decrement postponed flag corresponding to the content-based signature of the target data page is set in the data structure; and

to decrement the reference count of the physical location corresponding to the content-based signature of the target data page based at least in part on the determination that the decrement postponed flag corresponding to the content-based signature of the target data page is set.

7. The apparatus of claim 5 , wherein postponing the decrement request comprises storing the decrement request in a decrement request postponed journal in correspondence with the content-based signature of the target data page.

8. The apparatus of claim 7 , wherein in response to a recovery of the storage system after an event, the at least one processing device is configured:

to reset the data structure;

to determine whether or not any recovered write requests include a data segment smaller than the page granularity of the plurality of storage devices;

for a given write request that includes a data segment smaller than the page granularity of the plurality of storage devices, to increment the inflight write count corresponding to the content-based signature of a data page targeted by the given write request in the data structure;

to determine whether or not the decrement request postponed journal includes a decrement request corresponding to the content-based signature of the data page targeted by the given write request; and

to set a decrement postponed flag corresponding to the content-based signature of the data page targeted by the given write request in the data structure based at least in part on a determination that the decrement request postponed journal includes the decrement request corresponding to the content-based signature of the data page targeted by the given write request.

9. A method comprising:

receiving a decrement request to decrement a reference count of a physical location corresponding to a content-based signature of a target data page stored in a storage system comprising a plurality of storage devices;

determining whether or not a write request which is associated with the target data page is pending, the write request comprising a data segment that is smaller than a page granularity of the plurality of storage devices; and

postponing the decrement request based at least in part on a determination that the write request is pending,

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

10. The method of claim 9 , wherein determining whether or not the write request which is associated with the target data page is pending comprises determining that an inflight write count that corresponds to the content-based signature of the target data page has a first value, the inflight write count being stored in a data structure associated with the at least one processing device.

11. The method of claim 10 , wherein the method further comprises:

determining that the inflight write count has been changed to a second value; and

executing the postponed decrement request based at least in part on the determination that the inflight write count has been changed to the second value.

12. The method of claim 11 , wherein determining that the inflight write count has been changed to the second value comprises determining that an entry in the data structure corresponding to the content-based signature of the target data page has been removed from the data structure.

13. The method of claim 10 , wherein the method further comprises setting a decrement postponed flag corresponding to the content-based signature of the target data page in the data structure associated with the at least one processing device based at least in part on the receipt of the decrement request and the determination that the inflight write count that corresponds to the content-based signature of the target data page has the first value.

14. The method of claim 13 , wherein method further comprises:

receiving a second decrement request to decrement the reference count of the physical location corresponding to the content-based signature of the target data page;

determining that the decrement postponed flag corresponding to the content-based signature of the target data page is set in the data structure; and

decrementing the reference count of the physical location corresponding to the content-based signature of the target data page based at least in part on the determination that the decrement postponed flag corresponding to the content-based signature of the target data page is set.

15. The method of claim 13 , wherein postponing the decrement request comprises storing the decrement request in a decrement request postponed journal in correspondence with the content-based signature of the target data page.

16. The method of claim 15 , wherein in response to a recovery of a storage system comprising the plurality of storage devices after an event, the method further comprises:

resetting the data structure;

determining whether or not any recovered write requests include a data segment smaller than the page granularity of the plurality of storage devices;

for a given write request that includes a data segment smaller than the page granularity of the plurality of storage devices, incrementing the inflight write count corresponding to the content-based signature of a data page targeted by the given write request in the data structure;

determining whether or not the decrement request postponed journal includes a decrement request corresponding to the content-based signature of the data page targeted by the given write request; and

setting a decrement postponed flag corresponding to the content-based signature of the data page targeted by the given write request in the data structure based at least in part on a determination that the decrement request postponed journal includes the decrement request corresponding to the content-based signature of the data page targeted by the given write request.

17. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to receive a decrement request to decrement a reference count of a physical location corresponding to a content-based signature of a target data page stored in a storage system comprising a plurality of storage devices;

to determine whether or not a write request which is associated with the target data page is pending, the write request comprising a data segment that is smaller than a page granularity of the plurality of storage devices; and

to postpone the decrement request based at least in part on a determination that the write request is pending.

18. The computer program product of claim 17 :

wherein determining whether or not the write request which is associated with the target data page is pending comprises determining that an inflight write count that corresponds to the content-based signature of the target data page has a first value, the inflight write count being stored in a data structure associated with the at least one processing device; and

wherein the program code when executed by at least one processing device further causes the at least one processing device to set a decrement postponed flag corresponding to the content-based signature of the target data page in the data structure associated with the at least one processing device based at least in part on the receipt of the decrement request and the determination that the inflight write count that corresponds to the content-based signature of the target data page has the first value.

19. The computer program product of claim 18 , wherein the program code when executed by at least one processing device further causes the at least one processing device:

to receive a second decrement request to decrement the reference count of the physical location corresponding to the content-based signature of the target data page;

to determine that the decrement postponed flag corresponding to the content-based signature of the target data page is set in the data structure; and

to decrement the reference count of the physical location corresponding to the content-based signature of the target data page based at least in part on the determination that the decrement postponed flag corresponding to the content-based signature of the target data page is set.

20. The computer program product of claim 18 :

wherein postponing the decrement request comprises storing the decrement request in a decrement request postponed journal in correspondence with the content-based signature of the target data page; and

wherein the program code when executed by at least one processing device further causes the at least one processing device:

to reset the data structure;

to determine whether or not any recovered write requests include a data segment smaller than the page granularity of the plurality of storage devices;

for a given write request that includes a data segment smaller than the page granularity of the plurality of storage devices, to increment the inflight write count corresponding to the content-based signature of a data page targeted by the given write request in the data structure;

to determine whether or not the decrement request postponed journal includes a decrement request corresponding to the content-based signature of the data page targeted by the given write request; and

to set a decrement postponed flag corresponding to the content-based signature of the data page targeted by the given write request in the data structure based at least in part on a determination that the decrement request postponed journal includes the decrement request corresponding to the content-based signature of the data page targeted by the given write request.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 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 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2020
From: SHVEIDEL, VLADIMIR; KAMRAN, LIOR; BARUCH, ORAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051460/0893 →