Command Queue Throttling for Priority Starvation in Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecommand processing responsivenessVSAvoidpriority-level starvation risk
Core Design Contradiction:
SpeedVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvefairness in command processingVSAvoidthrottling mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvebandwidth distribution fairnessVSAvoidcommand processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7797468B2Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
Publication Date: 2010.09.14 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7797468B2 patent drawing
  • US7797468B2 patent drawing
  • US7797468B2 patent drawing

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.