Distributed Storage Cluster Erasure Coding Offload

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional distributed storage systems face issues such as high network bandwidth consumption, CPU burden from erasure coding, data cache degradation due to frequent writing, and increased costs from using high-performance flash storage, as they require multiple copies of data blocks to be written across multiple storage nodes.

Innovation Solution

Implementing a distributed storage cluster where a front-end server sends data chunks to backend storage nodes, which use a data cache controller to encode and divide codewords into portions, storing one portion locally and distributing the rest, reducing network bandwidth usage and CPU load by offloading erasure coding to the data cache controller, and migrating data to high-latency storage only when necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple copies of data blocks are written at each storage node, then data reliability is improved, but network bandwidth consumption increases

Engineering Contradiction:
Improvedata reliabilityVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The data block is divided into multiple data chunks, and erasure coding is applied to generate codeword portions that are distributed across different storage nodes. This segmentation allows the system to achieve the same reliability as storing multiple full copies while reducing the total data volume that needs to be transmitted over the network.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of data representation from storing complete duplicate copies to storing encoded portions of the data. By transforming the data through erasure coding, the system maintains reliability (ability to reconstruct original data from lost portions) while reducing the amount of data that must be written to each node and transmitted across the network.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If CPU handles erasure coding and decoding, then data processing capability is improved, but CPU load increases

Engineering Contradiction:
Improvedata processing capabilityVSAvoidCPU load
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The erasure coding and decoding functions are extracted from the CPU and implemented as dedicated hardware circuits within the storage controller. This extraction offloads the computationally intensive encoding and decoding operations from the general-purpose CPU, reducing CPU load while maintaining data processing capability through specialized hardware acceleration.

Inventive Principle:
Principle #2Taking out (Extraction)

3Speed

If data is frequently written to flash storage cache, then data write speed is improved, but data cache degrades over time

Engineering Contradiction:
Improvedata write speedVSAvoiddata cache lifespan
Core Design Contradiction:
SpeedVSDuration of action of stationary object

Solution Approach 1:

By segmenting the data into chunks and applying erasure coding, the system reduces the total amount of data that must be written to the flash storage cache. Each storage node stores only a portion of the encoded data rather than complete copies, which reduces write amplification and extends the lifespan of the flash storage while maintaining acceptable write speeds.

Inventive Principle:
Principle #1Segmentation

4Speed

If high-performance flash storage is used, then data write performance is improved, but system cost increases

Engineering Contradiction:
Improvedata write performanceVSAvoidsystem cost
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system changes the data storage parameter from storing full data copies to storing encoded portions, which reduces the total data volume written to flash storage. This parameter change allows the use of flash storage for performance-critical operations while reducing the overall amount of flash capacity required, thereby lowering system cost while maintaining data write performance.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10268538B2Efficient and enhanced distributed storage clusters
Publication Date: 2019.04.23 CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
  • US10268538B2 patent drawing
  • US10268538B2 patent drawing
  • US10268538B2 patent drawing

AI summary

Storing data is described herein, including: receiving a first data, wherein the first data comprises a portion of a data block; encoding at least a portion of the first data to generate a codeword; dividing the codeword into a plurality of codeword portions; storing a first codeword portion; and sending at least a subset of codeword portions other than the first codeword portion among the plurality of the codeword portions to a plurality of nodes. Receiving acknowledgement of storage of data is also described herein, including: determining whether a first acknowledgement from a first node is received, wherein the first data comprises a portion of a data block; determining whether a second acknowledgement from the first node is received; and in response to receipt of the first acknowledgement and receipt of the second acknowledgment, determining that the first data has been stored.