Priority-Based Storage Pool Allocation for Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file systems face inefficiencies in managing storage space allocation, particularly when handling large files and multiple disks, as they lack awareness of used versus free blocks, leading to over-provisioning and suboptimal data access.

Innovation Solution

Implementing a priority-based allocation method within a storage pool that divides storage into metaslabs, each with associated allocation priorities, allowing for efficient block allocation and data writing based on priority comparison, thereby optimizing storage usage and access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional file systems manage storage space allocation without awareness of used versus free blocks, then storage space management is simplified, but storage efficiency deteriorates leading to over-provisioning and unused space

Engineering Contradiction:
Improvestorage space managementVSAvoidstorage efficiency
Core Design Contradiction:
Ease of operationVSLoss of substance

Solution Approach 1:

The storage pool is divided into multiple metaslabs, each independently managed with its own allocation priority. This segmentation allows the system to track and manage free blocks at the metaslab level, improving storage efficiency without requiring complete awareness of all blocks across the entire storage pool, thus maintaining operational simplicity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The allocation manager automatically performs block allocation and priority management without requiring manual intervention. The system self-regulates by comparing allocation priorities and selecting target metaslabs, eliminating the need for complex manual storage management while improving efficiency through automated tracking of used versus free blocks.

Inventive Principle:
Principle #25Self-service

2Device complexity

If blocks are allocated without priority-based selection, then allocation process is simpler, but data access speed deteriorates due to suboptimal block placement

Engineering Contradiction:
Improveallocation processVSAvoiddata access speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

Different metaslabs are assigned different allocation priorities based on their characteristics and current state. The allocation manager selects target metaslabs by comparing these priorities, ensuring that data blocks are placed in optimally suited locations. This local differentiation improves data access speed without requiring complex global optimization algorithms.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically changes the allocation priority parameter of metaslabs based on their current state (used versus free blocks). This parameter change enables the allocation process to adapt to current storage conditions, improving data access speed by placing blocks in metaslabs with favorable characteristics while maintaining a relatively simple allocation mechanism.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If storage pool over-provisions to ensure space availability, then space availability is improved, but storage efficiency deteriorates due to unused space

Engineering Contradiction:
Improvespace availabilityVSAvoidstorage efficiency
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The allocation priority of metaslabs is dynamically adjusted based on their current state of used versus free blocks. This dynamic parameter allows the system to respond to changing storage conditions, ensuring space availability for new allocations while minimizing unused space by directing allocations to metaslabs with available capacity rather than maintaining static over-provisioning.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The allocation manager uses feedback from the current state of metaslabs (tracking used versus free blocks) to make allocation decisions. By comparing allocation priorities that reflect current storage conditions, the system ensures space availability while improving storage efficiency, eliminating the need for static over-provisioning that creates unused space.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7584229B2Method and system for priority-based allocation in a storage pool
Publication Date: 2009.09.01 ORACLE AMERICAN INC
  • US7584229B2 patent drawing
  • US7584229B2 patent drawing
  • US7584229B2 patent drawing

AI summary

A method for priority-based allocation in a storage pool involves receiving a request to write a data item in the storage pool, where the storage pool includes multiple metaslabs, and where each of the metaslabs includes a contiguous region of data. The method further involves determining a target metaslab selected from the multiple metaslabs by comparing multiple allocation priorities, where each of the allocation priorities is associated with one of the metaslabs, allocating a block to the target metaslab, and writing the block to the target metaslab, where the block includes a portion of the data item.