Patent ID: 8341437

Claim:
A method for managing power consumption in a data storage system, the method comprising: utilizing data that correlates power consumption in a storage device with length of a queue, in which input/output (I/O) requests are scheduled for service by the storage device, to determine a target queue length for said queue, wherein the target queue length meets a predetermined power consumption threshold, for each I/O request, wherein the predetermined power consumption threshold is associated with said storage device according to empirical data collected from I/O requests previously serviced by the storage device at various queue lengths; receiving a first I/O request identifying an I/O operation to be performed by the storage device; monitoring arrival rate of the I/O requests in relation to rate the arrived I/O requests are serviced by the storage device; delaying scheduling of the first I/O request for service, by storing the first I/O in a buffer until either a maximum buffer size is reached or a maximum latency associated with the first I/O request is reached, in response to determining that the arrival rate of I/O requests is less than the rate the arrived I/O requests are serviced by the storage device; forwarding the first I/O request along with zero or more other I/O requests in the buffer to a storage controller associated with the storage device, wherein the first I/O request and said other I/O requests are stored in said queue which is accessible by the storage controller, until the first I/O requests is scheduled for service by a target storage device; wherein the storage controller schedules the first I/O request and any other I/O requests in the queue for service using a scheduling mechanism, and adjusting the rate at which the first I/O request is forwarded to the storage controller according to the length of the queue and the target queue length such that the I/O requests in the queue are scheduled or re-scheduled to promote sequential disk access when the I/O requests in the queue are serviced by the storage device, so that the amount of power consumed per I/O request by servicing the I/O requests decreases as the length of the queue increases.