Provided are methods, apparatus and 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
analysing 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.