US7565484B2

Methods, apparatus and computer programs for scheduling storage requests

Summary by NHIP

Revenue-Based Storage Scheduling

The method schedules storage access requests by calculating a revenue-maximizing sequence based on Service Level Agreement revenues and estimated latency. Latency estimates combine seek time derived from disk drive characteristics and head positions, data transfer time based on request size, and rotational delay for disk sectors.

Claim Score by NHIP

Read claim 16, the broadest

Abstract

Provided are methods, apparatus arid computer programs for scheduling storage input and/or output (I/O) requests. A method for scheduling storage access requests determines a request processing sequence calculated to maximize SLA-based revenues achievable from processing a number of requests. A storage controller includes a scheduler which implements a revenue-based scheduling function to determine a revenue-maximizing processing sequence, and then assigns storage access requests to locations in a queue corresponding to the determined sequence. In an on-line mode, the scheduler can adapt to additional received requests, evaluating the revenue function for the additional requests and modifying the schedule if required. The method may include analyzing a request stream to predict requests that are likely to be received in the near future, and taking account of the predicted requests when determining a processing schedule.

US7565484B2, drawing sheet 1
Sheet 1 of 21

Term

Term ended

Expired 23 June 2024, 2.3 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

19 claims: 7 independent, 12 dependent

  1. 1
    A computer-implemented method for scheduling storage access requests, said method comprising:determining by a computer, by reference to Service Level Agreements (SLA)-based revenues achievable for processing storage access requests, a revenue-maximizing processing sequence for a plurality of storage access requests;and ordering by said computer the plurality of storage access requests in a schedule corresponding to the determined revenue-maximizing sequence, wherein said determining comprises evaluating a revenue function with reference to an estimated latency for each of the plurality of storage access requests, and wherein said revenue function is dependent only on said estimated latency and a non-unity weight associated with said storage access requests such that said revenue function is non-increasing with an increase in latency of said storage access requests, wherein the latency for each request is estimated using: an estimate of seek time for moving a read/write head of a disk drive to a disk track corresponding to a data location of a respective storage access request, wherein the seek time is estimated from characteristics of a respective disk drive, a current read/write head position, and a required read/write head position for performing a requested storage access operation;an estimated data transfer time determined according to a data size of each request and the disk drive characteristics;and an estimated rotational delay for rotating a disk sector, required by the storage access request, into a position required for operation of the read/write head.
  2. 9
    A storage access controller comprising:computer-readable storage media storing instructions to control a scheduler to determine, by reference to Service Level Agreements (SLA)-based revenues achievable for processing storage access requests, a revenue-maximizing processing sequence for a plurality of storage access requests and for ordering the plurality of storage access requests in a scheduled sequence corresponding to the determined revenue-maximizing sequence, wherein said scheduler is further adapted to evaluate a revenue function with reference to an estimated latency for each of the plurality of storage access requests, wherein said revenue function is dependent only on said estimated latency and a non-unity weight associated with said storage access requests such that said revenue function is non-increasing with an increase in latency of said storage access requests, and wherein the latency is estimated using an estimated rotational delay for rotating a disk sector, required by the storage access request, into a position required for operation of a read/write head based on characteristics of a respective disk drive.
  3. 12
    A scheduler for a storage access controller, comprising:computer-readable storage media storing instructions for determining, by reference to Service Level Agreements (SLA)-based revenues achievable for processing storage access requests, a revenue-maximizing processing sequence for a plurality of storage access requests;and means for ordering the plurality of storage access requests in a schedule corresponding to the determined revenue-maximizing sequence, wherein said instructions further evaluates a revenue function with reference to an estimated latency for each of the plurality of storage access requests, wherein said revenue function is dependent only on said estimated latency and a non-unity weight associated with said storage access requests such that said revenue function is non-increasing with an increase in latency of said storage access requests, and wherein the latency is estimated using an estimated rotational delay for rotating a disk sector, required by the storage access request, into a position required for operation of a read/write head based on characteristics of a respective disk drive.
  4. 13
    A data processing apparatus comprising:a data processing unit;a data storage unit;and a storage access controller adapted to determine, by reference to Service Level Agreements (SLA)-based revenues achievable for processing storage access requests, a revenue-maximizing processing sequence for a plurality of storage access requests and for ordering the plurality of storage access requests in a scheduled sequence corresponding to the determined revenue-maximizing sequence, wherein said storage access controller is further adapted to evaluate a revenue function with reference to an estimated latency for each of the plurality of storage access requests, wherein said revenue function is dependent only on said estimated latency and a non-unity weight associated with said storage access requests such that said revenue function is non-increasing with an increase in latency of said storage access requests, and wherein the latency is estimated using an estimated rotational delay for rotating a disk sector, required by the storage access request, into a position required for operation of a read/write head based on characteristics of a respective disk drive.
  5. 14
    A computer program storage medium readable by computer, tangibly embodying a program of instructions executable by the computer to perform a method of scheduling storage access requests, the method comprising:determining, by reference to Service Level Agreements (SLA)-based revenues achievable for processing storage access requests, a revenue-maximizing processing sequence for a plurality of storage access requests;and ordering the plurality of storage access requests in a schedule corresponding to the determined revenue-maximizing sequence, wherein said determining comprises evaluating a revenue function with reference to an estimated latency for each of the plurality of storage access requests, wherein said revenue function is dependent only on said estimated latency and a non-unity weight associated with said storage access requests such that said revenue function is non-increasing with an increase in latency of said storage access requests, and wherein the latency is estimated using an estimated rotational delay for rotating a disk sector, required by the storage access request, into a position required for operation of a read/write head based on characteristics of a respective disk drive.
  6. 15
    A method for operating a storage service, said method comprising:maintaining a data store within a set of network-accessible data storage units;receiving storage access requests for access to the data store;scheduling received storage access requests by determining, by reference to Service Level Agreement (SLA)-based revenues achievable for processing storage access requests, a revenue-maximizing processing sequence for a plurality of storage access requests, and ordering the plurality of storage access requests in a schedule corresponding to the determined revenue-maximizing sequence, wherein said determining comprises evaluating a revenue function with reference to an estimated latency for each of the plurality of storage access requests, wherein said revenue function is dependent only on said estimated latency and a non-unity weight associated with said storage access requests such that said revenue function is non-increasing with an increase in latency of said storage access requests, and wherein the latency is estimated using an estimated rotational delay for rotating a disk sector, required by the storage access request, into a position required for operation of a read/write head based on characteristics of a respective disk drive.
  7. 16
    Broadest claimClaim Score 46, average(NHIP)A method for scheduling storage access requests, said method comprising:determining, by reference to Service Level Agreements (SLA)-based reward parameters, a reward-function-maximizing processing sequence for a plurality of storage access requests;and ordering the plurality of storage access requests in a schedule corresponding to the determined reward-function-maximizing sequence, wherein said determining comprises evaluating a revenue function with reference to an estimated latency for each of the plurality of storage access requests, wherein said revenue function is dependent only on said estimated latency and a non-unity weight associated with said storage access requests such that said revenue function is non-increasing with an increase in latency of said storage access requests, and wherein the latency is estimated using an estimated rotational delay for rotating a disk sector, required by the storage access request, into a position required for operation of a read/write head based on characteristics of a respective disk drive.