← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag