Packed Storage Commands for Atomic Data Operations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage command systems often make incorrect assumptions about hardware behavior and limitations, leading to inefficiencies and errors such as torn writes and delayed write errors, due to the decomposition of commands into multiple hardware media operations that require multiple roundtrips across storage buses.
Innovation Solution
The implementation of packed storage commands that indicate both source and destination data locations and operations, along with processing guides to control the processing of storage command streams, allowing for single command execution and atomic failure handling, thereby reducing overhead and error risks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data storage commands are decomposed into multiple hardware media commands, then the commands can be processed by existing storage hardware, but the number of roundtrips across storage buses increases and efficiency decreases
Solution Approach 1:
The packed storage command is segmented into multiple hardware media commands by the storage device. The host sends a single packed command containing multiple operations (read, write, finalize) with source and destination data locations, and the storage device internally decomposes this into sequential hardware media commands executed on the media, reducing host-bus roundtrips while maintaining hardware compatibility
Solution Approach 2:
The storage device acts as an intermediary between the host and storage media. It receives packed commands from the host, translates them into appropriate hardware media commands, manages the execution sequence, and handles all interactions with the storage media, thereby eliminating the need for the host to manage individual media commands and reducing bus traffic
2Reliability
If multiple hardware media commands are sent over storage buses, then data operations can be performed, but the number of bus transactions increases and time is lost
Solution Approach 1:
Multiple storage operations are prepared and packaged into a single packed command before being sent to the storage device. The host application or file system pre-assembles the command buffer containing multiple operations (e.g., read from source location, write to destination location, finalize) and sends them atomically over the bus, eliminating multiple separate transactions and reducing total execution time
3Ease of operation
If storage commands are decomposed into multiple operations, then each operation can be handled separately, but the risk of errors like torn writes and delayed write errors increases
Solution Approach 1:
Multiple storage operations that would otherwise be separate and potentially error-prone are merged into a single packed command transaction. The atomic nature of the single bus transaction ensures that either all operations complete successfully or none do, preventing torn writes and delayed write errors that could occur with multiple separate commands. The storage device executes the operations in sequence and manages error handling for the entire group
Data Source
AI summary
A packed command can be received at a storage device. The packed command can include an indicator of a source data location in the storage device and an indicator of a destination data location in the storage device. In response to receiving the packed command, a storage map table in the storage device can be updated. Also, a storage processing guide can be sent to a storage device. The processing guide can include a stream indicator associating the processing guide with a storage command stream. A set of storage commands can also be sent to the storage device. One or more of the commands in the set can each include a stream indicator that matches the stream indicator in the processing guide and identifies the command with the stream.


