SCALING PERFORMANCE FOR RAID STORAGE CONTROLLERS BY PREDICTIVELY CACHING DATA FOR HOST WRITE REQUESTS
First Claim
1. A Redundant Array of Independent Disks (RAID) storage controller operable to manage a RAID volume implemented on a plurality of storage devices, the storage controller comprising:
- a memory operable to store a queue of write requests that are directed to the RAID volume; and
an Input/Output (I/O) processor operable to detect a stream of write requests in the queue that are directed to a sequence of Logical Block Addresses (LBAs) at the RAID volume, to predict, based on the stream, LBAs for new write requests, to cache data for the predicted LBAs from the storage devices to the storage controller, to receive the new write requests, and to utilize the cached data for the predicted LBAs to generate parity data for the new write requests.
5 Assignments
0 Petitions
Accused Products
Abstract
Methods and structure for predictively caching data to service host write requests. One embodiment includes a Redundant Array of Independent Disks (RAID) storage controller able to manage a RAID volume implemented on a plurality of storage devices. The storage controller includes a memory able to store a queue of write requests that are directed to the RAID volume, and an Input/Output (I/O) processor. The I/O processor is able to detect a stream of write requests in the queue that are directed to a sequence of Logical Block Addresses (LBAs) at the RAID volume, to predict, based on the stream, LBAs for new write requests, to cache data for the predicted LBAs from the storage devices to the storage controller, to receive the new write requests, and to utilize the cached data from the predicted LBAs to generate parity data for the new write requests.
20 Citations
25 Claims
-
1. A Redundant Array of Independent Disks (RAID) storage controller operable to manage a RAID volume implemented on a plurality of storage devices, the storage controller comprising:
-
a memory operable to store a queue of write requests that are directed to the RAID volume; and an Input/Output (I/O) processor operable to detect a stream of write requests in the queue that are directed to a sequence of Logical Block Addresses (LBAs) at the RAID volume, to predict, based on the stream, LBAs for new write requests, to cache data for the predicted LBAs from the storage devices to the storage controller, to receive the new write requests, and to utilize the cached data for the predicted LBAs to generate parity data for the new write requests. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
identifying a queue of write requests at a storage controller that are directed to a Redundant Array of Independent Disks (RAID) volume implemented on a plurality of storage devices; detecting a stream of write requests in the queue that are directed to a sequence of Logical Block Addresses (LBAs) at the RAID volume; predicting, based on the stream, LBAs for new write requests; caching data for the predicted LBAs from the storage devices to the storage controller; receiving the new write requests; and utilizing the cached data for the predicted LBAs to generate parity data for the new write requests. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium embodying programmed instructions which, when executed by a processor, are operable for performing a method comprising:
-
identifying a queue of write requests at a storage controller that are directed to a Redundant Array of Independent Disks (RAID) volume implemented on a plurality of storage devices; detecting a stream of write requests in the queue that are directed to a sequence of Logical Block Addresses (LBAs) at the RAID volume; predicting, based on the stream, LBAs for new write requests; caching data for the predicted LBAs from the storage devices to the storage controller; receiving the new write requests; and utilizing the cached data for the predicted LBAs to generate parity data for the new write requests. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A Redundant Array of Independent Disks (RAID) storage controller operable to manage a RAID volume, the storage controller comprising:
-
a memory operable to store host write requests that are directed to Logical Block Addresses (LBAs) at the RAID volume; and an Input/Output (I/O) processor operable to anticipate, based on the stored host write requests, LBAs that will be accessed in the future by host write requests that have yet to be received at the storage controller, to cache data for the anticipated LBAs from persistent storage at the RAID volume to the storage controller, to receive new host write requests, and to utilize the cached data for the predicted LBAs to service the newly received host write requests. - View Dependent Claims (22, 23)
-
-
24. A method comprising:
-
storing, at a storage controller, host write requests that are directed to Logical Block Addresses (LBAs) of a Redundant Array of Independent Disks (RAID) volume; anticipating, based on the stored host write requests, LBAs that will be accessed in the future by host write requests that have yet to be received at the storage controller; caching data for the anticipated LBAs from persistent storage at the RAID volume to the storage controller; receiving new host write requests; and utilizing the cached data from the anticipated LBAs to service the newly received host write requests. - View Dependent Claims (25)
-
Specification