Storage Cluster Manifests for Erasure-Coded Segment Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage cluster technologies face challenges in balancing the advantages of replication and erasure coding for data reliability, as replication leads to high bandwidth and storage overhead, while erasure coding incurs processing overhead and complicates segment identification and recovery after hardware failures.

Innovation Solution

A storage cluster that combines object replication and erasure coding, using a manifest file to manage segments and enable efficient reconstruction and recovery without the need for an extra control database, allowing switching between replication and erasure coding based on object properties or client instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If replication is used to store digital objects, then data reliability is improved, but storage overhead and bandwidth consumption increase significantly

Engineering Contradiction:
Improvedata reliabilityVSAvoidstorage overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The digital object is divided into multiple segments, which are then distributed across different nodes in the storage cluster. This segmentation enables the system to use erasure coding instead of full replication, reducing storage overhead while maintaining data reliability through the mathematical properties of erasure codes that allow reconstruction from any sufficient subset of segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the storage parameter from replication factor to erasure coding parameters (k, m values). By adjusting these parameters, the system can optimize the balance between storage efficiency and data reliability, storing only k+m segments instead of multiple full replicas, thereby reducing storage overhead while maintaining the ability to recover data.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If erasure coding is used to store digital objects, then storage footprint is reduced, but processing overhead and segment identification complexity increase

Engineering Contradiction:
Improvestorage footprintVSAvoidprocessing overhead
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-calculating and storing the erasure coding parameters (k, m values) and segment identifiers alongside the encoded segments. This preliminary organization of metadata enables efficient segment identification and reconstruction without requiring complex real-time calculations, thereby reducing processing overhead during data retrieval and recovery operations.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If erasure coding is used, then storage efficiency is improved, but recovery time after hardware failure increases due to segment identification complexity

Engineering Contradiction:
Improvestorage efficiencyVSAvoidrecovery time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system introduces an intermediary mechanism in the form of a distributed metadata structure stored across the cluster nodes. This metadata contains segment identifiers, encoding parameters, and location information that enables rapid identification and localization of required segments after hardware failure, significantly reducing recovery time while maintaining storage efficiency benefits of erasure coding.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9148174B2Erasure coding and replication in storage clusters
Publication Date: 2015.09.29 DATACORE SOFTWARE CORP
  • US9148174B2 patent drawing
  • US9148174B2 patent drawing
  • US9148174B2 patent drawing

AI summary

A cluster receives a request to store an object using replication or erasure coding. The cluster writes the object using erasure coding. A manifest is written that includes an indication of erasure coding and a unique identifier for each segment. The cluster returns a unique identifier of the manifest. The cluster receives a request from a client that includes a unique identifier. The cluster determines whether the object has been stored using replication or erasure coding. If using erasure coding, the method reads a manifest. The method identifies segments within the cluster using unique segment identifiers of the manifest. Using these unique segment identifiers, the method reconstructs the object. A persistent storage area of another disk is scanned to find a unique identifier of a failed disk. If using erasure coding, a missing segment previously stored on the disk is identified. The method locates other segments. Missing segments are regenerated.