IP Library › Granted Patent US 8,316,064
Granted Patent B2
US 8,316,064 · App. 12/198,021 · Granted Nov 20, 2012

Method and apparatus for managing data objects of a data storage system

Assignee: EMC Corporation
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 8,316,064
App. No.
12/198,021
Granted
Nov 20, 2012
Kind
B2
Abstract

Techniques for managing data objects of a data storage system are described herein. According to one embodiment, a perfect hash function is generated for data objects stored in a data storage system. For each of the data objects, a hash operation is performed using the perfect hash function to indicate whether the respective data object is alive. Resources associated with the respective data object is reclaimed if it is determined that the respective data object is not alive based on a result of the hash operation using the perfect hash function, where the reclaimed resources are released back to the data storage system as free resources. Other methods and apparatuses are also described.

Claims (44)

1. A computer-implemented method for managing data objects of a data storage system, the method comprising:

in response to a request to reclaim resources from a plurality of data objects stored in the data storage system, generating a hash function based on an analysis of identifiers of the plurality of data objects, wherein the data storage system stores a plurality of logical data objects, each logical data object being associated with one or more of the data objects;

determining whether each of the plurality of data objects is alive, including

maintaining a live table having a plurality of entries, each entry being associated with one of the plurality of data objects,

for each of the plurality of data objects, performing a hash operation using the hash function to indicate whether the respective data object is alive, wherein a live data object is being referenced by another data object in the data storage system, and

for each data object that is alive, marking a corresponding entry of the live table to indicate that the corresponding data object is alive; and

reclaiming a resource associated with each data object that has not been marked alive, wherein the reclaimed resource is released back to the data storage system as a free resource.

2. The method of claim 1 , wherein the hash function is a perfect hash function.

3. The method of claim 2 , wherein an identifier of a data object is generated based on content of the data object by performing a hash operation on at least a portion of the content of the data object.

4. The method of claim 2 , wherein the perfect hash function is configured to map each of the identifiers of a data object to a unique hash value without collision, and wherein the unique hash value is used to indicate whether a particular data object is alive.

5. The method of claim 2 , wherein the perfect hash function is a minimal perfect hash function that maps a set of N elements to a range of N values, and wherein an identifier of a data object is used as an input to the minimal perfect hash function.

6. The method of claim 1 , wherein a resource associated with the respective data object is reclaimed if the entry of the live table associated with the respective data object has not been marked, and wherein the resource is reclaimed after all live data objects have been marked in the live table using the hash function.

7. The method of claim 1 , wherein the live table comprises a bit vector having a plurality of bits, wherein each of the plurality of data objects is associated with a bit in the bit vector, and wherein the bit vector is indexed based on a hash value obtained from the hash function.

8. The method of claim 1 , wherein the storage space associated with the respective data object is overwritten with at least one predetermined bit pattern if it is determined that the respective data object is not alive based on a result of the hash operation using the hash function.

9. A non-transitory machine-readable medium having instructions which when executed by a machine, cause the machine to perform a method for managing resources of a data storage system, the method comprising:

in response to a request to reclaim resources from a plurality of data objects stored in the data storage system, generating a hash function based on an analysis of identifiers of the plurality of data objects, wherein the data storage system stores a plurality of logical data objects, each logical data object being associated with one or more of the data objects;

determining whether each of the plurality of data objects is alive, including

maintaining a live table having a plurality of entries, each entry being associated with one of the plurality of data objects,

for each of the plurality of data objects, performing a hash operation using the hash function to indicate whether the respective data object is alive, wherein a live data object is being referenced by another data object in the data storage system, and

for each data object that is alive, marking a corresponding entry of the live table to indicate that the corresponding data object is alive; and

reclaiming a resource associated with each data object that has not been marked alive, wherein the reclaimed resource is released back to the data storage system as a free resource.

10. The non-transitory machine-readable medium of claim 9 , wherein the hash function is a perfect hash function.

11. The non-transitory machine-readable medium of claim 10 , wherein an identifier of a data object is generated based on content of the data object by performing a hash operation on at least a portion of the content of the data object.

12. The non-transitory machine-readable medium of claim 10 , wherein the perfect hash function is configured to map each of the identifiers of a data object to a unique hash value without collision, and wherein the unique hash value is used to indicate whether a particular data object is alive.

13. The non-transitory machine-readable medium of claim 10 , wherein the perfect hash function is a minimal perfect hash function that maps a set of N elements to a range of N values, and wherein an identifier of a data object is used as an input to the minimal perfect hash function.

14. The non-transitory machine-readable medium of claim 9 , wherein a resource associated with the respective data object is reclaimed if the entry of the live table associated with the respective data object has not been marked, and wherein the resource is reclaimed after all live data objects have been marked in the live table using the hash function.

15. The non-transitory machine-readable medium of claim 9 , wherein the live table comprises a bit vector having a plurality of bits, wherein each of the plurality of data objects is associated with a bit in the bit vector, and wherein the bit vector is indexed based on a hash value obtained from the hash function.

16. The non-transitory machine-readable medium of claim 9 , wherein the live table comprises a bit vector having a plurality of bits, wherein each of the plurality of data objects is associated with a bit in the bit vector, and wherein the bit vector is indexed based on a hash value obtained from the hash function.

17. The non-transitory machine-readable medium of claim 9 , wherein the storage space associated with the respective data object is overwritten with at least one predetermined bit pattern if it is determined that the respective data object is not alive based on a result of the hash operation using the hash function.

18. A data storage system, comprising:

a processor; and

a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to

in response to a request to reclaim resources from a plurality of data objects stored in the data storage system, generate a hash function based on an analysis of identifiers of the plurality of data objects, wherein the data storage system stores a plurality of logical data objects, each logical data object being associated with one or more of the data objects,

determine whether each of the plurality of data objects is alive, including

maintaining a live table having a plurality of entries, each entry being associated with one of the plurality of data objects,

for each of the plurality of data objects, performing a hash operation using the hash function to indicate whether the respective data object is alive, wherein a live data object is being referenced by another data object in the data storage system, and

for each data object that is alive, mark a corresponding entry of the live table to indicate that the corresponding data object is alive, and

reclaim a resource associated with each data object that has not been marked alive, wherein the reclaimed resource is released back to the data storage system as a free resource.

19. The system of claim 18 , wherein the hash function is a perfect hash function.

20. The system of claim 19 , wherein an identifier of a data object is generated based on content of the data object by performing a hash operation on at least a portion of the content of the data object.

21. The system of claim 19 , wherein the perfect hash function is configured to map each of the identifiers of a data object to a unique hash value without collision, and wherein the unique hash value is used to indicate whether a particular data object is alive.

22. The system of claim 19 , wherein the perfect hash function is a minimal perfect hash function that maps a set of N elements to a range of N values, and wherein an identifier of a data object is used as an input to the minimal perfect hash function.

23. The system of claim 18 , wherein the live table comprises a bit vector having a plurality of bits, wherein each of the plurality of data objects is associated with a bit in the bit vector, and wherein the bit vector is indexed based on a hash value obtained from the hash function.

24. The system of claim 18 , wherein the storage space associated with the respective data object is overwritten with at least one predetermined bit pattern if it is determined that the respective data object is not alive based on a result of the hash operation using the hash function.

Assignments (13)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2010
From: DATA DOMAIN HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 024031/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2010
From: DATA DOMAIN LLC
To: DATA DOMAIN HOLDING, INC.
Reel/Frame 024022/0196 →
CONVERSION Recorded Mar 2, 2010
From: DATA DOMAIN, INC.
To: DATA DOMAIN LLC
Reel/Frame 024017/0605 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2008
From: HSU, WINDSOR W
To: DATA DOMAIN, INC
Reel/Frame 021437/0802 →
Continuity (1)
Related Publication 20100049735A1 · Feb 25, 2010