Storage Pool Block Allocation Padding for Replication Alignment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file systems face limitations in managing multiple replication levels for data storage, leading to inefficiencies in allocating physical blocks for data writes, particularly when the number of required blocks does not align with the maximum supported replication level, resulting in fragmentation and suboptimal storage utilization.

Innovation Solution

A method and system that determine the number of physical blocks needed for data writes based on the block size and replication type, allocating additional padded blocks if necessary to ensure alignment with the maximum supported replication level, thereby optimizing storage pool utilization and preventing fragmentation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is written to storage pool without padding blocks, then storage allocation is simple, but fragmentation occurs and storage utilization is suboptimal when block count doesn't align with maximum replication level

Engineering Contradiction:
Improvestorage allocation efficiencyVSAvoidblock allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary calculation to determine the required number of physical blocks based on block size and replication type before allocation. It then pads the allocation to the next multiple of the maximum replication level, ensuring alignment is established in advance to prevent fragmentation during subsequent writes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the allocation parameter from the exact calculated block count to the next multiple of the maximum replication level. This parameter transformation ensures that allocations are always aligned with the replication structure, eliminating fragmentation while maintaining simple allocation logic.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If multiple replication levels are supported without pooling, then flexibility is maintained, but storage pool fragmentation increases and utilization decreases

Engineering Contradiction:
Improvereplication level flexibilityVSAvoidstorage utilization
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The storage pool is designed to handle multiple replication types (mirroring, RAID, etc.) within a single unified structure. The system determines the required physical blocks based on the specific replication type and pads to the maximum replication level multiple, allowing one storage pool to serve multiple replication needs without fragmentation.

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

Solution Approach 2:

The system introduces a dimensional transformation by mapping the required block count to the next multiple of the maximum replication level. This dimensional shift from exact block counts to replication-level-aligned counts enables efficient pooling across different replication types while maintaining flexibility.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS7865673B2Multiple replication levels with pooled devices
Publication Date: 2011.01.04 ORACLE AMERICAN INC
  • US7865673B2 patent drawing
  • US7865673B2 patent drawing
  • US7865673B2 patent drawing

AI summary

A method for writing data to a storage pool, including receiving a first write operation for a first block, determining a first replication type for the first block, determining a number of physical blocks (n1) required to write the first block to the storage pool using a size of the first block and the first replication type, if n1 is not a multiple of the maximum supported replication level of the storage pool: allocating a number of padded physical blocks (p1) to n1 until n1+p1 is a multiple of a maximum supported replication level of the storage pool, and writing the first block to the storage pool by filling in the n1 physical blocks.