Storage System Command Processing with Port Revision Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional storage systems continue to process commands and data 'in flight' even after a host disconnects, leading to resource wastage and performance degradation due to the inability to proactively identify and purge stale commands.
Innovation Solution
Implementing a command processing component within the storage device's system controller to proactively identify commands associated with status changes, tag them with port revision identifiers, and abort or purge commands that are no longer valid, thereby preventing resource consumption and improving SSD performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the storage device continues processing commands after host disconnection, then command execution completeness is maintained, but resource consumption increases and performance degrades
Solution Approach 1:
The system performs preliminary actions by tagging commands with port revision identifiers before execution. When a host disconnects, the port revision identifier changes, allowing the system to proactively identify and purge stale commands before they complete execution, thus preventing resource wastage while maintaining reliability for valid commands.
2Productivity
If the storage device purges commands upon detecting host disconnection, then resource consumption is reduced, but commands may be aborted before completion
Solution Approach 1:
The port revision identifier serves as an intermediary mechanism that mediates between command execution and host connection status. Commands are tagged with the port revision identifier at issuance, and the system compares current port revision identifiers with those associated with in-flight commands to determine whether to purge, thus ensuring only stale commands are aborted while valid commands complete reliably.
3Measurement precision
If the storage device tracks and monitors command status continuously, then stale commands can be identified accurately, but system complexity increases
Solution Approach 1:
The system changes the parameter tracking approach by using port revision identifiers instead of continuously monitoring individual command statuses. When a host disconnects, the port revision identifier is updated, and this single parameter change automatically invalidates all associated in-flight commands, achieving accurate stale command identification with minimal complexity.
Data Source
AI summary
A command from a host is received via a port of a storage system. The port is assigned a current port revision identifier. The current port revision identifier of the port is associated with the command. Responsive to a status change associated with the port, an updated port revision identifier is assigned to the port to replace the current port revision identifier of the port and execution of the command is aborted responsive to determining that the current port revision identifier associated with the command is different than the updated port revision identifier of the port.


