Command Queue Throttling for Priority Starvation in Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data-storage systems face issues with priority-level starvation and priority-related deadlock due to the association of priorities with commands, leading to unfair distribution of command processing bandwidth and potential system bottlenecks.
Innovation Solution
Implementing additional levels of command-queue-depth-fairness-related throttling within the data-storage system controller to prevent starvation of particular priority levels, by introducing additional throttling mechanisms that manage command queues and prioritize fair access across all host computers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If command-associated priorities are implemented to ensure maximum responsiveness for high-priority commands, then command processing responsiveness is improved, but priority-level starvation and deadlock risk increase
Solution Approach 1:
The patent segments the command queue into multiple priority levels (first priority queue, second priority queue, third priority queue) to manage different command types separately. This segmentation allows high-priority commands to be processed quickly while ensuring that lower-priority commands from different hosts are not starved, as each queue has its own depth thresholds and throttling mechanisms.
Solution Approach 2:
The patent implements feedback mechanisms through queue depth thresholds and throttling. When the depth of a priority queue exceeds a threshold, the system throttles command acceptance for that queue. This feedback loop prevents any single host from monopolizing high-priority commands, thereby reducing priority-level starvation while maintaining responsive processing.
2Reliability
If additional levels of command-queue-depth-fairness-related throttling are introduced to prevent priority-level starvation, then fairness and reliability are improved, but device complexity increases
Solution Approach 1:
The patent makes the throttling mechanism universal by applying the same depth-threshold and throttling logic across all three priority queues. This multi-functional approach allows a single throttling framework to manage fairness for multiple priority levels and multiple hosts simultaneously, reducing overall system complexity compared to implementing separate fairness mechanisms for each queue.
Solution Approach 2:
The patent uses parameter changes by adjusting queue depth thresholds and throttling levels dynamically. Instead of complex structural changes, the system manages fairness by modifying operational parameters (threshold values, throttling rates) of existing queue structures, thereby achieving fair command distribution without significantly increasing device complexity.
3Reliability
If command-queue-depth-fairness-related throttling is applied to ensure reasonable bandwidth distribution, then command processing fairness is improved, but command processing speed may be reduced
Solution Approach 1:
The patent implements dynamic throttling where the system adjusts command acceptance rates based on real-time queue depth conditions. When queues are shallow, the system accepts commands at higher rates to maximize throughput. When queues approach depth thresholds, throttling activates to ensure fairness. This dynamic behavior allows the system to optimize both productivity and fairness depending on current workload conditions.
Solution Approach 2:
The patent applies partial throttling rather than complete blocking. When queue depth thresholds are approached, the system throttles command acceptance partially rather than stopping entirely, allowing some commands to pass while limiting excessive growth. This partial action maintains command processing throughput while still achieving fair bandwidth distribution across different hosts and priority levels.
Data Source
AI summary
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.


