Background Write Verification for Data Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computer storage networks, data corruption during write operations can go undetected for extended periods, leading to propagation of errors across RAID stripes, which is inefficient and costly to correct using traditional scrubbing techniques.
Innovation Solution
Implementing a background write verification system that generates context information for each data block, stores it in a FIFO circular buffer, and verifies data during idle storage drive periods, allowing for early detection and correction of corrupted data with minimal overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional scrubbing techniques are used to detect and correct corrupted data, then data integrity can be maintained, but the process takes weeks or longer and is inefficient
Solution Approach 1:
The patent applies preliminary action by performing write verification immediately after data is written to storage, rather than waiting for periodic scrubbing operations. The system verifies data integrity right away, detecting corruption early while it can still be corrected, thus eliminating the need for lengthy future scrubbing operations.
Solution Approach 2:
The patent implements feedback by establishing a verification mechanism that provides immediate confirmation of data integrity after write operations. The system compares written data against expected values and provides real-time feedback on whether the data was written correctly, enabling rapid detection and correction of errors.
2Reliability
If write verification is performed continuously, then data corruption can be detected early, but it increases hardware overhead and interferes with ongoing operations
Solution Approach 1:
The patent applies periodic action by implementing write verification only at specific intervals or under certain conditions rather than continuously. The system verifies data during idle periods or after specific write operations, maintaining data integrity while avoiding constant hardware engagement and interference with ongoing storage operations.
Solution Approach 2:
The patent implements self-service by having the storage system perform its own verification operations without requiring external intervention or complex additional hardware. The system uses existing resources and logic to verify its own data integrity, minimizing the need for separate verification systems or increased hardware complexity.
3Device complexity
If data corruption is not detected immediately, then hardware overhead is reduced, but corrupted data propagates to other blocks in RAID stripe
Solution Approach 1:
The patent applies preliminary action by performing verification immediately after write operations complete, before subsequent write operations can occur. This timing ensures that any corruption is detected and corrected before it can propagate to other blocks in the RAID stripe, preventing the harmful effect while maintaining low hardware overhead.
Solution Approach 2:
The patent implements preliminary anti-action by taking corrective measures immediately when corruption is detected, preventing the spread of corrupted data to other blocks. The system acts quickly to reverse the harmful effect of data propagation by reconstructing corrupted blocks from backup copies before they can affect other parts of the storage system.
Data Source
AI summary
Examples described herein include a system for storing data. The data storage system stores data in one or more storage locations of a storage drive and generates context information that identifies the data associated with each of the one or more storage locations. The context information is stored in a data buffer, and may include at least one of: an index node, a file block number, or a generation count. Further, the data buffer may be a FIFO circular buffer. The data storage system then uses the context information in the data buffer to verify the data stored in the one or more storage locations during an idle time of the storage drive.


