Scheduling of reconstructive I/O read operations in a storage environment

US9436396B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9436396-B2
Application numberUS-201414513007-A
CountryUS
Kind codeB2
Filing dateOct 13, 2014
Priority dateSep 15, 2010
Publication dateSep 6, 2016
Grant dateSep 6, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9436396B2 cover?
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. …
Who is the assignee on this patent?
Pure Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 06 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).