US2022244865A1PendingUtilityA1

Scheduling Of Reconstructive I/O Read Operations In A Storage Environment

Assignee: PURE STORAGE INCPriority: Sep 15, 2010Filed: Apr 18, 2022Published: Aug 4, 2022
Est. expirySep 15, 2030(~4.1 yrs left)· nominal 20-yr term from priority
G06F 3/067G06F 3/0659G06F 3/0613G06F 3/0685G06F 3/0688G06F 3/0653G06F 3/061G06F 3/0629G06F 11/1076G06F 11/0727G06F 12/0804G06F 3/0665G06F 3/0619G06F 12/00G06F 11/0751G06F 3/0689G06F 3/06G06F 13/20G06F 3/0611G06F 3/0646
74
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.