Distributed File Erasure Coding for Fast IO With Low Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualization technologies pose challenges in data management due to higher workload consolidation and the need for instant, granular recovery, particularly in optimizing read and write performance of distributed file systems while limiting memory usage.

Innovation Solution

The solution involves dynamically adjusting the type of error correcting scheme, data chunk grouping, and data slice sizes within a distributed file system to optimize IO performance, using techniques like Reed-Solomon encoding and partitioning files into stripes for efficient storage and retrieval across multiple disks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If error correcting schemes are applied to protect data against bit errors, then data reliability is improved, but memory usage increases

Engineering Contradiction:
Improvedata protectionVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts the type of erasure code applied to data blocks and the size of data slices within chunks based on real-time conditions. This allows the system to optimize between reliability and memory usage by selecting appropriate error correction strength and slice sizes according to current workload and resource availability, rather than using a fixed configuration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes key parameters including the type of erasure code (e.g., Reed-Solomon variants), the number of data blocks, the number of code blocks, and data slice sizes. By adjusting these parameters dynamically, the system can adapt the level of error protection and corresponding memory consumption to match current system conditions and requirements.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If data is partitioned into smaller slices for parallel processing, then IO performance is improved, but memory usage increases

Engineering Contradiction:
ImproveIO performanceVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts the size of data slices within chunks based on current system conditions. By making slice sizes adjustable rather than fixed, the system can optimize parallel processing performance while controlling memory consumption - using smaller slices when parallel processing benefits outweigh memory costs, and larger slices when memory is constrained.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent explicitly changes the size of data slices as a configurable parameter. This allows the system to tune slice dimensions to achieve optimal IO performance for different workload types and system configurations, balancing the benefits of parallel processing against the overhead of managing numerous small slices in memory.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If more data chunks are created for distributed storage, then storage reliability is improved, but device complexity increases

Engineering Contradiction:
Improvestorage reliabilityVSAvoiddata management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments data into chunks that are further divided into slices, with each slice distributed across different data blocks and protected by erasure codes. This hierarchical segmentation allows reliable distributed storage while managing complexity through structured organization - data is divided into manageable units with clear relationships between parent chunks and child slices.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a universal data structure where chunks and slices serve multiple functions: storage units, error protection units, and parallel processing units. This multi-functionality reduces overall system complexity by using a single flexible framework rather than separate mechanisms for each function.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Quantity of substance

If larger data slices are used, then memory usage is reduced, but IO performance deteriorates

Engineering Contradiction:
Improvememory usageVSAvoidIO performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system dynamically adjusts slice sizes based on current conditions, allowing it to respond to changing requirements. When memory pressure is high, larger slices reduce memory usage; when IO performance is prioritized, smaller slices enable better parallel processing. This dynamic adaptation resolves the static trade-off between memory usage and IO performance.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10715184B2Techniques for fast IO and low memory consumption while using erasure codes
Publication Date: 2020.07.14 RUBRIK INC
  • US10715184B2 patent drawing
  • US10715184B2 patent drawing
  • US10715184B2 patent drawing

AI summary

Methods and systems for improving the read and write performance of a distributed file system while limiting memory usage are described. The type of error correcting scheme applied to data, the partitioning of the data into data chunks, and the sizes of data slices within each of the data chunks used for storing electronic files within the distributed file system may be dynamically adjusted over time to optimize for fast IO performance while limiting memory usage (e.g., requiring less than 256 MB of RAM to generate and store code blocks). The file size of an electronic file to be stored, the amount of available memory for generating code blocks, and the amount of available disk space to store the electronic file may be used to set the data sizes of the data slices and the type of erasure code applied to data blocks associated with the data slices.