Erasure Coding for Single-Image Memory Contiguous Corruption

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data protection methods for IoT devices and flash memory are inadequate in handling significant contiguous corruption, particularly in scenarios where extensive corruption occurs, and there is limited space for storing full backups.

Innovation Solution

An erasure coding scheme is implemented, where data is divided into stripes that alternate in a pattern, with each stripe composed of data blocks, and a hash is saved for each block. This scheme allows for the identification and repair of bad blocks based on the stripe and corresponding erasure code blocks, ensuring data integrity and recovery from corruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional data protection methods are used, then implementation is simple, but they cannot handle significant contiguous corruption

Engineering Contradiction:
Improvedata protection capabilityVSAvoidprotection scheme complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides data into multiple stripes with alternating patterns, where each stripe contains data blocks and erasure code blocks. This segmentation allows the system to handle contiguous corruption by isolating affected segments and recovering them using unaffected segments, thereby improving reliability without requiring a complete backup of all data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-generates erasure code blocks and stores them in alternating stripes alongside data blocks before any corruption occurs. This preliminary action enables rapid recovery when corruption happens, as the recovery mechanism can immediately use the pre-positioned erasure code without needing to compute it during the recovery process, thus improving reliability while maintaining manageable complexity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If full backups are stored for data protection, then data recovery is possible, but storage space is insufficient

Engineering Contradiction:
Improvedata recovery capabilityVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent creates simplified copies of data in the form of erasure code blocks that are distributed across alternating stripes. These copies contain sufficient information to reconstruct the original data but occupy less space than full backups, enabling data recovery while conserving storage resources.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent discards the need for complete full backups by implementing a selective recovery mechanism. When corruption occurs, only the affected stripes need to be recovered using erasure coding, rather than restoring entire backups. This approach maintains data recovery capability while significantly reducing the storage space required for protection.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If data is protected against contiguous corruption, then data integrity is improved, but the protection mechanism becomes more complex

Engineering Contradiction:
Improvedata integrityVSAvoidprotection mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a periodic alternating pattern where data stripes and erasure code stripes are interleaved throughout the storage medium. This periodic structure creates a regular, predictable pattern that simplifies the protection mechanism - the system only needs to recognize the alternating pattern and apply appropriate recovery operations, reducing complexity while maintaining data integrity against contiguous corruption.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10901845B2Erasure coding for a single-image memory
Publication Date: 2021.01.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10901845B2 patent drawing
  • US10901845B2 patent drawing
  • US10901845B2 patent drawing

AI summary

Erasure code for data is generated by: calculating the size and bytes of an erasure code block, calculating a number of stripes for the erasure code, and generating each stripe of each block for the erasure code, such that the stripes alternate in a pattern for each block, and saving hashes. A portion of the data is repaired by: for each block of the portion of the data, calculating the stripe of the block, identifying each hash for which the hash of the block of the portion of data does not match the saved hash of the block as a bad block, and for each identified bad block, generating a repair block for the bad block based on the stripe of the block and corresponding block of the data in the erasure coding for the data.