Storage Controller In-Flight Command Queue Depth Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage systems face challenges in managing I/O commands effectively due to the lack of functionality in existing protocols to handle persistent events, leading to inefficient resource allocation and compensatory actions, as these protocols were designed for simpler and more homogeneous systems, and fail to distinguish between individual and persistent events, resulting in inappropriate or redundant actions.
Innovation Solution
A storage controller that associates tags with I/O commands to distinguish between different streams based on trigger events, reduces the number of in-flight commands in response to detected events, and incrementally adjusts the maximum queue depth to manage resource contention, allowing for more efficient handling of persistent events by differentiating between new and persistent events and adjusting compensatory actions accordingly.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the storage controller reduces the allowable number of in-flight commands in response to a trigger event, then the load on the storage controller is reduced and compensatory action can be taken, but the productivity of the storage system decreases due to fewer in-flight commands
Solution Approach 1:
The patent implements dynamic queue depth management where the allowable number of in-flight commands is adjusted based on the severity and persistence of trigger events. The system transitions from a static queue depth to a dynamic parameter that responds to system conditions, allowing the storage controller to adaptively balance between reliability and productivity by reducing queue depth during persistent events and restoring it when conditions improve.
Solution Approach 2:
The patent changes the parameter of queue depth (allowable number of in-flight commands) in response to detected trigger events. By modifying this critical parameter dynamically based on event severity and persistence, the system can reduce load during problematic conditions while maintaining high throughput during normal operation, thus resolving the contradiction between reliability and productivity.
2Reliability
If the storage controller treats all events as persistent and reduces queue depth accordingly, then appropriate compensatory action is taken for persistent events, but redundant actions are performed for transient events reducing system efficiency
Solution Approach 1:
The patent implements a feedback mechanism that continuously monitors whether trigger events are persistent or transient by tracking event occurrence over time. The system uses this feedback to adjust its response: for persistent events, it reduces queue depth and takes compensatory action, while for transient events, it allows normal operation to continue without unnecessary interventions, thus avoiding redundant actions and maintaining system efficiency.
Solution Approach 2:
The patent employs periodic monitoring of event conditions to distinguish between persistent and transient events. By checking event persistence over multiple time periods, the system can accurately identify when an event is truly persistent versus temporary, allowing it to apply appropriate queue depth reduction only when necessary and avoid redundant compensatory actions for transient events.
3Device complexity
If the storage controller uses traditional protocols designed for simple homogeneous systems, then protocol simplicity is maintained, but functionality is insufficient for complex heterogeneous storage systems with multiple controllers and devices
Solution Approach 1:
The patent extends the traditional protocol with additional functionality to handle complex heterogeneous storage systems while maintaining backward compatibility. The enhanced protocol can identify and respond to various types of trigger events from different storage devices and controllers, making it universally applicable to both simple homogeneous and complex heterogeneous storage configurations without requiring multiple specialized protocols.
Data Source
AI summary
An indication of an event is received at a storage controller. The indication of the event corresponds to a first severity. It is determined that the event is associated with a first stream of commands. It is determined whether the indication of the event is the first indication of the event received by the storage controller. If the indication of the event is the first indication of the event received by the storage controller, a maximum allowed count of in-flight commands to be less than a current count of in-flight commands is set. If the indication of the event is not the first indication of the event received by the storage controller, it is determined that the first severity is greater than a second severity corresponding to a previously received indication. If the first severity is greater than the second severity, the maximum allowed count of in-flight commands is decreased.


