Data Signature Verification for Lost Write Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems fail to detect and address stale or out-of-date data due to uncompleted write operations, which can lead to invalid data versions being used during subsequent reads, especially in systems with hardware and software issues and mirroring techniques.

Innovation Solution

A method involving the use of a relative update identifier, stored in memory and on the data storage device, to track the version of data blocks, allowing for data verification by comparing in-memory and stored identifiers, and determining the most recent version in case of discrepancies, especially in systems with pending write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If write operations are processed by first storing data in cache and writing out later, then write performance is improved, but data integrity deteriorates due to potential lost writes

Engineering Contradiction:
Improvewrite performanceVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by storing the update identifier in both cache and on-disk metadata before the actual data write completes. This preliminary recording of the update version allows the system to later verify whether the write actually occurred, preventing lost writes while maintaining caching performance benefits

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by comparing the update identifier stored in cache with the identifier on-disk during read operations. This feedback mechanism detects whether writes were successfully persisted and triggers appropriate error handling or data recovery actions when mismatches are detected

Inventive Principle:
Principle #23Feedback

2Speed

If data is stored in cache for later writing, then system speed is improved, but detection of stale data becomes difficult

Engineering Contradiction:
Improvesystem speedVSAvoiddetection of stale data
Core Design Contradiction:
SpeedVSDifficulty of detecting and measuring

Solution Approach 1:

The system uses update identifiers that act as version markers, changing with each write operation. These identifiers are stored both in cache and on-disk, allowing the system to 'detect color changes' (version changes) and identify when cached data has become stale by comparing the identifiers, thus solving the detection problem while maintaining caching speed benefits

Inventive Principle:
Principle #32Color changes

3Reliability

If multiple mirrors are used for data redundancy, then reliability is improved, but determining the most recent version becomes complex

Engineering Contradiction:
Improvedata redundancyVSAvoidversion determination complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system changes the parameter being tracked from complex data content comparison to simple update identifier version numbers. Each mirror is associated with an update identifier, and determining the most recent version becomes a simple matter of comparing these numeric parameters rather than analyzing complex data states, thus reducing determination complexity while maintaining redundancy reliability

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7454668B1Techniques for data signature and protection against lost writes
Publication Date: 2008.11.18 EMC IP HLDG CO LLC
  • US7454668B1 patent drawing
  • US7454668B1 patent drawing
  • US7454668B1 patent drawing

AI summary

Described are techniques for verifying data. A write operation request for writing to a first data block is received. A first copy of an identifier for said first data block in a memory is updated. A second copy of the identifier for the first data block is updated. The second copy is stored with the first data block on a data storage device. A read operation request is received for the first data block. The first data block and an associated identifier from the data storage device are read. Data verification processing is performed for the first block in accordance with the associated identifier, the first copy from the memory, and any pending write operations for the first data block.