US2018095788A1PendingUtilityA1

Scheduling operations for a storage device

Assignee: PURE STORAGE INCPriority: Oct 4, 2016Filed: Jan 30, 2017Published: Apr 5, 2018
Est. expiryOct 4, 2036(~10.2 yrs left)· nominal 20-yr term from priority
G06F 3/0619G06F 2209/482G06F 3/0689G06F 12/0253G06F 2212/702G06F 3/0665G06F 9/4881G06F 21/572G06F 9/4401G06F 3/0632G06F 3/0607G06F 2212/7205G06F 3/064G06F 16/252G06F 16/211G06F 16/2282G06F 3/0688G06F 3/0652G06F 3/0655G06F 3/061G06F 12/0246G06F 3/065
60
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A request to perform an operation at a storage device of a storage array may be received. Schedulable units of the storage device may be identified. An availability of each schedulable unit of the schedulable units of the storage device may be determined. The requested operation may be scheduled based on the availability of each of the schedulable units of the storage device. Furthermore, the requested operation may be performed at the storage device based on the scheduling.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method comprising:
 receiving a request to perform a write operation at a solid-state storage device of a solid-state storage array;   receiving, by a processing device of a host system associated with the solid-state storage array, a topology of the solid-state storage device comprising an arrangement of a plurality of schedulable units of the solid-state storage device;   identifying, by the processing device of the host system, the plurality of schedulable units of the solid-state storage device based on the topology;   determining, by the processing device, other access operations that are currently being performed or have been scheduled to be performed by the plurality of schedulable units of the solid-state storage device;   scheduling, by an application that is executed by the processing device of the host system, the requested write operation based on the determination of the other access operations that are being performed or have been scheduled to be performed by the plurality of schedulable units of the solid-state storage device; and   performing the requested write operation based on the scheduling.   
     
     
         2 . The method of  claim 1 , wherein the other access operations correspond to read operations or write operations that are being performed or have been scheduled to be performed by the plurality of schedulable units of the solid-state storage device correspond to a garbage collection process. 
     
     
         3 . The method of  claim 1 , wherein the scheduling of the requested write operation comprises:
 assigning the requested write operation to be performed by a particular schedulable unit of the plurality of schedulable units that is available to perform the requested write operation, wherein data of the write operation is stored at a data block of the particular schedulable unit.   
     
     
         4 . The method of  claim 1 , further comprising:
 receiving a read operation for data stored at a particular schedulable unit of the plurality of schedulable units;   determining that the particular schedulable unit is performing another read operation or write operation and is not available to perform the read operation; and   in response to determining that the particular schedulable unit is not available, retrieving additional data from a plurality of other schedulable units from a plurality of other solid-state storage devices.   
     
     
         5 . The method of  claim 4 , further comprising:
 reconstructing the data stored at the particular schedulable unit based on the additional data from the plurality of other schedulable units from the plurality of other solid-state storage devices.   
     
     
         6 . The method of  claim 1 , further comprising:
 identifying an entity associated with the requested write operation; and   determining a priority associated with the entity, wherein the scheduling of the requested write operation is based on the determined priority.   
     
     
         7 . The method of  claim 6 , wherein the scheduling of the requested write operation comprises:
 assigning the requested write operation to a particular schedulable unit of the plurality of schedulable units that is available to perform the requested write operation earlier than another particular schedulable unit of the plurality of schedulable units when the priority associated with the entity indicates a higher priority than another entity.   
     
     
         8 . The method of  claim 1 , wherein the application is associated with an operating system. 
     
     
         9 . The method of  claim 1 , wherein the application is associated with a user space. 
     
     
         10 . A system comprising:
 a storage array comprising a plurality of storage volumes; and   a storage controller coupled to the storage array, the storage controller comprising a processing device, the processing device to:
 receive a request to perform an operation at a storage device of the storage array; 
 receive a topology of the storage device, comprising an arrangement of a plurality of schedulable units of the storage device; 
 identify the plurality of schedulable units of the storage device based on the topology; 
 determine an availability of each schedulable unit of the plurality of schedulable units of the storage device; and 
 schedule the requested operation based on the availability of each of the plurality of schedulable units of the storage device; and 
 perform the requested operation at the storage device based on the scheduling. 
   
     
     
         11 . The system of  claim 10 , wherein to determine the availability of each schedulable unit of the plurality of schedulable units, the processing device is further to:
 determine read operations or write operations that are being performed or have been scheduled to be performed by each schedulable unit of the plurality of schedulable units of the storage device.   
     
     
         12 . The system of  claim 11 , wherein read operations or write operations correspond to a garbage collection process. 
     
     
         13 . The system of  claim 10 , wherein to schedule the requested operation, the processing device is further to:
 assign the requested operation to be performed by a particular schedulable unit of the plurality of schedulable units that is available to perform the requested write operation.   
     
     
         14 . The system of  claim 10 , wherein the processing device is further to:
 receive a read operation for data stored at a particular schedulable unit of the plurality of schedulable units;   determine that the particular schedulable unit is performing another read operation or write operation and is not available to perform the read operation; and   in response to determining that the particular schedulable unit is not available, retrieve additional data from a plurality of other schedulable units from a plurality of other storage devices.   
     
     
         15 . The system of  claim 14 , wherein the processing device is further to:
 reconstruct the data stored at the particular schedulable unit based on the additional data from the plurality of other schedulable units from the plurality of other storage devices.   
     
     
         16 . The system of  claim 10 , wherein the scheduling of the requested operation is based on a priority associated with a user account of the requested operation. 
     
     
         17 . The system of  claim 10 , wherein the storage controller to execute an application associated with an operating system. 
     
     
         18 . The system of  claim 10 , wherein the storage controller to execute an application associated with a user space. 
     
     
         19 . A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device of a host system to:
 receive a request to perform an operation at a storage device of a storage array;   receive a topology of the storage device, comprising an arrangement of a plurality of schedulable units of the storage device;   identify the plurality of schedulable units of the storage device based on the topology;   determine an availability of each schedulable unit of the plurality of schedulable units of the storage device; and   schedule, by the processing device, the requested operation based on the availability of each of the plurality of schedulable units of the storage device; and   perform the requested operation at the storage device based on the scheduling.   
     
     
         20 . The non-transitory computer readable storage medium of  claim 19 , wherein to determine the availability of each schedulable unit of the plurality of schedulable units, the processing device is further to:
 determine read operations or write operations that are being performed or have been scheduled to be performed by each schedulable unit of the plurality of schedulable units of the storage device.   
     
     
         21 . The non-transitory computer readable storage medium of  claim 20 , wherein read operations or write operations correspond to a garbage collection process. 
     
     
         22 . The non-transitory computer readable storage medium of  claim 19 , wherein to schedule the requested operation, the processing device is further to:
 assign the requested operation to be performed by a particular schedulable unit of the plurality of schedulable units that is available to perform the requested write operation.   
     
     
         23 . The non-transitory computer readable storage medium of  claim 19 , wherein the processing device is further to:
 receive a read operation for data stored at a particular schedulable unit of the plurality of schedulable units;   determine that the particular schedulable unit is performing another read operation or write operation and is not available to perform the read operation; and   in response to determining that the particular schedulable unit is not available, retrieve additional data from a plurality of other schedulable units from a plurality of other storage devices.   
     
     
         24 . The non-transitory computer readable storage medium of  claim 23 , wherein the processing device is further to:
 reconstruct the data stored at the particular schedulable unit based on the additional data from the plurality of other schedulable units from the plurality of other storage devices.   
     
     
         25 . The non-transitory computer readable storage medium of  claim 19 , wherein the processing device to execute an application associated with an operating system. 
     
     
         26 . The non-transitory computer readable storage medium of  claim 19 , wherein the processing device to execute an application associated with a user space.

Join the waitlist — get patent alerts

Track US2018095788A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.