Dual-Mode Erasure Coding for Stable Distributed Data Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current erasure codes, such as Reed-Solomon, are not well-suited for distributed data storage due to unpredictable performance during erasure operations, particularly in non-systematic modes, leading to inefficiencies in data reconstruction and increased computational demands.

Innovation Solution

The development of a high-performance erasure code, OPTFEC, which employs a dual-mode systematic and non-systematic Mojette transform for encoding and decoding, dividing the decoding process into preamble and stable phases, utilizing arithmetic operations for efficient data reconstruction and error correction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Reed-Solomon systematic code is used for non-erasure operations, then optimal performance is achieved, but performance suffers severely when erasure is present

Engineering Contradiction:
Improvedecoding performanceVSAvoidperformance consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a dynamic code switching mechanism that adapts the encoding/decoding approach based on the presence or absence of erasures. When no erasures are detected, the system uses systematic Reed-Solomon code for optimal performance. When erasures are detected, it switches to non-systematic Mojette transform code to maintain reliable decoding. This dynamic adaptation resolves the contradiction by allowing the system to optimize for speed when possible while ensuring reliability when necessary.

Inventive Principle:
Principle #15Dynamics

2Reliability

If Mojette transform non-systematic code is used, then erasure reconstruction is improved, but CPU cycles increase due to larger parity chunk size

Engineering Contradiction:
Improveerasure reconstruction capabilityVSAvoidCPU cycles
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies different code characteristics to different operational contexts: systematic codes with smaller parity chunks are used when erasures are absent, while non-systematic codes with larger parity chunks are used when erasures are present. This local optimization allows the system to use the appropriate code properties only where needed, reducing unnecessary CPU cycle consumption while maintaining erasure reconstruction capability when required.

Inventive Principle:
Principle #3Local quality

3Reliability

If data is replicated over several DC sites, then data availability is improved, but data multiplication and maintenance work increase

Engineering Contradiction:
Improvedata availabilityVSAvoiddata volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the fundamental parameter of data redundancy from replication (creating multiple identical copies) to erasure coding (creating encoded fragments where any k of n fragments can reconstruct the original data). This parameter change allows the system to achieve the same data availability goal with reduced data volume, as erasure-coded data requires only k fragments out of n total fragments for reconstruction, whereas replication would require storing all n copies.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10523244B2Device and associated methodoloy for encoding and decoding of data for an erasure code
Publication Date: 2019.12.31 ZEBWARE AB
  • US10523244B2 patent drawing
  • US10523244B2 patent drawing
  • US10523244B2 patent drawing

AI summary

A method of redundantly encoding data includes formatting the data into columns and rows, and generating first and second sets of projections of the data using an encoding transform. For each set of projections generated, an encoding parameter of the encoding transform is set to a different value. The first and second sets of projections are stored as the encoded data. A decoding method reads settings including an indication of a number of data fragments. The number of data fragments is compared to a number of projections in a first set of projections of the encoded data in order to determine whether to use a first or a second decoding mode. The encoded data is then decoded according to the selected decoding mode and the result is outputted.