Enhanced multi-streaming though statistical analysis
First Claim
1. A method, comprising:
- receiving a plurality of write requests at a Solid State Drive (SSD), each of the plurality of write requests associated with a stream;
determining a plurality of write times, each of the plurality of write times associated with one of the plurality of write requests;
receiving a plurality of invalidate requests at the SSD, each of the plurality of invalidate requests deleting data written by one of the plurality of write requests;
determining a plurality of invalidate times, each of the plurality of invalidate times associated with one of the plurality of invalidate requests;
calculating statistics for the stream, the calculated statistics responsive to the plurality of write times and the plurality of invalidate times; and
using the calculated statistics to increase a likelihood that all data written to a block on the SSD will be invalidated around the same time, including;
receiving a new write request, the new write request including new data; and
selecting a destination to store the new data using the calculated statistics, the destination being one of a block on the SSD and a second-order stream.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for using a Solid State Drive (SSD) (505) are described. Reception circuitry (510) may receive write requests (1610, 1615, 1620, 1625) and invalidate requests (1630, 1635, 1640) from a first stream (305, 320, 335, 350). The write requests (1610, 1615, 1620, 1625) may request that data be written to storage (520) on the SSD (505); invalidate requests (1630, 1635, 1640) may invalidate data written to the storage (520). A statistics calculation logic (1705) may calculate statistics (1410, 1415, 1510) for the stream based on the write requests (1610, 1615, 1620, 1625) and the invalidate requests (1630, 1635, 1640). A performance logic (1710) may use the calculated statistics (1410, 1415, 1510) to improve the performance of the SSD (505).
49 Citations
18 Claims
-
1. A method, comprising:
-
receiving a plurality of write requests at a Solid State Drive (SSD), each of the plurality of write requests associated with a stream; determining a plurality of write times, each of the plurality of write times associated with one of the plurality of write requests; receiving a plurality of invalidate requests at the SSD, each of the plurality of invalidate requests deleting data written by one of the plurality of write requests; determining a plurality of invalidate times, each of the plurality of invalidate times associated with one of the plurality of invalidate requests; calculating statistics for the stream, the calculated statistics responsive to the plurality of write times and the plurality of invalidate times; and using the calculated statistics to increase a likelihood that all data written to a block on the SSD will be invalidated around the same time, including; receiving a new write request, the new write request including new data; and selecting a destination to store the new data using the calculated statistics, the destination being one of a block on the SSD and a second-order stream. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A Solid State Drive (SSD), comprising:
-
storage for data; reception circuitry to receive a plurality of write requests, a plurality of invalidate requests from a stream, and a new write request, the plurality of write requests and the plurality of invalidate requests affecting the data in the storage, the new write request including new data; statistics calculation logic to calculate statistics for the stream from the plurality of write requests and the plurality of invalidate requests; and performance logic including a storage selector to select a destination to store the new data responsive to the calculated statistics, the destination being one of a block on the SSD and a second-order stream, thereby increasing a likelihood that all data written to the destination will be invalidated around the same time. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A logic for a Solid State Drive (SSD), comprising:
-
a timing logic to determine a plurality of write times for a plurality of write requests and a plurality of invalidate times for a plurality of invalidate requests, and to pair individual write times for individual write requests with individual invalidate times for corresponding individual invalidate requests; a data life span logic to calculate data life spans from the corresponding write times from the plurality of write times and invalidate times from the plurality of invalidate times; statistics calculation logic to calculate statistics for a first stream from the calculated data life spans; and performance logic to select a destination to store a new data responsive to the calculated statistics, the destination being one of a block on the SSD and a second-order stream, thereby increasing a likelihood that all data written to the destination will be invalidated around the same time. - View Dependent Claims (15, 16, 17, 18)
-
Specification