Storage Controller Command Queue Staleness Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional storage controllers face challenges in efficiently processing mixed sequential and non-sequential data storage commands, leading to potential delays and unserviced host requests, which can result in slow system performance and application errors.

Innovation Solution

A storage controller method that includes a command queue with both time-sorted and LBA-sorted queues, where commands are checked for completion and issuance based on predetermined time periods, ensuring that unissued commands are processed and preventing queue stagnation, thereby balancing sequential and random requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the storage controller continuously processes sequential streams to maximize sequential performance, then sequential read/write performance is improved, but random requests may be delayed or starved leading to slow system performance and application errors

Engineering Contradiction:
Improvesequential read/write performanceVSAvoidresponse time for random requests
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The storage controller dynamically adjusts its command processing behavior based on the age of commands in the queue. When commands exceed a predetermined time threshold, the controller interrupts sequential stream processing to service these aged commands, creating a dynamic response that balances sequential performance with random request responsiveness

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The controller implements a feedback mechanism by continuously monitoring command queue ages and using this information to make real-time decisions about command issuance. The time-based checking creates a feedback loop that ensures neither sequential streams nor random requests are starved for extended periods

Inventive Principle:
Principle #23Feedback

2Device complexity

If the storage controller processes commands strictly in FIFO order, then command processing simplicity is maintained, but commands waiting for unrelated operations cause unnecessary delays

Engineering Contradiction:
Improvecommand processing logicVSAvoidcommand processing efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The command queue is segmented into multiple independent queues (e.g., sequential queue and random queue), allowing the controller to process commands from different queues independently. This segmentation enables parallel processing of unrelated commands without increasing overall controller complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller performs preliminary sorting of commands into different queues based on their characteristics (sequential vs. random) before processing. This preliminary organization allows more efficient processing by grouping related commands together while preventing unrelated commands from blocking each other

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9465555B2Method and apparatus for efficient processing of disparate data storage commands
Publication Date: 2016.10.11 SEAGATE CLOUD SYSTEMS INC
  • US9465555B2 patent drawing
  • US9465555B2 patent drawing
  • US9465555B2 patent drawing

AI summary

A method for improving I/O performance by a storage controller is provided. The method includes receiving a command completion from a storage device and checking for a command stored in a command queue for more than a predetermined time period. If a command has been in the command queue for more than the predetermined time period, then issuing the command and removing the command from the command queue. If no commands have been stored in the command queue for more than the predetermined time period, then determining if there are any uncompleted commands previously issued to the storage device. If there are not any uncompleted commands previously issued to the storage device, then processing a next command in the command queue and removing the next command from the command queue.