Virtual container storage interface controller
US-12175078-B2 · Dec 24, 2024 · US
US10296223B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10296223-B2 |
| Application number | US-201615382788-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 19, 2016 |
| Priority date | Dec 23, 2015 |
| Publication date | May 21, 2019 |
| Grant date | May 21, 2019 |
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.
Embodiments of the present disclosure provide methods and apparatuses for controlling data reading from a storage system. The storage system includes a plurality of storage devices and a backup of the data is stored in each of the plurality of storage devices. A method comprises: receiving a read request for reading data from the storage system; determining, from the plurality of storage devices, a target storage device for processing the read request according to the number of outstanding read requests and the number of completed read requests recorded for each storage device; and sending the read request to the target storage device. The methods or apparatuses according to the embodiments of the present disclosure can reduce I/O response time and improve I/O performance.
Opening claim text (preview).
We claim: 1. A method for controlling data reading from a storage system, the storage system including a plurality of storage devices and a backup of the data is stored in each of the plurality of storage devices, the method comprising: receiving, at a computing device, a read request for reading data from the storage system; determining, from the plurality of storage devices, a target storage device for processing the read request according to the number of outstanding read requests and the number of completed read requests recorded for each storage device, wherein determining, from the plurality of storage devices, the target storage device for processing the read request according to the number of outstanding read requests and the number of completed read requests recorded for each storage device comprises: determining, from the plurality of storage devices, at least one storage device with the smallest number of outstanding read requests as the target storage device, and determining, from a group of storage devices with the smallest number of outstanding read requests among the plurality of storage devices, a storage device with the number of completed read requests that exceeds a predefined threshold as the target storage device; and sending the read request to the target storage device. 2. The method according to claim 1 , wherein the number of outstanding read requests and the number of completed read requests recorded for each storage device are updated by: increasing the number of outstanding read requests for a first storage device of the plurality of storage devices by one, if the first storage device receives a new read request; and decreasing the number of outstanding read requests for a second storage device of the plurality of storage devices by one and increasing the number of completed read requests for the second storage device by one, if the second storage device finishes processing a read request. 3. The method according to claim 1 , further comprising: resetting the number of completed read requests for each of the plurality of storage devices to zero after sending the read request to the target storage device. 4. The method according to claim 1 , wherein determining, from the plurality of storage devices, a storage device with the smallest number of outstanding read requests as the target storage device further comprises: in response to none of the group of storage devices having the number of completed read requests that exceeds the predefined threshold, selecting a storage device from the group of storage devices in a random manner as the target storage device. 5. The method according to claim 1 , wherein determining, from the plurality of storage devices, a storage device with the smallest number of outstanding read requests as the target storage device further comprises: determining, from a group of storage devices with the smallest number of outstanding read requests among the plurality of storage devices, a storage device with the largest number of completed read requests as the target storage device. 6. The method according to claim 1 , wherein the number of outstanding read requests and the number of completed read requests recorded for each storage device are updated by: resetting the number of completed read requests for a third storage device of the plurality of storage devices to zero and setting an index of the target storage device for processing the read requests as invalid, if the number of outstanding read requests for the third storage device is zero and no new read request reaches the third storage device; and wherein determining, from the plurality of storage devices, a target storage device for processing the read requests according to the number of outstanding read requests and the number of completed read requests recorded for each storage device comprises: in response to the index of the target storage device being set as invalid, selecting a storage device from the plurality of storage devices in a random manner as the target storage device. 7. An apparatus for controlling data reading from a storage system, the storage system including a plurality of storage devices and a backup of the data is stored in each of the plurality of storage devices, the apparatus comprising at least one hardware processor configured to implement: a counting module configured to record, for each of the plurality of storage devices, the number of currently outstanding read requests and the number of completed read requests within a predefined time period; a read request receiving module configured to receive a read request for reading data from the storage system; a determining module configured to determine, from the plurality of storage devices, a target storage device for processing the read request according to the number of outstanding read requests and the number of completed read requests recorded for each storage device, wherein the determining module is further configured to: determine, from the plurality of storage devices, a storage device with the smallest number of outstanding read requests as the target storage device, and determine, from a group of storage devices with the smallest number of outstanding read requests among the plurality of storage devices, a storage device with the number of completed read requests that exceeds a predefined threshold as the target storage device; and a read request distributing module configured to send the read request to the target storage device. 8. The apparatus according to claim 7 , wherein the counting module is further configured to: increase the number of outstanding read requests for a first storage device of the plurality of storage devices by one, if the first storage device receives a new read request; and decrease the number of outstanding read requests for a second storage device of the plurality of storage devices by one and increase the number of completed read requests for the second storage device by one, if the second storage device finishes processing a read request. 9. The apparatus according to claim 7 , wherein the counting module is further configured to: reset the number of completed read requests for each of the plurality of storage devices to zero after the read request is sent to the target storage device. 10. The apparatus according to claim 7 , wherein the determining module is further configured to: in response to none of the group of storage devices having the number of completed read requests that exceeds the predefined threshold, select a storage device from the group of storage devices in a random manner as the target storage device. 11. The apparatus according to claim 7 , wherein the determining module is further configured to: determine, from a group of storage devices with the smallest number of outstanding read requests among the plurality of storage devices, a storage device with the largest number of completed read requests as the target storage device. 12. The apparatus according to claim 7 , wherein the counting module is further configured to reset the number of completed read requests for a third storage device of the plurality of storage devices to zero and set an index of the target storage device for processing the read requests as invalid, if the number of outstanding read requests for the third storage device is zero and no new read request reaches the third storage device; and wherein the determining module is further configured to, in response to the index of the target storage device being set as invalid, select a storage device from the plurality of storage devices in a random manner as the target storage device.
Improving I/O performance · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
by changing the path, e.g. traffic rerouting, path reconfiguration · CPC title
Plurality of storage devices · CPC title
Configuration or reconfiguration of storage systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.