Memory device with data scrubbing capability and methods
US-2024393961-A1 · Nov 28, 2024 · US
US9436396B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9436396-B2 |
| Application number | US-201414513007-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 13, 2014 |
| Priority date | Sep 15, 2010 |
| Publication date | Sep 6, 2016 |
| Grant date | Sep 6, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for effectively scheduling read and write operations among a plurality of solid-state storage devices. A computer system comprises client computers and data storage arrays coupled to one another via a network. A data storage array utilizes solid-state drives and Flash memory cells for data storage. A storage controller within a data storage array comprises an I/O scheduler. The storage controller is configured to receive a read request targeted to the data storage medium, and identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request. In response to either detecting or predicting the first storage device will exhibit variable performance, the controller is configured to generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device.
Opening claim text (preview).
What is claimed is: 1. A computer system comprising: a data storage medium comprising a plurality of storage devices configured to store data in at least one redundant array of independent disks (RAID) group; and a data storage controller coupled to the data storage medium; wherein the data storage controller is configured to: receive a read request targeted to the data storage medium; identify at least a first storage device of the plurality of storage devices which currently contains data targeted by the read request; and make a determination, based on whether the first storage device has exceeded a first time period for responding to the read request without exceeding a second time period for responding to the read request, to generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device. 2. The computer system as recited in claim 1 , wherein the storage controller is configured to generate said reconstruct read request based at least in part on a recent history of I/O requests. 3. The computer system as recited in claim 1 , wherein the reconstruct read request includes at least two read requests targeted to at least two devices of the plurality of storage devices, and wherein the storage controller is configured to schedule the at least two read requests such that they complete at approximately a same time. 4. The computer system as recited in claim 3 , wherein the storage controller is further configured to partition a received request into multiple requests, and insert a reconstruct read request between the multiple requests. 5. The computer system as recited in claim 3 , wherein each of the plurality of storage devices includes a queue for storing pending operations, and wherein the storage controller is configured to schedule the at least two read requests such that they complete at approximately a same time by storing each of the at least two read requests at approximately a same queue depth in a queue of a corresponding storage device, or a queue depth with a predicted approximately equal completion time. 6. The computer system as recited in claim 5 , wherein the read request has a given priority, and wherein the storage controller is configured to schedule both of the at least two read requests with a same priority as the given priority. 7. The computer system as recited in claim 5 , wherein the read request has a given priority, and wherein the storage controller is configured to schedule each of the at least two read requests to have a different priority from one another. 8. The computer system as recited in claim 7 , wherein the storage controller is configured to determine a priority with which to schedule each of the at least two read requests based upon a state of a device to which a read of the at least two read requests is directed. 9. The computer system as recited in claim 8 , wherein said state includes one or more of a queue occupancy level of a corresponding device, and an average response latency of a corresponding device. 10. The computer system as recited in claim 1 , wherein the storage controller is further configured to schedule relatively long latency operations such that no more than N devices of the plurality of devices in the RAID group is performing a scheduled long latency operation at any given time. 11. The computer system as recited in claim 10 , wherein in response to detecting a rate of requests being received exceeds a given threshold, the storage controller is configured to schedule relatively long latency operations such that more than N devices within a RAID group is permitted to be busy at any given time. 12. The computer system as recited in claim 11 , wherein in response to detecting the rate of requests has fallen below a threshold, the storage controller is configured to schedule relatively long latency operations such that no more than N devices of the plurality of devices in the RAID group is performing a scheduled long latency operation at any given time. 13. The computer system as recited in claim 1 , wherein said data stored on the one or more devices of the plurality of storage devices other than the first storage device comprises user data and parity data. 14. The computer system of claim 1 , wherein making a determination to generate a reconstruct read request includes making the determination further based on a programmable weighting indicating a preference for one of read response latency or system load. 15. The computer system of claim 1 , wherein making a determination to generate a reconstruct read request includes making the determination further based on at least one of: current load of the device; types of requests being received; priority of requests; and state of the other devices in the system. 16. A method for use in a computing system, the method comprising: receiving a read request targeted to a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; identifying at least a first storage device of the plurality of storage devices which currently contains data targeted by the read request; and making a determination, based on whether the first storage device has exceeded a first time period for responding to the read request without exceeding a second time period for responding to the read request, to generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device. 17. The method as recited in claim 16 , further comprising generating said reconstruct read request based at least in part on a recent history of I/O requests. 18. The method as recited in claim 16 , wherein the reconstruct read request includes at least two read requests targeted to at least two devices of the plurality of storage devices, and wherein the method further comprises scheduling the at least two read requests such that they complete at approximately a same time. 19. A non-transitory computer readable storage medium comprising program instructions, wherein when executed by a processing device, the program instructions are operable to: receive a read request targeted to a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; identify at least a first storage device of the plurality of storage devices which currently contains data targeted by the read request; and make a determination, based on whether the first storage device has exceeded a first time period for responding to the read request without exceeding a second time period for responding to the read request, to generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device.
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
in relation to throughput · CPC title
Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays · CPC title
Non-volatile semiconductor memory arrays · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.