Storage Device Buffer Generation Switching for UNMAP Overlap
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In asynchronous data copying, the sequentiality of write data and UNMAP processing is compromised due to the potential for incomplete buffer transfers, especially when large UNMAP sizes are issued, leading to the risk of meaningless data on the backup side in case of failures.
Innovation Solution
A storage device system that writes area release commands in a generation-managed transmission buffer and switches buffer generations when data write processing overlaps with the UNMAP range, ensuring sequentiality by using dummy data and flags to manage buffer transfers and physical area releases.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If area release command is written in the transmission buffer during asynchronous data copying, then data integrity is maintained, but sequentiality of buffer transfer is compromised when write data overlaps with UNMAP range
Solution Approach 1:
The system performs preliminary detection of overlap between write data range and UNMAP range before executing buffer transfer. When overlap is detected, the system proactively switches buffer generation to prevent sequentiality violation, rather than waiting for the conflict to occur during transfer execution.
Solution Approach 2:
The buffer generation is made dynamic and switchable based on runtime conditions. The system transitions from a static buffer structure to a dynamic one where generation can be switched when overlap is detected, allowing the system to adapt between maintaining sequentiality (by switching generation) and enabling area release (by writing to buffer) based on the current state.
2Reliability
If buffer generation is switched frequently to maintain sequentiality, then data backup reliability is improved, but processing overhead and system complexity increase
Solution Approach 1:
The system changes the generation parameter of the transmission buffer dynamically based on the overlap detection result. This parameter change approach allows the system to maintain simplicity by only switching between discrete generation states rather than implementing complex continuous control mechanisms.
Solution Approach 2:
The overlap detection and generation switching logic is extracted as a separate control mechanism from the main buffer transfer process. This modular extraction allows the core buffer management to remain simple while adding the necessary complexity only where needed for reliability.
3Productivity
If area release processing is performed immediately upon receiving UNMAP command, then storage efficiency is improved, but data integrity is compromised due to incomplete buffer transfers
Solution Approach 1:
The system implements feedback control where the completion status of buffer transfer is continuously monitored. Area release processing at the destination is triggered only when feedback confirms that the buffer transfer corresponding to the UNMAP range is complete, ensuring data integrity while maintaining storage efficiency.
Solution Approach 2:
The system performs preliminary detection of buffer transfer completion before executing area release processing. This preliminary check ensures that the necessary data has been successfully transferred to the destination buffer before the destination performs the area release, preventing data integrity issues.
Data Source
AI summary
A storage device communicably coupled to a host device and another storage device includes a memory and a processor coupled to the memory and configured to: write, in a case where an area release command of a transaction volume is issued from the host device while data backup processing is performed with the another storage device using a generation-managed transmission buffer, the area release command in a first generation of the transmission buffer; and switch, in a case where a range of data write processing requested by the host device overlaps a range specified by the area release command written in the first generation, a generation of the transmission buffer from the first generation to a second generation.


