Erasure Code Block Updates With Lower I/O in Multi-Mirror Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed storage systems, the recalculation of code blocks in erasure coding systems can be performance-intensive due to the need for numerous I/O operations, especially when storage locations are unavailable, impacting overall system performance.

Innovation Solution

A method is developed to determine the operation cost of generating an updated code block based on either the plurality of data blocks or the existing code and data blocks, choosing the method with the lowest read operation cost to efficiently regenerate the code block.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code block recalculation is performed using traditional erasure coding methods, then data redundancy and reliability are maintained, but system performance deteriorates due to numerous I/O operations

Engineering Contradiction:
Improvedata redundancyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system pre-calculates and stores operation costs for different code block regeneration methods before actual data updates occur. When a data block needs updating, the system has already determined the most efficient regeneration path, avoiding runtime performance penalties while maintaining data redundancy through proper code block regeneration.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If code block regeneration reads from multiple data blocks, then accurate code block updates are achieved, but I/O operation count increases

Engineering Contradiction:
Improvecode block accuracyVSAvoidI/O operations
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The system dynamically selects between two different code block regeneration methods based on real-time conditions: reading from multiple data blocks when available for accurate regeneration, or reading from existing code blocks when fewer I/O operations are needed. This dynamic adaptation maintains code block accuracy while minimizing I/O operations based on current system state.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of code block regeneration by calculating and comparing operation costs for different methods. It selects the method with the lower operation cost, thereby changing from a fixed regeneration approach to a flexible one that adapts to current data block availability and performance requirements.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If storage locations are unavailable during code block regeneration, then system availability is reduced, but data protection is maintained through reconstruction

Engineering Contradiction:
Improvedata protectionVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system pre-calculates operation costs for code block regeneration methods, including scenarios where storage locations may be unavailable. By having regeneration strategies predetermined and cost-analyzed in advance, the system can quickly switch to alternative methods when storage locations are unavailable, maintaining data protection while minimizing impact on system availability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10270469B2Efficient data write approach for distributed multi-mirror erasure coding system
Publication Date: 2019.04.23 VMWARE INC
  • US10270469B2 patent drawing
  • US10270469B2 patent drawing
  • US10270469B2 patent drawing

AI summary

Certain embodiments described herein are generally directed to generating an updated version of an existing code block in response to a data update to an existing data block of a plurality of data blocks in a distributed multi-mirror erasure coding system. For example, in some embodiments, a first operation cost to generate the updated version of the existing code block by a first method based on the plurality of data blocks and the data update is determined. In certain embodiments, a second operation cost to generate the updated version of the existing code block by a second method based on the existing code block, the existing data block, and the data update is determined. In some embodiments, if the first operation cost is less than or equal to the second operation cost, the first method is used. Otherwise, the second method is used.