IP Library › Granted Patent US 11,294,588
Granted Patent B1
US 11,294,588 · App. 16/266,600 · Granted Apr 5, 2022

Placing data within a storage device

Inventors: Ethan Miller (Santa Cruz, CA); John Colgrove (Los Altos, CA)
Assignee: Pure Storage, Inc.
G06F3/0644G06F3/0604G06F3/0616G06F3/0652G06F3/0673
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,294,588
App. No.
16/266,600
Granted
Apr 5, 2022
Kind
B1
Abstract

Placing data within a storage device, including: receiving, by a storage device, information describing an expected longevity of data stored on the storage device; determining, by the storage device, a location for storing the data in dependence upon the expected longevity of the data; adjusting a garbage collection schedule in dependence upon data placement; and providing, to a storage array controller, garbage collection statistics.

Claims (29)

1. A method comprising:

identifying, by a storage device, information describing an expected longevity of data stored on the storage device, wherein the expected longevity of the data represents an amount of time until an event occurs that renders the data invalid, including receiving information describing whether the data has been deduplicated and information describing a number of deduplicated references to the data, wherein:

an expected longevity of deduplicated data is longer than an expected longevity of non-deduplicated data, and

the expected longevity of the data increases as the number of deduplicated references to the data increases above a single deduplicated reference;

placing, by the storage device based on a range of longevity values associated with one or more areas of the storage device, the data in an area of the storage device that contains other data with similar expected longevities; and

adjusting a garbage collection schedule of the storage device based on a placement of the data in the area of the storage device that contains other data with similar expected longevities and based on an amount of invalid data elements in the area of the storage device that contains other data with similar expected longevities.

2. The method of claim 1 further comprising identifying wear leveling information associated with one or more storage device locations, wherein the data is placed in a storage location in the area of the storage device that contains other data with similar expected longevities based on the wear leveling information.

3. The method of claim 1 further comprising providing, to a storage array controller, garbage collection statistics including information describing an actual longevity of the data.

4. A storage device comprising a computer processor and computer memory, the computer memory comprising computer program instructions that, when executed, cause the storage device to carry out:

identifying, by a storage device, information describing an expected longevity of data stored on the storage device, wherein the expected longevity of the data represents an amount of time until an event occurs that renders the data invalid, including receiving information describing whether the data has been deduplicated and information describing a number of deduplicated references to the data, wherein:

an expected longevity of deduplicated data is longer than an expected longevity of non-deduplicated data, and

the expected longevity of the data increases as the number of deduplicated references to the data increases above a single deduplicated reference;

placing, by the storage device based on a range of longevity values associated with one or more areas of the storage device, the data in an area of the storage device that contains other data with similar expected longevities; and

adjusting a garbage collection schedule of the storage device based on a placement of the data in the area of the storage device that contains other data with similar expected longevities and based on an amount of invalid data elements in the area of the storage device that contains other data with similar expected longevities.

5. The storage device of claim 4 further configured to carry out identifying wear leveling information associated with one or more storage device locations, wherein the data is placed in a storage location in the area of the storage device that contains other data with similar expected longevities based on the wear leveling information.

6. The storage device of claim 4 wherein the storage device is further configured to carry out the step of providing, to a storage array controller, garbage collection statistics including information describing an actual longevity of the data.

7. A computer program product stored upon a non-transitory computer readable storage medium, the computer program product comprising computer program instructions that, when executed, cause a storage device to carry out:

identifying, by a storage device, information describing an expected longevity of data stored on the storage device, wherein the expected longevity of the data represents an amount of time until an event occurs that renders the data invalid, including receiving information describing whether the data has been deduplicated and information describing a number of deduplicated references to the data, wherein:

an expected longevity of deduplicated data is longer than an expected longevity of non-deduplicated data, and

the expected longevity of the data increases as the number of deduplicated references to the data increases above a single deduplicated reference;

placing, by the storage device based on a range of longevity values associated with one or more areas of the storage device, the data in an area of the storage device that contains other data with similar expected longevities; and

adjusting a garbage collection schedule of the storage device based on a placement of the data in the area of the storage device that contains other data with similar expected longevities and based on an amount of invalid data elements in the area of the storage device that contains other data with similar expected longevities.

8. The computer program product of claim 7 further configured to carry out identifying wear leveling information associated with one or more storage device locations, wherein the data is placed in a storage location in the area of the storage device that contains other data with similar expected longevities based on the wear leveling information.

9. The method of claim 1 wherein adjusting a garbage collection schedule of the storage device based on placement of the data further comprises increasing a frequency at which garbage is collected in areas based on the associated range of longevity values.

10. The method of claim 1 wherein adjusting a garbage collection schedule of the storage device based on placement of the data further comprises decreasing a frequency at which garbage is collected in areas based a range of expected longevity values.

11. The storage device of claim 4 wherein adjusting a garbage collection schedule of the storage device based on placement of the data further comprises increasing a frequency at which garbage is collected in areas based a range of expected longevity values.

12. The storage device of claim 4 wherein adjusting a garbage collection schedule of the storage device based on placement of the data further comprises decreasing a frequency at which garbage is collected in areas based a range of expected longevity values.

13. The computer program product of claim 7 wherein adjusting a garbage collection schedule of the storage device based on placement of the data further comprises increasing a frequency at which garbage is collected in areas based a range of expected longevity values.

14. The computer program product of claim 7 wherein adjusting a garbage collection schedule of the storage device based on placement of the data further comprises decreasing a frequency at which garbage is collected in areas based a range of expected longevity values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2019
From: MILLER, ETHAN; COLGROVE, JOHN
To: PURE STORAGE, INC.
Reel/Frame 048233/0353 →
Continuity (1)
Continuation In Part 14834376 · Aug 24, 2015
Cited By (2)
US 12,353,746 US 12,639,101