Per-Block Replication Policy for Granular Storage Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current file systems lack the ability to specify replication types at a granular level, such as per-block, per-file, or per-file system, which limits their efficiency in data protection and recovery.

Innovation Solution

A method and system that allow for per-file and per-block replication by determining a replication type using a replication policy associated with each block, and allocating the necessary physical blocks accordingly, enabling flexible and efficient data storage and retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional file system replication schemes are used, then data protection is provided at the file level, but granular control over replication is lost

Engineering Contradiction:
Improvegranular control over replicationVSAvoidreplication management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments replication control from the file level down to the block level. Each block can have its own replication attributes stored in the inode structure, allowing independent replication decisions for different blocks within the same file. This segmentation enables granular control while maintaining a relatively simple implementation by leveraging existing block-level data structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by allowing different blocks to have different replication characteristics. Instead of uniform replication across a file, each block can be configured with specific replication factors and policies based on its importance, access patterns, or storage requirements. This is achieved by storing replication attributes directly with each block's inode entry.

Inventive Principle:
Principle #3Local quality

2Reliability

If per-block replication is implemented, then data protection efficiency is improved, but storage overhead increases

Engineering Contradiction:
Improvedata protection efficiencyVSAvoidstorage overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies partial action by implementing replication only where needed at the block level, rather than uniformly across all data. Blocks can be selectively replicated based on their importance, access patterns, or failure risk. This allows the system to provide enhanced protection to critical blocks while avoiding unnecessary replication overhead for less critical blocks.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If replication policy is determined at block level, then data retrieval flexibility is improved, but system complexity increases

Engineering Contradiction:
Improvedata retrieval flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent achieves universality by using the existing inode structure to store replication attributes for blocks. This multi-functional approach allows the same data structure to serve both block identification and replication configuration purposes, eliminating the need for separate replication management structures and reducing overall system complexity despite the added functionality.

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

Data Source

PatentUS7873799B2Method and system supporting per-file and per-block replication
Publication Date: 2011.01.18 ORACLE AMERICAN INC
  • US7873799B2 patent drawing
  • US7873799B2 patent drawing
  • US7873799B2 patent drawing

AI summary

A method for writing data to a storage pool, involving receiving a first write operation to write a first block to the storage pool, determining a first replication type for the first block using a first replication policy associated with the first block, determining a first number of physical blocks required to write the first block to the storage pool using a size of the first block and the first replication type, and writing the first block, in accordance with the first replication policy, to the storage pool by filling in the first number of physical blocks.