Two level qos scheduling for latency and queue depth control

US2016291885A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016291885-A1
Application numberUS-201514945309-A
CountryUS
Kind codeA1
Filing dateNov 18, 2015
Priority dateMar 31, 2015
Publication dateOct 6, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for two level quality of service scheduling for latency and queue depth control in a storage system is provided. The method includes determining queue depth as input/output operations per unit time that a storage subsystem can sustain, for each of a plurality of queues corresponding to storage subsystems in the storage system and determining system capacity as total input and output operations per unit time that the storage system can sustain, based on the queue depth of each of the plurality of queues. The method includes determining whether to accept or deny an input/output request for placement onto an input/output stack, based on a comparison of credits of the input/output request to the system capacity as determined on an ongoing basis, and placing the input/output request from the input/output stack onto one of the plurality of queues based on whether doing so maintains the queue depth of the one of the plurality of queues.

First claim

Opening claim text (preview).

What is claimed is: 1 . A processor-based method for two level quality of service scheduling for latency and queue depth control in a storage system, comprising: determining queue depth as input/output operations per unit time that a storage subsystem can sustain, for each of a plurality of queues corresponding to storage subsystems in the storage system; determining system capacity as total input and output operations per unit time that the storage system can sustain, based on the queue depth of each of the plurality of queues; determining whether to accept or deny an input/output request for placement onto an input/output stack, based on a comparison of credits of the input/output request to the system capacity as determined on an ongoing basis; and placing the input/output request from the input/output stack onto one of the plurality of queues based on whether doing so maintains or exceeds the queue depth of the one of the plurality of queues. 2 . The method of claim 1 , further comprising: distributing input/output requests from the input/output stack to the plurality of queues according to latency or throughput requirements of the input/output requests. 3 . The method of claim 1 , wherein the queue depth is associated with an underlying device or a storage tier of the storage system. 4 . The method of claim 1 , wherein the queue depth is controlled on the ongoing basis, by the determining the queue depth and the placing. 5 . The method of claim 1 , wherein latency of input/output request servicing is controlled on the ongoing basis, by the determining for placement onto the input/output stack and the placing from the input/output stack. 6 . The method of claim 1 , wherein the credits of the input/output request are based on at least one of: a service level agreement of an application associated with the input/output request, a deadline of the input/output request, or a throughput requirement of the input/output request. 7 . The method of claim 1 , wherein the queue depth is maintained by allowing, on the one of the plurality of queues, a total number of input/output requests less than or equal to the determined queue depth. 8 . A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising: determining, for each storage subsystem of a plurality of storage subsystems of a storage system how many input/output operations per unit time the storage subsystem can sustain, as a queue depth of the storage subsystem, wherein the queue depth is associated with a queue coupled to the storage subsystem, there being a plurality of such queues corresponding to the plurality of storage subsystems; determining based on the queue depths of the plurality of storage subsystems, total input/output operations per unit time that the storage system can sustain, as system capacity of the storage system; accepting or refusing to place input/output requests onto an input/output stack based on credits of each of the input/output requests in comparison to system capacity determined on an ongoing basis; and moving the input/output requests from the input/output stack to the plurality of queues corresponding to the plurality of storage subsystems so as to maintain the queue depth of each such queue. 9 . The computer-readable media of claim 8 , wherein the method further comprises: determining to which of the plurality of queues to move each input/output request of the input/output requests from the input/output stack based on latency or throughput requirement of the input/output request. 10 . The computer-readable media of claim 8 , wherein the method further comprises: communicating with storage stack clients via an application programming interface; and communicating with device drivers of the plurality of storage subsystems via a further application programming interface. 11 . The computer-readable media of claim 8 , wherein the method further comprises: controlling latency of input/output request servicing on the ongoing basis, by the accepting or refusing to place the input/output requests onto the input/output stack. 12 . The computer-readable media of claim 8 , wherein the method further comprises: controlling the queue depth of each of the plurality of queues, by the determining the queue depth and each decision about when, and to which queue, to perform the moving of each of the input/output requests from the input/output stack to one of the plurality of queues. 13 . The computer-readable media of claim 8 , wherein the method further comprises: placing, on each queue of the plurality of queues, from the input/output stack, a total number of input/output requests less than or equal to the queue depth of the queue. 14 . A storage system scheduler, comprising: an input/output stack; a plurality of queues, each configured to couple to one of a plurality of storage subsystems of a storage system; one or more processors, configured to implement a level one scheduler and a level two scheduler; the level two scheduler configured to determine, on a continuous or interval basis, queue depth for each queue of the plurality of queues, wherein the queue depth is input/output operations per unit time the one of the plurality of storage subsystems to which the queue is coupled can sustain; the level one scheduler configured to determine, on the continuous or interval basis, system capacity of the storage system, wherein the system capacity is the total input/output operations per unit time that the storage system can sustain, based on the queue depth of each of the plurality of queues; the level one scheduler configured to compare credits of input/output requests to the system capacity as determined on the continuous or interval basis and accept or reject input/output requests onto the input/output stack based on such comparison; and the level two scheduler configured to move the input/output requests from the input/output stack onto the plurality of queues based on maintaining the queue depth of each of the plurality of queues. 15 . The storage system scheduler of claim 14 , further comprising: the level two scheduler configured to distribute the input/output requests from the input/output stack to the plurality of queues based on latency or throughput requirements of the input/output requests. 16 . The storage system scheduler of claim 14 , further comprising: the level one scheduler configured to provide an application programming interface by which storage stack clients communicate to the storage system scheduler; and the level two scheduler configured to provide an application programming interface by which device drivers managing the plurality of storage subsystems communicate to the storage system scheduler. 17 . The storage system scheduler of claim 14 , further comprising: the one or more processors further configured to implement a storage discovery application programming interface by which storage characteristics of each storage subsystem discovered are communicated to the storage system scheduler. 18 . The storage system scheduler of claim 14 , further comprising: the level two scheduler configured to determine whether placing one of the input/output requests from the input/output stack onto one of the plurality of queues exceeds the determined queue depth of the one of the plurality of queues and place the one of the input/output requests from the input/output stack onto the one of the plurality of

Assignees

Inventors

Classifications

  • by allocating resources to storage systems · CPC title

  • Hybrid storage device · CPC title

  • G06F3/0613Primary

    in relation to throughput · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016291885A1 cover?
A method for two level quality of service scheduling for latency and queue depth control in a storage system is provided. The method includes determining queue depth as input/output operations per unit time that a storage subsystem can sustain, for each of a plurality of queues corresponding to storage subsystems in the storage system and determining system capacity as total input and output op…
Who is the assignee on this patent?
Symantec Corp
What technology area does this patent fall under?
Primary CPC classification G06F3/0613. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Oct 06 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).