Storage Block Allocation via Cylinder Group Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data block allocation methods in storage systems lead to data block fragmentation, inefficient allocation of data blocks, and decreased I/O performance due to interleaving of data blocks from multiple files, especially when handling small and large files concurrently, resulting in increased seek time and resource consumption.

Innovation Solution

The method allocates data blocks in an order similar to their logical mapping in the file system hierarchy, using a counter to select cylinder groups for indirect and data blocks, and performs look-behind or look-ahead operations to reserve contiguous blocks, reducing fragmentation and improving I/O performance by maintaining data block locality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional data block allocation methods are used, then file systems can store and retrieve data, but data block fragmentation occurs and I/O performance decreases

Engineering Contradiction:
ImproveI/O performanceVSAvoiddata block fragmentation
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The storage device is divided into multiple cylinder groups, each managing its own data blocks independently. This segmentation allows the file system to allocate blocks within specific cylinder groups, reducing fragmentation and improving I/O performance by keeping related blocks together.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary allocation of data blocks to cylinder groups based on file type and size before actual data storage. This preliminary organization of blocks into appropriate cylinder groups prevents fragmentation and optimizes the physical layout for better I/O performance.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If data blocks from multiple files are allocated concurrently, then storage utilization increases, but seek time increases due to interleaving

Engineering Contradiction:
Improvestorage utilizationVSAvoidseek time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

Different cylinder groups are assigned to different files or file types, creating local quality differentiation. This ensures that data blocks for specific files are concentrated in particular cylinder groups rather than being interleaved across all groups, reducing seek time while maintaining high storage utilization.

Inventive Principle:
Principle #3Local quality

3Device complexity

If indirect blocks are allocated without cylinder group selection, then allocation is simplified, but data block locality is lost

Engineering Contradiction:
Improveallocation complexityVSAvoiddata block locality
Core Design Contradiction:
Device complexityVSStability of the object's composition

Solution Approach 1:

The allocation system dynamically selects cylinder groups based on the file type and current allocation state. This dynamic selection maintains data block locality by choosing appropriate cylinder groups while adapting to different allocation scenarios, balancing complexity and performance requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9934140B1Allocating blocks in storage systems
Publication Date: 2018.04.03 EMC IP HLDG CO LLC
  • US9934140B1 patent drawing
  • US9934140B1 patent drawing
  • US9934140B1 patent drawing

AI summary

A method is used in allocating blocks in storage systems. A block allocation request is received for a file of a file system. The block allocation request includes a data block allocation request and an indirect block allocation request. A type of the file is determined. A cylinder group is selected from a set of cylinder groups for allocating an indirect block based on the block allocation request. A set of data blocks is reserved for allocating a data block based on the type of the file.