IP Library Granted Patent US 9,501,393
Granted Patent B2
US 9,501,393 · App. 14/538,513 · Granted Nov 22, 2016

Data storage system garbage collection based on at least one attribute

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 9,501,393
App. No.
14/538,513
Granted
Nov 22, 2016
Kind
B2
Abstract

Managing data in a data storage system including at least one Data Storage Device (DSD) and a host. An initial location is determined for data to be stored in the at least one DSD based on at least one attribute defined by the host. A source portion is identified from a plurality of source portions in the at least one DSD for a garbage collection operation based on the at least one attribute defined by the host. A destination portion is identified in the at least one DSD for storing data resulting from the garbage collection operation based on the at least one attribute defined by the host. Garbage collection of the data in the source portion is performed into the destination portion, and after completion of garbage collection, the source portion is designated as a new destination portion for a new garbage collection operation.

Claims (70)

1. A method for managing data in a data storage system including a host and at least one Data Storage Device (DSD) including a plurality of zones for storing data, the method comprising:

assigning one or more zones of the plurality of zones as a destination portion in the at least one DSD for storing data resulting from a garbage collection operation;

assigning multiple remaining zones of the plurality of zones as at least one logical volume used by the host for storing data, wherein the one or more zones assigned as the destination portion are outside of the at least one logical volume;

identifying, based on at least one attribute defined by the host, a source portion for the garbage collection operation from a plurality of source portions in the multiple remaining zones assigned as the at least one logical volume; and

performing garbage collection of data in the source portion into the destination portion.

2. The method of claim 1 , further comprising:

identifying valid data in the source portion during the garbage collection operation; and

organizing the valid data in the destination portion according to the at least one attribute.

3. The method of claim 1 , further comprising identifying valid data in the source portion during the garbage collection operation based on the at least one attribute such that the valid data is grouped together with other data in the destination portion having the at least one attribute.

4. The method of claim 1 , wherein the at least one attribute includes at least one of an expiration date for the data, a frequency of access of the data, ownership of the data, or a fragmentation level of the data.

5. The method of claim 1 , wherein the at least one attribute includes a reliability condition of the source portion or the destination portion, an environmental condition of the source portion or the destination portion, a wear level of the source portion or the destination portion, an available data capacity of the source portion or the destination portion, a distance of the source portion or the destination portion from previous users of the data, a network bandwidth available between the source portion and the destination portion, an availability of the source portion or the destination portion, or an energy cost in operating the source portion or the destination portion.

6. The method of claim 5 , wherein the environmental condition of the source portion or the destination portion includes a temperature condition or a vibration condition.

7. The method of claim 5 , wherein the reliability condition of the source portion or the destination portion includes a status of a head used for writing data or a level of errors encountered when writing data.

8. The method of claim 1 , further comprising determining a time for performing garbage collection.

9. The method of claim 8 , wherein determining the time for garbage collection is based on at least one of an availability of processing resources, an availability of the destination portion or the source portion, a time of day, or a level of activity for the host.

10. The method of claim 1 , wherein after completion of garbage collection, the method further comprises setting the destination portion as available for storing data.

11. The method of claim 1 , wherein the source portion and the destination portion are located in separate DSDs of the at least one DSD.

12. The method of claim 1 , wherein the source portion and the destination portion are located in the same DSD of the at least one DSD.

13. The method of claim 1 , further comprising:

after performing garbage collection of data in the source portion into the destination portion, mapping at least one zone of the one or more zones assigned as the destination portion to the at least one logical volume;

mapping at least one zone of the multiple remaining zones out of the at least one logical volume; and

assigning the at least one zone mapped out of the at least one logical volume as a new destination portion.

14. A data storage system for storing data, the data storage system comprising:

a host including a processor; and

at least one Data Storage Device (DSD) in communication with the host, the at least one DSD including a plurality of zones for storing data;

wherein the processor is configured to:

define at least one attribute for performing garbage collection in the at least one DSD;

assign one or more zones of the plurality of zones as a destination portion in the at least one DSD for storing data resulting from a garbage collection operation;

assign multiple remaining zones of the plurality of zones as at least one logical volume used by the host for storing data, wherein the one or more zones assigned as the destination portion are outside of the at least one logical volume;

identify, based on at least one attribute, a source portion for the garbage collection operation from a plurality of source portions in the multiple remaining zones assigned as the at least one logical volume; and

perform garbage collection of data in the source portion into the destination portion.

15. The data storage system of claim 14 , wherein the processor is further configured to:

identify valid data in the source portion during the garbage collection operation; and

organize the valid data in the destination portion according to the at least one attribute.

16. The data storage system of claim 14 , wherein the processor is further configured to identify valid data in the source portion during the garbage collection operation based on the at least one attribute such that the valid data is grouped together with other data in the destination portion having the at least one attribute.

17. The data storage system of claim 14 , wherein the at least one attribute includes at least one of an expiration date for the data, a frequency of access of the data, ownership of the data, or a fragmentation level of the data.

18. The data storage system of claim 14 , wherein the at least one attribute includes a reliability condition of the source portion or the destination portion, an environmental condition of the source portion or the destination portion, a wear level of the source portion or the destination portion, an available data capacity of the source portion or the destination portion, a distance of the source portion or the destination portion from previous users of the data, a network bandwidth available between the source portion and the destination portion, an availability of the source portion or the destination portion, or an energy cost in operating the source portion or the destination portion.

19. The data storage system of claim 18 , wherein the environmental condition of the source portion or the destination portion includes a temperature condition or a vibration condition.

20. The data storage system of claim 18 , wherein the reliability condition of the source portion or the destination portion includes a status of a head used for writing data or a level of errors encountered when writing data.

21. The data storage system of claim 14 , wherein the processor is further configured to determine a time for performing garbage collection.

22. The data storage system of claim 21 , wherein the processor is further configured to determine the time for garbage collection based on at least one of an availability of processing resources, an availability of the destination portion or the source portion, a time of day, or a level of activity for the host.

23. The data storage system of claim 14 , wherein the processor is further configured to set the destination portion as available for storing data after completion of the garbage collection.

24. The data storage system of claim 14 , wherein the source portion and the destination portion are located in separate DSDs of the at least one DSD.

25. The data storage system of claim 14 , wherein the source portion and the destination portion are located in the same DSD of the at least one DSD.

26. The data storage system of claim 14 , wherein the processor is further configured to:

after performing garbage collection of data in the source portion into the destination portion, map at least one zone of the one or more zones assigned as the destination portion to the at least one logical volume;

map at least one zone of the multiple remaining zones out of the at least one logical volume; and

assigning the at least one zone mapped out of the at least one logical volume as a new destination portion.

27. A Data Storage Device (DSD) in communication with a host, the DSD comprising:

a non-volatile memory including a plurality of zones for storing data; and

a controller configured to:

receive at least one attribute defined by the host for performing garbage collection in the non-volatile memory;

assign one or more zones of the plurality of zones as a destination portion in the at least one DSD for storing data resulting from a garbage collection operation;

assign multiple remaining zones of the plurality of zones as at least one logical volume used by the host for storing data, wherein the one or more zones assigned as the destination portion are outside of the at least one logical volume;

identify, based on the at least one attribute defined by the host, a source portion for the garbage collection operation from a plurality of source portions in the multiple remaining zones assigned as the at least one logical volume; and

perform garbage collection of data in the source portion into the destination portion.

28. The DSD of claim 27 , wherein the controller is further configured to:

identify valid data in the source portion during the garbage collection process; and

organize the valid data in the destination portion according to the at least one attribute.

29. The DSD of claim 27 , wherein the controller is further configured to identify valid data in the source portion during the garbage collection process based on the at least one attribute such that the valid data is grouped together with other data in the destination portion having the at least one attribute.

30. The DSD of claim 27 , wherein the at least one attribute includes at least one of an expiration date for the data, a frequency of access of the data, ownership of the data, or a fragmentation level of the data.

31. The DSD of claim 27 , wherein the at least one attribute includes a reliability condition of the source portion or the destination portion, an available data capacity of the source portion or the destination portion, an availability of the source portion or the destination portion, or a wear level of the source portion or the destination portion.

32. The DSD of claim 31 , wherein the reliability condition of the source portion or the destination portion includes a status of a head used for writing data or a level of errors encountered when writing data.

33. The DSD of claim 27 , wherein the controller is further configured to determine a time for performing garbage collection.

34. The DSD of claim 33 , wherein the controller is further configured to determine the time for garbage collection based on at least one of an availability of processing resources, an availability of the destination portion or the source portion, a time of day, or a level of activity for the host.

35. The DSD of claim 27 , wherein the controller is further configured to set the destination portion as available for storing data after completion of the garbage collection.

36. The DSD of claim 27 , wherein the controller is further configured to:

after performing garbage collection of data in the source portion into the destination portion, map at least one zone of the one or more zones assigned as the destination portion to the at least one logical volume;

map at least one zone of the multiple remaining zones out of the at least one logical volume; and

assign the at least one zone mapped out of the at least one logical volume as a new destination portion.

Assignments (7)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →