Read ahead storage control
First Claim
Patent Images
1. An apparatus comprising:
- a storage processor executing read commands from a host to retrieve data stored in a storage space; and
a cache manager that identifies a read stream of two or more of the read commands that are for sequential data, that derives a quantitative value for the identified read stream in terms of stream block count and time, that in addition to streaming requested data from the storage space associated with the identified read stream also streams a speculative stream of an indeterminate number of blocks, indeterminate at the time the speculative stream begins, from the storage space when the quantitative value is greater than a predetermined threshold value until switching from streaming the speculative stream of the indeterminate number of blocks to streaming other requested data associated with subsequent read commands from the host based on a comparison of a storage location of requested data associated with one of the subsequent read commands from the host to a contemporaneous storage location of the speculative stream of the indeterminate number of blocks.
5 Assignments
0 Petitions
Accused Products
Abstract
Method and apparatus for managing the storage of data in a cache memory by placing pending read requests for sequential data in a dedicated read ahead stream control (RASC) data structure, and further configured for dynamically switching both ways, in response to data stored in the RASC, between speculative non-requested read ahead data streaming to read behind stream locking on the read requests in the RASC.
-
Citations
11 Claims
-
1. An apparatus comprising:
-
a storage processor executing read commands from a host to retrieve data stored in a storage space; and a cache manager that identifies a read stream of two or more of the read commands that are for sequential data, that derives a quantitative value for the identified read stream in terms of stream block count and time, that in addition to streaming requested data from the storage space associated with the identified read stream also streams a speculative stream of an indeterminate number of blocks, indeterminate at the time the speculative stream begins, from the storage space when the quantitative value is greater than a predetermined threshold value until switching from streaming the speculative stream of the indeterminate number of blocks to streaming other requested data associated with subsequent read commands from the host based on a comparison of a storage location of requested data associated with one of the subsequent read commands from the host to a contemporaneous storage location of the speculative stream of the indeterminate number of blocks. - View Dependent Claims (2, 3, 4, 11)
-
-
5. A method comprising:
-
receiving read commands for data that are stored in a storage space; identifying a read stream of two or more of the read commands that are for sequential data; deriving a quantitative value for the identified read stream in terms of stream block count and time; comparing the quantitative value to a predetermined threshold value; when the comparing values step determines the quantitative value exceeds the predetermined threshold value, streaming a speculative stream of an indeterminate number of blocks, indeterminate at the time the speculative stream begins, from the storage space in addition to streaming the data associated with the identified read stream; during the streaming the indeterminate number of blocks step, comparing a location of data associated with a subsequent read command from the host to a contemporaneous storage location of the streaming the speculative stream of the indeterminate number of blocks; and when the comparing locations step satisfies a predefined criteria, switching from streaming the speculative stream of the indeterminate number of blocks to streaming data associated with other read commands from the host. - View Dependent Claims (6, 7, 8, 9, 10)
-
Specification