Multi-Queue I/O Command Sorting for Storage Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage modules face inefficiencies due to their inability to adapt to actual host behavior, leading to suboptimal performance, endurance, and power consumption, particularly in multi-queued environments like NVMe, where Data Set Management (DSM) requires complex bookkeeping and often exceeds its benefits.

Innovation Solution

A system and method for sorting commands into multiple queues based on data characteristics, allowing hosts to optimize I/O operations by designating specific queues for different types of requests, such as synchronous vs. asynchronous, and prioritizing them accordingly, enabling the storage module to process commands more effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Data Set Management (DSM) commands and parameters are used to allow hosts to hint storage module about LBA ranges, then storage module can optimize for specific access patterns, but the LBA-range centric nature requires additional bookkeeping by both host and storage module, creating complex mappings that may overlap and mix, resulting in overhead greater than benefit

Engineering Contradiction:
ImproveI/O optimizationVSAvoidbookkeeping complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments I/O commands into multiple queues based on data characteristics (e.g., sequential vs. random access patterns, read vs. write operations). Each queue is dedicated to a specific type of I/O pattern, eliminating the need for complex LBA-range mapping and bookkeeping. The host sorts commands into appropriate queues before submission, and the storage module processes commands from each queue according to its optimized algorithm for that pattern.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of having the storage module try to identify and optimize for different access patterns within a single queue (the traditional DSM approach), the patent inverts the approach by having the host pre-sort commands into separate queues based on their access patterns. This reversal simplifies the storage module's task to merely processing commands according to their queue's characteristic, eliminating complex bookkeeping while maintaining optimization benefits.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If multiple independent queues are exposed to allow hosts to send many operations at once, then throughput and parallelism are improved, but each thread may send its own command sequences to different queues that do not match the patterns expected by the storage module, reducing optimization effectiveness

Engineering Contradiction:
ImprovethroughputVSAvoidpattern matching
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates multiple queues that serve universal purposes - each queue type can handle various commands of its characteristic pattern. For example, a sequential write queue can handle any sequential write operation regardless of which thread or application generates it. This multi-functionality within each queue type maintains adaptability while ensuring all commands in a queue share the same optimization characteristics.

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

Solution Approach 2:

The system implements feedback mechanisms where the host monitors the behavior and performance of different I/O patterns, dynamically adjusting which commands are routed to which queues. This feedback loop ensures that even as workloads change, the queue assignments remain optimized, maintaining pattern matching effectiveness across diverse multi-threaded workloads.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9317204B2System and method for I/O optimization in a multi-queued environment
Publication Date: 2016.04.19 SANDISK TECHNOLOGIES LLC
  • US9317204B2 patent drawing
  • US9317204B2 patent drawing
  • US9317204B2 patent drawing

AI summary

A system and method for I/O optimization in a multi-queued environment are provided. In one embodiment, a host is provided that sorts commands into a plurality of queues, wherein a command is sorted based on its data characteristic. The host receives a read request from a storage module for commands in the plurality of queues and provides the storage module with the requested commands. In another embodiment, a storage module is provided that processes commands from a host based on the data characteristic of the queue that stored the command on the host. In another embodiment, a storage module sorts command completions into a plurality of queues, wherein a command completion is sorted based on its resulting status code.