IP Library Granted Patent US 10,198,194
Granted Patent B2
US 10,198,194 · App. 14/834,376 · Granted Feb 5, 2019

Placing data within a storage device of a flash array

Inventors: John Colgrove (Los Altos, CA); Ethan Miller (Santa Cruz, CA)
Assignee: Pure Storage, Inc.
G06F3/0616G06F3/0641G06F3/0649G06F3/0652G06F3/0673G06F12/0238G06F12/0276G06F2212/1016G06F2212/1044G06F2212/7202G06F2212/7205G06F2212/7208G06F2212/7211
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,198,194
App. No.
14/834,376
Granted
Feb 5, 2019
Kind
B2
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 (19)

1. A method of placing data within a storage device of a flash array, the method comprising:

receiving, by a storage device of a plurality of storage devices in the flash array, information describing an expected longevity of data stored on the storage device, wherein the expected longevity is based on a number of references to 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 including: identifying wear leveling information associated with one or more memory locations in the storage device; and

determining the location for storing the data in dependence upon the wear leveling information associated with the one or more memory locations, wherein locations with relatively low levels of wear are selected to store data with relatively short expected longevities, and further wherein locations with relative high levels of wear are selected to store data with relatively long expected longevities;

determining a garbage collection schedule for the location based on the number of stored references to the data, wherein determining the garbage collection schedule comprises increasing garbage collection frequency on areas with a low number of references; and

providing, to a storage array controller, garbage collection statistics.

2. A storage device, the storage device configured to carry out the steps of:

receiving, by a storage device included in a plurality of storage devices of a flash array, information describing an expected longevity of data stored on the storage device, wherein the expected longevity is based on a number of references to 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 number of references to the data including: identifying wear leveling information associated with one or more memory locations in the storage device;

determining, by the storage device, a location for storing the data in dependence upon the expected longevity of the data including: identifying wear leveling information associated with one or more memory locations in the storage device; and

determining the location for storing the data in dependence upon the wear leveling information associated with the one or more memory locations, wherein locations with relatively low levels of wear are selected to store data with relatively short expected longevities, and further wherein locations with relative high levels of wear are selected to store data with relatively long expected longevities;

determining a garbage collection schedule for the location based on the number of stored references to the data, wherein determining the garbage collection schedule comprises increasing garbage collection frequency on areas with a low number of references; and

providing, to a storage array controller, garbage collection statistics.

3. A computer program product for placing data within a storage device of a flash array, the computer program product including a non-transitory computer readable medium that includes computer program instructions that, when executed, cause a storage device to carry out the steps of:

receiving, by a storage device of a plurality of storage devices of the flash array, information describing an expected longevity of a number of references to data stored on the storage device, wherein the expected longevity is based on a number of references to 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 including: identifying wear leveling information associated with one or more memory locations in the storage device; and

determining the location for storing the data in dependence upon the wear leveling information associated with the one or more memory locations, wherein locations with relatively low levels of wear are selected to store data with relatively short expected longevities, and further wherein locations with relative high levels of wear are selected to store data with relatively long expected longevities;

determining a garbage collection schedule for the location based on the number of stored references to the data, wherein determining the garbage collection schedule comprises increasing garbage collection frequency on areas with a low number of references; and

providing, to a storage array controller, garbage collection statistics.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2015
From: COLGROVE, JOHN; MILLER, ETHAN
To: PURE STORAGE, INC.
Reel/Frame 036406/0481 →
Continuity (1)
Related Publication 20170060444A1 · Mar 2, 2017
Cited By (1)
US 12,353,746