Command Tags Prevent Data Corruption in NVMe-oF Multi-Path Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data corruption is a risk in multi-path networks when multipathing software and NVMe-oF are involved, leading to stale data overwriting newer data and impacting various subsystem types.
Innovation Solution
The implementation of command tags (CTs) in write commands allows hosts and controllers to track processing statuses, preventing data corruption by ensuring that stale data is not overwritten.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multipathing software and NVMe-oF are used to improve network redundancy and data transfer, then reliability is improved, but data corruption risk increases due to stale data overwriting newer data
Solution Approach 1:
The system performs preliminary tracking of command tags and their processing statuses before data write operations complete. By maintaining a record of which commands have been processed and their current state, the system can prevent stale data from overwriting newer data before the stale command completes, thus preventing data corruption proactively
Solution Approach 2:
The system implements feedback mechanisms where controllers report command processing statuses back to the host. This feedback loop allows the host to track which commands are still in progress and make informed decisions about retrying failed commands, ensuring that stale data does not overwrite newer data
2Reliability
If command tags are tracked to prevent data corruption, then data integrity is improved, but system complexity increases
Solution Approach 1:
The patent introduces command tags as intermediary identifiers that link write commands to their data. These tags act as mediators between the host and controllers, enabling tracking and coordination without requiring complex direct communication protocols. The tags serve as a simple, standardized mechanism to convey command identity and status information across the multi-path network
Solution Approach 2:
Command tags serve multiple functions simultaneously: they identify unique commands, track processing status, enable coordination between multiple controllers, and prevent data corruption. This multi-functionality reduces the need for separate mechanisms for each purpose, thereby managing system complexity while achieving data integrity
Data Source
AI summary
Embodiments of using command tags are described to prevent data corruption in a multi-path network in an NVMe over Fabrics (NVMe-OF) environment. A command tag is incorporated in a written command send from a host for command identification. Once the host detects an issue of a first link between the host and namespace, the host may immediately send, using a second link, a retry of a command that was previously sent by the host to a first controller via the first link. The retry of the command comprises the same command tag which allows the first and second controllers to detect an execution condition of the first write command, and thus avoiding repeat execution of the first write command by the first controller and the second controller. Therefore, data corruption may be addressed efficiently to the root cause.


