Dynamic Command Clustering for Storage IOPS

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Low-cost storage systems have limited input-output operations per second (IOPS) due to a relatively small command queue depth, which results in underutilization of backend resources, as they can only process commands sequentially rather than in parallel.

Innovation Solution

Implementing a dynamic command clustering system where a controller analyzes command patterns and assigns a single cluster identifier to groups of commands, allowing these commands to be executed in parallel, thereby increasing the effective command queue depth and optimizing resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If commands are queued sequentially in a small command queue depth system, then device cost is reduced, but input-output operations per second (IOPS) is limited

Engineering Contradiction:
ImproveIOPSVSAvoidcommand queue depth
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments a single command queue into multiple virtual command queues (VCQs), each capable of holding commands with different task identifiers. This segmentation allows the system to maintain a relatively small physical queue depth while achieving higher effective throughput by distributing commands across multiple virtual queues, thereby improving IOPS without proportionally increasing device complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an additional dimension to command queue management by adding task identifier-based virtualization. Instead of simply increasing queue depth in one dimension (number of commands), the system creates multiple dimensional layers (VCQs) organized by task identifiers, allowing parallel processing of command batches and achieving higher IOPS from the same physical queue resources.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If backend resources are accessed sequentially, then device complexity is minimized, but resource utilization is underoptimized

Engineering Contradiction:
Improveresource utilizationVSAvoidcommand processing mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-organizing commands into virtual queues based on task identifiers before they reach the backend processing stage. This pre-grouping allows backend resources to process batches of related commands more efficiently, improving resource utilization by reducing context switching and setup overhead between different task types.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic command batching and processing mechanisms where the system can adaptively group commands by task identifiers and process them in optimized batches. This dynamic approach allows backend resources to switch between processing different task types more efficiently, improving overall resource utilization compared to rigid sequential processing.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11775210B2Storage system and method for device-determined, application-specific dynamic command clustering
Publication Date: 2023.10.03 SANDISK TECHNOLOGIES LLC
  • US11775210B2 patent drawing
  • US11775210B2 patent drawing
  • US11775210B2 patent drawing

AI summary

A storage system and method for device-determined, application-specific dynamic command clustering are provided. In one embodiment, the storage system comprises a memory and a controller. The controller is configured to analyze commands received from a host to detect a pattern of a plurality of commands; inform the host of the pattern; receive, from the host, a single command comprising an identifier associated with the plurality of commands; and in response to receiving the single command from the host, executing the plurality of commands. Other embodiments are provided.