Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
First Claim
1. An array controller comprising:
- ports associated with one or more first communications media that link the array controller to one or more host computers;
ports associated with one or more second communications media that link the array controller to one or more data-storage targets; and
array-controller logic thatreceives commands with associated priorities from host computers through the first communications media,queues received commands according to the priorities associated with the commands to an internal work queue, from which they are subsequently processed for delivery to the data-storage targets,throttles command reception from host computers in order to control an overall command-reception rate,throttles command reception from individual host computers in order to provide fair access to all host computers accessing the array controller, andthrottles command reception from host computers according to associated priorities in order to provide fair access to all priority levels of all host computers accessing the array controller.
2 Assignments
0 Petitions
Accused Products
Abstract
In certain, currently available data-storage systems, incoming commands from remote host computers are subject to several levels of command-queue-depth-fairness-related throttles to ensure that all host computers accessing the data-storage systems receive a reasonable fraction of data-storage-system command-processing bandwidth to avoid starvation of one or more host computers. Recently, certain host-computer-to-data-storage-system communication protocols have been enhanced to provide for association of priorities with commands. However, these new command-associated priorities may lead to starvation of priority levels and to a risk of deadlock due to priority-level starvation and priority inversion. In various embodiments of the present invention, at least one additional level of command-queue-depth-fairness-related throttling is introduced in order to avoid starvation of one or more priority levels, thereby eliminating or minimizing the risk of priority-level starvation and priority-related deadlock.
-
Citations
18 Claims
-
1. An array controller comprising:
-
ports associated with one or more first communications media that link the array controller to one or more host computers; ports associated with one or more second communications media that link the array controller to one or more data-storage targets; and array-controller logic that receives commands with associated priorities from host computers through the first communications media, queues received commands according to the priorities associated with the commands to an internal work queue, from which they are subsequently processed for delivery to the data-storage targets, throttles command reception from host computers in order to control an overall command-reception rate, throttles command reception from individual host computers in order to provide fair access to all host computers accessing the array controller, and throttles command reception from host computers according to associated priorities in order to provide fair access to all priority levels of all host computers accessing the array controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for managing command-reception rates in an array controller that includes ports associated with one or more first communications media that link the array controller to one or more host computers, ports associated with one or more second communications media that link the array controller to one or more data-storage targets, and array-controller logic, the method comprising:
-
receiving commands with associated priorities from host computers through the first communications media, queuing received commands according to the priorities associated with the commands to an internal work queue, from which they are subsequently processed for delivery to the data-storage targets, throttling command reception from host computers in order to control an overall command-reception rate, throttling command reception from individual host computers in order to provide fair access to all host computers accessing the array controller, and throttling command reception from host computers according to associated priorities in order to provide fair access to all priority levels of all host computers accessing the array controller. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
Specification