Multi-Queue Storage Command Prediction via Address Sorting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems struggle to predict next read commands effectively in multi-thread environments due to shuffled command sequences, leading to reduced input-output operations per second (IOPs) and throughput performance, as conventional history-pattern-matcher modules designed for single-thread operations fail to handle the pseudo-random shuffling of commands in multi-thread systems.
Innovation Solution
A storage system that sorts read commands based on logical block addresses and maintains a history patterns log to predict the next read command by identifying the most-frequently-occurring logical block address, even in multi-thread environments, using a method that re-orders command sequences to reveal underlying patterns and adapts pattern length for accurate prediction.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional history-pattern-matcher modules designed for single-thread operations are used, then prediction capability works for single-thread sequences, but prediction accuracy deteriorates in multi-thread environments due to pseudo-random shuffling of commands
Solution Approach 1:
The patent segments the multi-thread command stream by maintaining separate history logs for each thread or queue. The controller identifies and separates commands originating from different threads, maintaining individual pattern histories for each thread rather than mixing them together. This segmentation preserves prediction accuracy for each thread while handling multiple threads concurrently.
Solution Approach 2:
The patent adds a thread identification dimension to the command processing. Each command is tagged with its source thread identifier, and the history-pattern-matcher operates in this extended dimension by selecting and processing only commands from the relevant thread. This dimensional separation allows the system to maintain single-thread prediction accuracy while supporting multi-thread environments.
2Productivity
If read commands are processed in the order received from multi-thread queues, then processing is simple, but prediction capability is lost due to shuffled sequences
Solution Approach 1:
The patent performs preliminary sorting of read commands based on logical block addresses before processing them for prediction. By pre-sorting the commands in ascending order of their logical block addresses, the system restores the sequential patterns that are essential for accurate prediction, while still maintaining efficient processing through the sorted order.
Solution Approach 2:
Instead of trying to predict patterns in the shuffled multi-thread command sequence, the patent inverts the approach by sorting commands in ascending order of logical block addresses. This inversion transforms the random-looking shuffled sequence into a structured sequence where patterns become visible and predictable, enabling accurate next-command prediction.
3Productivity
If the storage system implements sorting and pattern matching for next command prediction, then IOPs and throughput improve, but system complexity increases
Solution Approach 1:
The patent implements a self-service mechanism where the history-pattern-matcher module automatically learns and adapts to the specific access patterns of each thread without external intervention. The module continuously updates its internal history logs based on observed command sequences, automatically adjusting to changing patterns. This self-learning capability reduces the need for complex external control logic while maintaining high prediction accuracy.
Data Source
AI summary
A storage system and sorting-based method for random read command prediction in a multi-queue system are provided. In one embodiment, a method for command prediction is performed in a storage system comprising a memory and being in communication with a host. The method comprises receiving a read command sequence from the host, wherein read commands in the read command sequence originate from a plurality of command queues in the host such that read commands in the read command sequence received from the host are out of order; sorting read commands in the read command sequence received from the host based on logical block addresses; and predicting a next read command from the sorted read commands. Other embodiments are provided.


