US6157963A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients
Assignee: NetApp Inc
•
Filing: 1998-03-24
•
Granted: 2000-12-05
•
Expires: 2018-03-24
Abstract
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.
Inventors
- 👤 II William V. Courtright
- 👤 William P. Delaney
- 👤 Gerald J. Fredin
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-02 22:51
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0628; G06F3/0655; G06F3/0659; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689
Claims Analysis
Total Claims: 34
Claim 1
Independent Claim
170 words
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.
Claim 2
Dependent Claim
170 words
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.
Claim 3
Dependent Claim
17 words
The storage controller as recited in claim 1 wherein said storage controller is a disk array controller.
Claim 4
Dependent Claim
16 words
The storage controller as recited in claim 1 wherein said storage controller is a file server.
Claim 5
Dependent Claim
32 words
The storage controller as recited in claim 1 wherein said processing means periodically changes said priority assigned to each one of said plurality of clients in accordance with a priority decay algorithm.
Claim 6
Dependent Claim
19 words
The storage controller as recited in claim 1 further comprising a third interface means for receiving priority value information.
Claim 7
Dependent Claim
181 words
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.
Claim 8
Dependent Claim
181 words
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.
Claim 9
Dependent Claim
173 words
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.
Claim 10
Dependent Claim
173 words
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.
Claim 11
Dependent Claim
74 words
The storage controller as recited in claim 7 wherein each one of said memory queues are assigned a priority, and at least one of said plurality of memory queues is configured to receive I/O requests from at least one of said plurality of clients, and wherein said processing means selects an I/O request from one of said plurality of memory queues based on the priority assigned to each of said plurality of memory queues.
Claim 12
Dependent Claim
42 words
The storage controller as recited in claim 10 wherein each of said plurality of clients is assigned a priority, and wherein said processing means places I/O requests from a client having a certain priority into a memory queue having a similar priority.
Claim 13
Dependent Claim
73 words
The storage controller as recited in claim 7 wherein each one of said memory queues are assigned a priority, and at least one of said plurality of memory queues is configured to receive I/O requests directed to said at least one storage object, and wherein said processing means selects an I/O request from one of said plurality of memory queues based on the priority assigned to each of said plurality of memory queues.
Claim 14
Dependent Claim
46 words
The storage controller as recited in claim 10 wherein each of said at least one storage objects is assigned a priority, and wherein said processing means places I/O requests directed to a storage object having a certain priority into a memory queue having a similar priority.
Claim 15
Dependent Claim
74 words
The storage controller as recited in claim 7 wherein each one of said plurality of clients is assigned a first priority, and each of said at least one storage objects is assigned a second priority, and wherein said processing means calculates an I/O priority for each of said I/O requests based on said first priority and said second priority and places each of said I/O requests into a memory queue having a similar priority.
Claim 16
Independent Claim
112 words
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.
Claim 17
Independent Claim
112 words
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.
Claim 18
Dependent Claim
32 words
The method as recited in claim 13 further comprising the step of periodically changing said priority assigned to each one of said plurality of clients in accordance with a priority decay algorithm.
Claim 19
Independent Claim
147 words
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.
Claim 20
Independent Claim
147 words
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.
Claim 21
Dependent Claim
15 words
The system as recited in claim 15 wherein said client interface comprises a SCSI interface.
Claim 22
Dependent Claim
23 words
The system as recited in claim 15 wherein said client interface is ATM, CDDI, Fibre Channel, FDDI, Ethernet, Server Net or Token Ring.
Claim 23
Dependent Claim
16 words
The system as recited in claim 15 wherein said storage object interface comprises a SCSI interface.
Claim 24
Dependent Claim
24 words
The system as recited in claim 15 wherein said storage object interface is ATM, CDDI, Fibre Channel, FDDI, Ethernet, Server Net or Token Ring.
Claim 25
Dependent Claim
74 words
The system as recited in claim 15 wherein each one of said plurality of memory queues are assigned a priority, and at least one of said plurality of memory queues are configured to receive I/O requests from at least one of said plurality of clients, and wherein said processor selects an I/O request from one of said plurality of memory queues based on the priority assigned to each of said plurality of memory queues.
Claim 26
Dependent Claim
42 words
The storage controller as recited in claim 20 wherein each of said plurality of clients is assigned a priority, and wherein said processing means places I/O requests from a client having a certain priority into a memory queue having a similar priority.
Claim 27
Dependent Claim
33 words
The system as recited in claim 20 wherein said processor changes said priority assigned to a memory queue after said processor conducts an I/O operation for an I/O request from said memory queue.
Claim 28
Dependent Claim
31 words
The system as recited in claim 20 wherein said processor periodically changes said priority assigned to each one of said plurality of memory queues in accordance with a priority decay algorithm.
Claim 29
Dependent Claim
69 words
The system as recited in claim 15 wherein each one of said plurality of memory queues are assigned a priority, and at least one of said plurality of memory queues are configured to receive I/O requests directed to storage objects, and wherein said processor selects an I/O request from one of said plurality of memory queues based on the priority assigned to each of said plurality of memory queues.
Claim 30
Dependent Claim
46 words
The storage controller as recited in claim 24 wherein each of said at least one storage objects is assigned a priority, and wherein said processing means places I/O requests directed to a storage object having a certain priority into a memory queue having a similar priority.
Claim 31
Dependent Claim
70 words
The system as recited in claim 15 wherein each one of said plurality of clients is assigned a first priority, and each of said at least one storage objects is assigned a second priority, and wherein said processor calculates an I/O priority for said I/O requests based on said first priority and said second priority and places each of said I/O requests into a memory queue having a similar priority.
Claim 32
Dependent Claim
21 words
The system as recited in claim 15 wherein said system is configured to schedule I/O requests directed to a disk array.
Claim 33
Dependent Claim
21 words
The system as recited in claim 15 wherein said system is configured to schedule I/O requests directed to a file server.
Claim 34
Dependent Claim
22 words
The system as recited in claim 15 further comprising a priority value interface configured for receiving priority values from an external source.
References Cited (Backward Citations)
US3725864A
Cited
US4901232A
Cited
US4980820A
Cited
US4858108A
Cited
US5008808A
Cited
US5303382A
Cited
US5450564A
Cited
US5327526A
Cited
US5481707A
Cited
US5544329A
Cited
US5463743A
Cited
US5394548A
Cited
US5455934A
Cited
US5426736A
Cited
US5623672A
Cited
US5717942A
Cited
US5875472A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-12-05 | 2004-06-05 | 2004-12-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-12-05 | 2008-06-05 | 2008-12-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-12-05 | 2012-06-05 | 2012-12-05 | $7700.00 | Window Closed / Lapsed |