Packed Storage Commands for Atomic Data Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecompatibility with existing storage hardwareVSAvoidstorage operation efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedata operation completenessVSAvoidcommand execution time
Core Design Contradiction:
ReliabilityVSLoss of time

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

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvecommand processing flexibilityVSAvoiddata integrity
Core Design Contradiction:
Ease of operationVSReliability

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

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8683145B2Packed storage commands and storage command streams
Publication Date: 2014.03.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8683145B2 patent drawing
  • US8683145B2 patent drawing
  • US8683145B2 patent drawing

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.