Fractal Block Mapping for Storage Parallelism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face inefficiencies in mapping data blocks across multiple storage devices, as current methods either limit parallelism in I/O requests or generate too many separate requests, failing to balance the number of storage devices used with the size of the request effectively.

Innovation Solution

The use of a fractal layout, such as a Hilbert space-filling curve, to generate block numbers that progressively increase the number of storage devices accessed as the size of I/O requests grow, ensuring efficient access by laying out blocks in a self-similar pattern across multiple devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If consecutive blocks are mapped to the same storage device, then sequential read performance is improved, but the amount of parallelism is limited

Engineering Contradiction:
Improvesequential read performanceVSAvoidparallelism
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The storage system is segmented into multiple storage devices, and the block mapping is segmented such that different portions of consecutive blocks can be distributed across different devices. This allows sequential reads to be performed in parallel across multiple devices while maintaining good sequential performance within each device.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to block mapping by using fractional block addressing, where blocks are mapped not just to entire devices but to fractional portions of devices. This enables fine-grained control over parallelism while maintaining sequential access patterns.

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

2Productivity

If consecutive blocks are mapped to different storage devices, then parallelism is increased, but too many separate I/O requests are generated

Engineering Contradiction:
ImproveparallelismVSAvoidnumber of I/O requests
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple small I/O requests into fewer larger requests by allowing a single I/O request to span multiple storage devices. The fractional block mapping enables the system to consolidate access to blocks that would otherwise require separate requests, reducing the total number of I/O operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The mapping system is designed to be universal, handling both small and large I/O requests efficiently. The same fractional block mapping mechanism works for requests of any size, automatically optimizing the number of devices accessed and the number of requests generated without requiring different strategies for different request sizes.

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

3Productivity

If the number of storage devices used increases with request size, then optimal utilization is achieved, but the scaling relationship must be carefully controlled

Engineering Contradiction:
Improvestorage device utilizationVSAvoidscaling control
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent changes the mapping parameters dynamically based on the I/O request size. The fractional block mapping uses different mapping strategies depending on the number of blocks requested, allowing the system to optimize device utilization for each request size while maintaining controlled scaling behavior.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10521120B1Intelligently mapping virtual blocks to physical blocks in a storage system
Publication Date: 2019.12.31 PURE STORAGE INC
  • US10521120B1 patent drawing
  • US10521120B1 patent drawing
  • US10521120B1 patent drawing

AI summary

A system, method, and computer-readable storage medium for mapping block numbers within a region to physical locations within a storage system. Block numbers are mapped within a region according to a fractal-based space-filling curve. If the region is not a 2k by 2k square, then the region is broken up into one or more 2k by 2k squares. Any remaining sub-region is centered within a 2k by 2k square, the 2k by 2k square is numbered using a fractal-based space-filling curve, and then the sub-region is renumbered by assigning numbers based on the order of the original block numbers of the sub-region.