Scheduling Of Reconstructive I/O Read Operations In A Storage Environment
Abstract
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.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprising:
determining that a read request for data on a first storage device can be serviced by performing a reconstruct read request that reads data stored on a second storage device; and prior to issuing the read request to the first device and after determining that the read request for data on the first device can be serviced by performing the reconstruct read request, initiating the reconstruct read request configured to obtain data stored on the second storage device.
2 . The method of claim 1 further comprising determining whether to issue the read request to the first device, including:
determining whether the second device is predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior;
based on determining that the second device is predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior, servicing the read request by issuing the read request to the first device; and
based on determining that the second device is not predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior, servicing the read request with the reconstruct read request.
3 . The method of claim 1 further comprising:
determining that the second device is not exhibiting variable response time behavior;
determining whether the first device is not exhibiting variable response time behavior; and
based on determining that the first device is exhibiting variable response time behavior, servicing the read request with the reconstruct read request.
4 . The method of claim 3 further comprising, based on determining that the first device is not exhibiting variable response time behavior:
issuing the read request to the first device;
determining whether the read request to the first device returns a first result before the reconstruct read request returns a second result;
based on determining that the read request to the first device returns the first result before the reconstruct read request returns the second result, servicing the read request with the first result; and
based on determining that the read request to the first device does not return the first result before the reconstruct read request returns the second result, servicing the read request with the second result.
5 . The method of claim 4 further comprising based on determining that the read request to the first device returns the first result before the reconstruct read request returns the second result, discarding the second result.
6 . The method of claim 4 further comprising based on determining that the read request to the first device returns the first result before the reconstruct read request returns the second result, removing the reconstructive read request.
7 . The method of claim 4 further comprising based on determining that the read request to the first device does not return the first result before the reconstruct read request returns the second result, discarding the first result.
8 . The method of claim 4 further comprising based on determining that the read request to the first device does not return the first result before the reconstruct read request returns the second result, removing the read request from the first device.
9 . An apparatus comprising a computer processor and a computer memory, the computer memory including computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
determining that a read request for data on a first storage device can be serviced by performing a reconstruct read request that reads data stored on a second storage device; and prior to issuing the read request to the first device and after determining that the read request for data on the first device can be serviced by performing the reconstruct read request, initiating the reconstruct read request configured to obtain data stored on the second storage device.
10 . The apparatus of claim 9 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of determining whether to issue the read request to the first device, including:
determining whether the second device is predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior;
based on determining that the second device is predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior, servicing the read request by issuing the read request to the first device; and
based on determining that the second device is not predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior, servicing the read request with the reconstruct read request.
11 . The apparatus of claim 9 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
determining that the second device is not exhibiting variable response time behavior;
determining whether the first device is not exhibiting variable response time behavior; and
based on determining that the first device is exhibiting variable response time behavior, servicing the read request with the reconstruct read request.
12 . The apparatus of claim 11 further comprising, based on determining that the first device is not exhibiting variable response time behavior:
issuing the read request to the first device;
determining whether the read request to the first device returns a first result before the reconstruct read request returns a second result;
based on determining that the read request to the first device returns the first result before the reconstruct read request returns the second result, servicing the read request with the first result; and
based on determining that the read request to the first device does not return the first result before the reconstruct read request returns the second result, servicing the read request with the second result.
13 . The apparatus of claim 12 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of based on determining that the read request to the first device returns the first result before the reconstruct read request returns the second result, discarding the second result.
14 . The apparatus of claim 12 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of based on determining that the read request to the first device returns the first result before the reconstruct read request returns the second result, removing the reconstructive read request.
15 . The apparatus of claim 12 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of based on determining that the read request to the first device does not return the first result before the reconstruct read request returns the second result, discarding the first result.
16 . The apparatus of claim 13 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of based on determining that the read request to the first device does not return the first result before the reconstruct read request returns the second result, removing the read request from the first device.
17 . A computer program product including a non-transitory computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
determining that a read request for data on a first storage device can be serviced by performing a reconstruct read request that reads data stored on a second storage device; and prior to issuing the read request to the first device and after determining that the read request for data on the first device can be serviced by performing the reconstruct read request, initiating the reconstruct read request configured to obtain data stored on the second storage device.
18 . The computer program product of claim 17 further comprising computer program instructions that, when executed, cause a computer to carry out the step of determining whether to issue the read request to the first device, including:
determining whether the second device is predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior;
based on determining that the second device is predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior, servicing the read request by issuing the read request to the first device; and
based on determining that the second device is not predicted to exhibit variable response time behavior after the first device is predicted to stop exhibiting variable response time behavior, servicing the read request with the reconstruct read request.
19 . The computer program product of claim 17 further comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
determining that the second device is not exhibiting variable response time behavior;
determining whether the first device is not exhibiting variable response time behavior; and
based on determining that the first device is exhibiting variable response time behavior, servicing the read request with the reconstruct read request.
20 . The computer program product of claim 19 further comprising, based on determining that the first device is not exhibiting variable response time behavior:
issuing the read request to the first device;
determining whether the read request to the first device returns a first result before the reconstruct read request returns a second result;
based on determining that the read request to the first device returns the first result before the reconstruct read request returns the second result, servicing the read request with the first result; and
based on determining that the read request to the first device does not return the first result before the reconstruct read request returns the second result, servicing the read request with the second result.Join the waitlist — get patent alerts
Track US2022244865A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.