Claims
- 1. A processor-readable medium comprising processor-executable instructions configured for executing a method comprising:
receiving one or more operational parameters characteristic of a storage device; and adapting a read cache pre-fetch depth based at least in part on the one or more parameters.
- 2. A processor-readable medium as recited in claim 1, wherein the one or more parameters comprise at least one operational performance metric, and the adapting a read pre-fetch depth comprises:
determining whether the at least one operational performance metric is not improving; and if the at least one performance metric is not improving, adjusting the read cache pre-fetch depth.
- 3. A processor-readable medium as recited in claim 2, wherein the at least one operational performance metric comprises a read cache hit ratio.
- 4. A processor-readable medium as recited in claim 1, wherein the one or more operational parameters comprise at least one component performance property metric, and the adapting the read cache pre-fetch depth comprises:
adjusting the read cache pre-fetch depth if the component performance property metric is less than a predetermined value.
- 5. A processor-readable medium as recited in claim 4, wherein the at least one component performance property metric comprises a disk response time.
- 6. A processor-readable medium as recited in claim 4, wherein the at least one component performance property metric comprises a read cache capacity.
- 7. A processor-readable medium as recited in claim 1, wherein the one or more operational parameters comprise at least one host workload metric, and the adapting the read cache pre-fetch depth comprises:
determining whether the host workload metric is increasing; and adjusting the read cache pre-fetch depth if the host workload metric is increasing.
- 8. A processor-readable medium as recited in claim 1, wherein the adapting the read cache pre-fetch depth comprises:
generating one or more metrics based on the one or more operational parameters; and varying the read cache pre-fetch depth in response to a variation in the one or more metrics.
- 9. A processor-readable medium as recited in claim 8, wherein the generating one or more metrics comprises:
generating a weight average of the one or more metrics.
- 10. A processor-readable medium as recited in claim 8, wherein the varying the read cache pre-fetch depth comprises:
adding a read cache pre-fetch depth delta to a read cache pre-fetch depth base.
- 11. A processor-readable medium as recited in claim 8, wherein the varying the read cache pre-fetch depth comprises:
subtracting a read cache pre-fetch depth delta to a read cache pre-fetch depth base.
- 12. A processor-readable medium as recited in claim 10, wherein the pre-fetch depth delta comprises a multiple of the one or more metrics.
- 13. A method comprising:
generating an operational parameter characteristic of a data storage device having a read cache; and adapting a read cache pre-fetch depth in response to a variation in the operational parameter.
- 14. A method as recited in claim 13, wherein the adapting the read cache pre-fetch depth comprises:
generating a performance metric based on the operational parameter; and adjusting the read cache pre-fetch depth if the performance metric is not substantially equal to a predetermined optimal value.
- 15. A method as recited in claim 13, wherein generating an operational parameter comprises:
generating a data storage device latency.
- 16. A method as recited in claim 15, wherein the generating the data storage device latency comprises:
looking up the data storage device latency in a latency table.
- 17. A method as recited in claim 15, wherein the generating the data storage device latency comprises:
calculating the data storage device latency.
- 18. A method as recited in claim 13, wherein the adapting a read cache pre-fetch depth comprises:
generating a read cache pre-fetch depth delta; and combining the read cache pre-fetch depth delta with a read cache pre-fetch depth base.
- 19. A method as recited in claim 13, wherein the data storage device is a Redundant Array of Independent Disks (RAID) having a plurality of disk drives, and the adapting the read cache pre-fetch depth comprises:
generating a disk latency associated with a selected disk drive in the plurality of disk drives; and varying the read cache pre-fetch depth based on the disk latency.
- 20. A method as recited in claim 19, wherein the generating a disk latency comprises:
associating a disk latency with each of one or more disk drives in the plurality of disk drives; storing the disk latency associated with each of the one or more disk drives in a table; and looking up the disk latency associated with the selected disk drive in the table.
- 21. A method as recited in claim 19, wherein the generating a disk latency comprises:
calculating a disk latency associated with each of a disk grouping having one or more disk drives in the plurality of disk drives.
- 22. A storage device comprising:
a mass storage medium; a read cache memory in operable communication with the mass storage medium; an input/output module operable to receive read requests; and a read cache pre-fetch adaptation module operable to vary a read cache pre-fetch depth in response to one or more operational parameters characteristic of the storage device.
- 23. A storage device as recited in claim 22, wherein the read cache pre-fetch adaptation module comprises an operational parameter generation module operable to generate the one or more operational parameters.
- 24. A storage device as recited in claim 23, wherein the read cache pre-fetch adaptation module further comprises an operational performance metric module operable to generate one or more operational performance metrics based on the one or more operational parameters.
- 25. A storage device as recited in claim 23, wherein the operational parameter generation module comprises:
an operational parameter table having an operational parameter associated with each of a plurality of data storage components.
- 26. A storage device as recited in claim 23, wherein the operational parameter generation module is further operable to dynamically determine the one or more operational parameters.
- 27. A storage device as recited in claim 23, wherein the one or more operational parameters comprise at least one of:
a host read arrival rate; a host read transfer length; a disk response time; a read cache capacity; a read cache hit ratio; or a read cache miss ratio.
- 28. A storage device comprising:
a mass storage media; a read cache in operable communication with the mass storage media, wherein pre-fetched data from the mass storage media may be stored in the read cache; an input/output module operable to receive a read request; and means for adapting a read cache pre-fetch depth in response to one or more operational parameters characteristic of the storage device.
- 29. A storage device as recited in claim 28, wherein the means for adapting the read cache pre-fetch depth comprises an operational parameter generator operable to generate the one or more operational parameters.
- 30. A storage device as recited in claim 28, wherein the means for adapting the read cache pre-fetch depth comprises an operational performance metric generator operable to generate one or more operational performance metrics indicative of storage device performance.
- 31. A storage device as recited in claim 29, wherein the means for adapting the read cache pre-fetch depth further comprises an operational performance metric generator in operable communication with the operational parameter generator and operable to generate one or more operational performance metrics indicative of storage device performance.
- 32. A storage device as recited in claim 31, wherein the means for adapting the read cache pre-fetch depth further comprises an operational analysis module in operable communication with the operational performance metric generator and the operational parameter generator and operable to adjust the read cache pre-fetch depth in response to variations in the one or more performance metrics and the one or more operational parameters.
- 33. A processor-readable medium having stored thereon a data structure for mapping address ranges to storage device component latencies, the data structure comprising:
a disk identifier field identifying a disk having a characteristic latency; an address range field identifying an address range corresponding to the disk identified by the disk identifier; and a latency field having a latency value representing the characteristic latency, such that a read cache pre-fetch depth used in a pre-fetch operation to fetch data in the address range may be adjusted according to the latency value.
- 34. A processor-readable medium as recited in claim 33 wherein the address range field comprises a logical unit (LUN) and a logical block address (LBA).
- 35. A processor-readable medium as recited in claim 33 wherein the latency field is dynamically adjusted in response to measurements of the characteristic latency.
- 36. A processor-readable medium having stored thereon a data structure for mapping address ranges to storage device group latencies, the data structure comprising:
a disk group identifier field identifying a disk group having a characteristic latency; an address range field identifying an address range corresponding to the disk group identified by the disk group identifier; one or more disk identifier fields identifying disk drives in the disk group; and a latency field having a latency value representing the characteristic latency, such that a read cache pre-fetch depth used in a pre-fetch operation to fetch data in the address range may be adjusted according to the latency value.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application contains subject matter related to the following co-pending applications: “Method of Cache Collision Avoidance in the Presence of a Periodic Cache Aging Algorithm,” identified by Ser. No. ______ HP Docket Number 200208024-1; “Method of Detecting Sequential Workloads to Increase Host Read Throughput,” identified by Ser. No. ______ HP Docket Number 100204483-1; “Method of Adaptive Cache Partitioning to Increase Host I/O Performance, identified by Ser. No. ______ HP Docket Number 200207897-1; and “Method of Triggering Read Cache Pre-Fetch to Increase Host Read Throughput,” identified by Ser. No. ______ HP Docket Number 200207344-1. The foregoing applications are incorporated by reference herein, assigned to the same assignee as this application and filed on even date herewith.