MANAGING DATA PLACEMENT ON FLASH-BASED STORAGE BY USE
First Claim
1. A computer-implemented method for writing data to a selected location on a flash-based storage device, the method comprising:
- receiving a request to write data to a flash-based storage device;
qualifying a frequency of access associated with the data to be written to the flash-based storage device;
selecting a data placement location on the flash based storage device for the data to be written based on the qualified frequency of access of the data;
sending placement information to the flash-based storage device, indicating the selected data placement location for the data to be written; and
storing the requested data at the selected data placement location on the flash-based storage device,wherein the preceding steps are performed by at least one processor.
2 Assignments
0 Petitions
Accused Products
Abstract
A storage placement system is described herein that uses an operating system'"'"'s knowledge related to how data is being used on a computing device to more effectively communicate with and manage flash-based storage devices. Cold data that is not frequently used can be differentiated from hot data clusters and placed in worn areas, while hot data that is frequently used can be kept readily accessible. By clustering hot data together and cold data in separate sections, the system is better able to perform wear leveling and prolong the usefulness of the flash medium. Storage of data in the cloud or other storage can intelligently persist data in a location for a short time before coalescing data to write in a block. Thus, the system leverages the operating system'"'"'s knowledge of how data has been and will be used to place data on flash-based storage devices in an efficient way.
75 Citations
20 Claims
-
1. A computer-implemented method for writing data to a selected location on a flash-based storage device, the method comprising:
-
receiving a request to write data to a flash-based storage device; qualifying a frequency of access associated with the data to be written to the flash-based storage device; selecting a data placement location on the flash based storage device for the data to be written based on the qualified frequency of access of the data; sending placement information to the flash-based storage device, indicating the selected data placement location for the data to be written; and storing the requested data at the selected data placement location on the flash-based storage device, wherein the preceding steps are performed by at least one processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer system for managing data placement on flash-based storage by use, the system comprising:
-
a processor and memory configured to execute software instructions embodied within the following components; a flash-based storage device that includes at least some flash-based memory for non-volatile data storage; a data qualification component that qualifies data received by an operating system by a frequency with which the data is likely to be written, wherein data that is written often is called hot data and data that is written infrequently is called cold data; a data monitoring component that monitors data read and written by an operating system and stores historical use information for data; a data placement component that determines one or more locations to which data to be written to the flash-based storage device will be written among all of the locations available from the device; and a storage communication component that provides an interface between the other components of the system and the flash-based storage device. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable storage medium comprising instructions for controlling a computer system to select a placement location for data to be written on a flash-based storage device, wherein the instructions, upon execution, cause a processor to perform actions comprising:
-
receiving information that qualifies an access frequency of data to be written to the flash-based storage device; upon determining that the data will be infrequently written, identifying one or more worn locations of the flash-based storage device at which the infrequently written data can reside to retain less worn locations available for other data; and selecting one of the identified more worn locations to which to write the data; and upon determining that the data will be frequently written, locating any other frequently written data related to the data to be written; and selecting a less worn location near the other frequently written data at which to place the data to be written; and reporting the selected placement to a component for writing the data to the selected location.
-
Specification