Balanced Reed-Solomon Coding for Load-Balanced Distributed Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing error-correcting codes in distributed storage systems face inefficiencies in data replication and computational load balancing, particularly in handling erasures and errors across multiple nodes, leading to bottlenecks and increased replication needs.

Innovation Solution

The implementation of balanced and sparsest Reed-Solomon codes, which utilize a generator matrix with specific weight constraints to evenly distribute computational load and minimize data replication, allowing for efficient error correction and erasure recovery across distributed storage nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional error-correcting codes are used in distributed storage systems, then data can be recovered from errors and erasures, but computational load is unevenly distributed across nodes causing bottlenecks

Engineering Contradiction:
Improveerror correction capabilityVSAvoidcomputational load balancing
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by designing a Reed-Solomon code where different nodes have different local computation requirements. The generator matrix is constructed such that nodes with better computational resources handle more complex encoding/decoding operations, while nodes with limited resources perform simpler operations. This unequal distribution of computational tasks across nodes resolves the load balancing problem while maintaining overall system reliability.

Inventive Principle:
Principle #3Local quality

2Reliability

If redundant data is added for error correction, then data can be recovered from disk failures, but data replication increases

Engineering Contradiction:
Improvedisk failure recoveryVSAvoiddata replication
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the parameters of Reed-Solomon codes to optimize the balance between redundancy and replication. Specifically, it uses varied redundancy levels across different data blocks or segments, adjusting the code rate according to the importance or access frequency of different data portions. This allows the system to maintain error correction capability while minimizing overall data replication across the distributed storage network.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If more redundant data is stored across nodes, then erasure recovery is improved, but storage efficiency decreases

Engineering Contradiction:
Improveerasure recovery capabilityVSAvoidstorage efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the distributed storage system into multiple independent or semi-independent zones, groups, or clusters of nodes. Each segment uses Reed-Solomon coding with parameters optimized for its specific requirements. This segmentation allows the system to achieve high erasure recovery capability within each segment without requiring excessive redundancy across the entire system, thereby improving storage efficiency while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10425106B2Balanced Reed-Solomon codes
Publication Date: 2019.09.24 CALIFORNIA INST OF TECH
  • US10425106B2 patent drawing
  • US10425106B2 patent drawing
  • US10425106B2 patent drawing

AI summary

Balanced Reed-Solomon codes in accordance with embodiments of the invention enable balanced load in distributed storage systems. One embodiment includes a storage controller, wherein the storage processor is configured by the controller Reed-Solomon application to: receive a data segment; partition the data segment into a first block of data and a second block of data; transmit the first block of data to a first node controller in the plurality of node controllers; transmit the second block of data to a second node controller in the plurality of node controllers; wherein the node processor in the first node controller is configured by the node Reed-Solomon application to: receive the first block of data; encode the first block of data using a balanced and sparsest error-correcting code; and store the encoded first block of data in the node memory of the first node controller.