System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients
First Claim
1. A storage controller configured to prioritize and schedule I/O requests from a plurality of clients to at least one storage object, comprising:
- processing means for processing I/O requests from said plurality of clients in a prioritized order;
first interface means for sending and receiving data between said clients and said processing means; and
second interface means for sending and receiving data between said processing means and said at least one storage object;
said processing means being configured to receive I/O requests from said clients via said first interface means, prioritize and schedule said I/O requests based on a priority assigned to each of said clients, conduct an I/O operation with said at least one storage object via said second interface means for an I/O request from a client having a highest priority, communicate results from said I/O operation back to the client which initiated the I/O request processed by the I/O operation, and change the priority assigned to the client which initiated the I/O request processed by the I/O operation.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for globally prioritizing and scheduling I/O requests from a plurality of storage users or clients to one or more storage objects. The system comprises a storage controller configured to receive I/O requests from the client workstations and prioritize and schedule those I/O requests in accordance with a scheduling algorithm. Specifically, the storage controller receives I/O requests from the storage users and places the I/O requests in memory queues associated with the particular storage users. The storage controller then selects the I/O requests from the various memory queues based on the scheduling algorithm.
-
Citations
29 Claims
-
1. A storage controller configured to prioritize and schedule I/O requests from a plurality of clients to at least one storage object, comprising:
-
processing means for processing I/O requests from said plurality of clients in a prioritized order; first interface means for sending and receiving data between said clients and said processing means; and second interface means for sending and receiving data between said processing means and said at least one storage object; said processing means being configured to receive I/O requests from said clients via said first interface means, prioritize and schedule said I/O requests based on a priority assigned to each of said clients, conduct an I/O operation with said at least one storage object via said second interface means for an I/O request from a client having a highest priority, communicate results from said I/O operation back to the client which initiated the I/O request processed by the I/O operation, and change the priority assigned to the client which initiated the I/O request processed by the I/O operation. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A storage controller configured to prioritize and schedule I/O requests from one or more clients to a plurality of storage objects, comprising:
-
processing means for processing I/O requests from said one or more clients in a prioritized order; first interface means for sending and receiving data between said one or more clients and said processing means; and second interface means for sending and receiving data between said processing means and said plurality of storage object; said processing means being configured to receive I/O requests from said one or more clients via said first interface means, prioritize and schedule said I/O requests based on a priority assigned to each of said storage objects, conduct an I/O operation with one or more of said storage objects via said second interface means for an I/O request directed to a storage object having a highest priority, communicate results from said I/O operation back to the client which initiated the I/O request processed by the I/O operation, and change the priority assigned to the one or more storage objects with which the I/O operation was conducted.
-
-
7. A storage controller configured to prioritize and schedule I/O requests from a plurality of clients to at least one storage object, comprising:
-
a memory having a plurality of memory queues; processing means for processing I/O requests from said plurality of clients in a prioritized order; first interface means for sending and receiving data between said clients and said processing means; and second interface means for sending and receiving data between said processing means and said at least one storage object; said processing means being configured to receive I/O requests from said clients via said first interface means, place each one of said I/O requests into one of said plurality of memory queues based on a priority of said I/O request, remove an I/O request having a selected priority from one of said plurality of memory queues, conduct an I/O operation with said at least one storage object via said second interface means for the removed I/O request, and communicate results from said I/O operation back to the client which initiated the I/O request. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method for prioritizing and scheduling I/O requests from a plurality of clients to one or more storage objects, comprising the steps of:
-
receiving via a first communication interface I/O requests from said plurality of clients; prioritizing and scheduling said I/O requests based on a priority assigned to each of said clients; conducting an I/O operation with said one or more storage objects for an I/O request from a client having a highest priority; communicating results from said I/O operation back to the client which initiated the I/O request processed by the I/O operation; and changing the priority assigned to the client which initiated the I/O request processed by the I/O operation. - View Dependent Claims (14)
-
-
15. A system for scheduling I/O requests to at least one storage object from a plurality of clients, comprising:
-
a processor; a client interface configured to facilitate communications between said plurality of clients and said processor; a storage object interface configured to facilitate communications between said processor and said at least one storage object; and a memory having a plurality of memory queues; wherein one or more of said plurality of clients send I/O requests to said processor via said client interface, said processor receives said I/O requests and places each one of said I/O requests in one of said plurality of memory queues based on a priority of said I/O requests, and at an approprate time said processor removes an I/O request having a selected priority value from one of said plurality of memory queues and conducts an I/O operation with said at least one storage object. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification