US8090903B2

Fair and dynamic disk input/output bandwidth distribution

Summary by NHIP

Fair disk IO bandwidth distribution

The method organizes disk input/output requests into queues and allocates time intervals by equally distributing a disk IO cycle based on the number of queues. Each queue divides into a first and second portion, where requests in the first portion use a higher bandwidth portion than those in the second portion during the allocated interval.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

Embodiments that facilitate the fair and dynamic distribution of disk input/output (IO) bandwidth are disclosed. In accordance with one embodiment, the method includes organizing one or more disk IO time intervals into one or more queues. The method further includes allocating a disk IO time interval to each queue. The allocation of a disk IO time interval to each queue is accomplished by equally distributing a disk IO cycle based on the number of queues. The one or more disk IO requests are then processed during the corresponding disk IO time interval.

US8090903B2, drawing sheet 1
Sheet 1 of 8

Term

Projected expiry 1 May 2030.

  1. Priority and filed
  2. Granted
  3. Today
  4. Projected expiry

20 claims: 3 independent, 17 dependent

  1. 1
    Broadest claimClaim Score 46, average(NHIP)A method, comprising:organizing one or more disk input/output (IO) requests into one or more queues;allocating a corresponding disk IO time interval to each queue by equally distributing a disk IO cycle based on a quantity of the one or more queues;dividing a queue into a least a first portion and a second portion;and processing the one or more disk IO requests in each queue during the corresponding disk IO time interval of each queue, such that a disk IO request of an application in the first portion of the queue uses a higher portion of an allocated bandwidth during a disk IO time interval allocated to the queue than an additional disk IO request of an additional application in the second portion.
  2. 9
    A computer storage medium having computer-executable instructions that, when executed, perform acts comprising:organizing one or more disk input/output (IO) requests into one or more queues;allocating a corresponding disk IO time interval to each queue by equally distributing a disk IO cycle based on a quantity of the one or more queues;dividing the disk IO time interval allocated to each queue into identical time slices, wherein the duration of a disk IO time slice of one of the queues is identical in duration to a time slice from each of the other queues;processing the one or more disk IO requests in each queue during a corresponding time slice;re-dividing the disk IO time interval allocated to each queue into identical additional time slices based on a change in the quantity of one or more queues, wherein the duration of a disk IO time slice of one of the queues is identical in duration to a time slice from each of the other queues;and processing the one or more disk IO requests in each queue during a corresponding additional time slice.
  3. 15
    A system, comprising:one or more processors;and memory allocated to store a plurality of computer-executable instructions for execution by the one or more processors, the computer-executable instructions comprising: organizing one or more disk input/output (IO) requests into one or more queues based on a criterion;dividing a queue into at least a first portion or a second portion;allocating a corresponding disk IO time interval to each queue by equally distributing a disk IO cycle based on a quantity of the one or more queues;and processing the one or more disk IO requests in each queue during the corresponding disk IO time interval of each queue, such that a disk IO request of an application in the first portion of the queue uses a higher portion of an allocated bandwidth during a particular disk IO time interval allocated to the queue than an additional disk IO of an additional application in the second portion.