Virtual container storage interface controller
US-12175078-B2 · Dec 24, 2024 · US
US9436389B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9436389-B2 |
| Application number | US-201414529436-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 31, 2014 |
| Priority date | Mar 8, 2007 |
| Publication date | Sep 6, 2016 |
| Grant date | Sep 6, 2016 |
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.
Automated management of shared I/O resources involves use of a policy engine for implementing I/O scheduling group I/O policies. The I/O policies are used for determining whether corresponding I/O requests should be issued to a shared storage system immediately or should be delayed via corresponding policy-based queues. In the context of database systems, a database administrator can specify policies regarding how I/O resources should be used and the database system itself enforces the policies, rather than requiring the database administrator enforce the I/O usage of the database and of the individual users.
Opening claim text (preview).
What is claimed is: 1. A computer-executed method for managing shared storage input-output (I/O) resources, comprising: receiving a request for an I/O operation on a storage system to which a plurality of requests for I/O operations have been recently issued; wherein the plurality of requests comprises a first set of requests that are associated with a first I/O scheduling group of a plurality of I/O scheduling groups, and a second set of requests that are associated with a second I/O scheduling group of the plurality of I/O scheduling groups; determining an I/O scheduling group of the plurality of I/O scheduling groups with which the received request is associated; in response to determining that the received request is associated with the first I/O scheduling group: identifying a first I/O policy, associated with the first I/O scheduling group, that specifies a first I/O allocation that dictates a first maximum threshold, wherein the first maximum threshold is one of: a first maximum I/O rate at which I/O operations should issue to said storage system for requests associated with said first I/O scheduling group, or a first maximum throughput rate at which I/O operations should issue to said storage system for requests associated with said first I/O scheduling group, determining an I/O statistic associated with I/O operations that have recently issued to said storage system for said first I/O scheduling group, wherein the I/O statistic is one of: I/O rate and I/O throughput; determining, based at least in part on whether said I/O statistic indicates that said first maximum threshold has been exceeded, whether to place said request in an I/O request queue, and in response to determining to place said request in an I/O request queue: placing said request in a particular I/O request queue associated with said first I/O scheduling group, and issuing said request to said storage system when said request is dequeued from said particular I/O request queue based on said first I/O policy, for performance of said I/O operation by said storage system; wherein a second I/O policy associated with said second I/O scheduling group specifies a second I/O allocation that dictates a second maximum threshold, wherein the second maximum threshold is one of: a second maximum I/O rate at which I/O operations should issue to said storage system for requests associated with said second I/O scheduling group, or a second maximum throughput rate at which I/O operations should issue to said storage system for requests associated with said second I/O scheduling group; determining whether said I/O statistic associated with I/O operations that have recently issued to said storage system for said first I/O scheduling group is less than said first maximum threshold; and in response to determining that said I/O statistic is less than said first maximum threshold: issuing more requests associated with said second I/O scheduling group than prescribed by said second maximum threshold; wherein the method is performed by one or more computing devices. 2. One or more non-transitory computer-readable media storing instructions, wherein the instructions include: instructions which, when executed by one or more hardware processors, cause receiving a request for an I/O (input/output) operation on a storage system to which a plurality of requests for I/O operations have been recently issued; wherein the plurality of requests comprises a first set of requests that are associated with a first I/O scheduling group of a plurality of I/O scheduling groups, and a second set of requests that are associated with a second I/O scheduling group of the plurality of I/O scheduling groups; instructions which, when executed by one or more hardware processors, cause determining an I/O scheduling group of the plurality of I/O scheduling groups with which the received request is associated; instructions which, when executed by one or more hardware processors, cause, in response to determining that the received request is associated with the first I/O scheduling group: identifying a first I/O policy, associated with the first I/O scheduling group, that specifies a first I/O allocation that dictates a first maximum threshold, wherein the first maximum threshold is one of: a first maximum I/O rate at which I/O operations should issue to said storage system for requests associated with said first I/O scheduling group, or a first maximum throughput rate at which I/O operations should issue to said storage system for requests associated with said first I/O scheduling group, determining an I/O statistic associated with I/O operations that have recently issued to said storage system for said first I/O scheduling group, wherein the I/O statistic is one of: I/O rate and I/O throughput; determining, based at least in part on whether said I/O statistic indicates that said first maximum threshold has been exceeded, whether to place said request in an I/O request queue, and in response to determining to place said request in an I/O request queue: placing said request in a particular I/O request queue associated with said first I/O scheduling group, and issuing said request to said storage system when said request is dequeued from said particular I/O request queue based on said first I/O policy, for performance of said I/O operation by said storage system; wherein a second I/O policy associated with said second I/O scheduling group specifies a second I/O allocation that dictates a second maximum threshold, wherein the second maximum threshold is one of: a second maximum I/O rate at which I/O operations should issue to said storage system for requests associated with said second I/O scheduling group, or a second maximum throughput rate at which I/O operations should issue to said storage system for requests associated with said second I/O scheduling group; instructions which, when executed by one or more hardware processors, cause determining whether said I/O statistic associated with I/O operations that have recently issued to said storage system for said first I/O scheduling group is less than said first maximum threshold; and instructions which, when executed by one or more hardware processors, cause, in response to determining that said I/O statistic is less than said first maximum threshold: issuing more requests associated with said second I/O scheduling group than prescribed by said second maximum threshold. 3. The computer-executed method of claim 1 , wherein determining whether to place said request in an I/O request queue comprises performing one of: comparing said I/O statistic to said first maximum I/O rate, wherein said I/O statistic is an I/O rate; or comparing said I/O statistic to said first maximum throughput rate, wherein said I/O statistic is an I/O throughput. 4. The computer-executed method of claim 1 , wherein issuing said request to said storage system when said request is dequeued from said particular I/O request queue based on said first I/O policy comprises: determining the first maximum I/O rate is not exceeded for the first I/O scheduling group; and in response to determining the first maximum I/O rate is not exceeded for the first I/O scheduling group, dequeuing the request from the particular I/O request queue. 5. The computer-executed method of claim 1 , further comprising if determined not to place said request in an I/O request queue, then immediately issuing said request to said storage system. 6. The computer-executed method of claim 1 , wherein said request is issued to said storage system from a database server. 7. The computer-executed method of claim 1 , wherein: the first I/O allocation is a particular percentage of the total resources, of said storage system, avai
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Plurality of storage devices · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Improving I/O performance · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.