Stripe Selection for RAID Storage Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed storage systems, existing methods for storing data in RAID volumes do not efficiently utilize available free space across stripes, leading to suboptimal storage efficiency and potential performance degradation due to fragmentation issues.

Innovation Solution

A method and system that select a stripe block size supported by the RAID volume and identify a stripe with the smallest amount of free space sufficient to accommodate data, prioritizing the filling of partially filled stripes over empty ones to maintain efficient storage and reduce fragmentation, using arrays of lists to manage stripe identifiers based on free space, and updating lists accordingly after data storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is stored in any stripe with sufficient free space, then storage capacity is utilized, but storage efficiency deteriorates due to fragmented free space distribution

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoidstorage efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent changes the selection parameter from any stripe with sufficient space to the stripe with the minimum sufficient free space. This parameter change optimizes storage efficiency by filling partially filled stripes first, reducing fragmentation, and maximizing space utilization across the RAID volume.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies different treatment to different stripes based on their fill status. Partially filled stripes are prioritized over empty stripes, creating a local quality distinction that addresses fragmentation at the stripe level while maintaining global storage efficiency.

Inventive Principle:
Principle #3Local quality

2Ease of operation

If stripes are filled in arbitrary order, then storage operations are simple, but fragmentation increases leading to performance degradation

Engineering Contradiction:
Improvestripe selection simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces a specific selection criterion (minimum sufficient free space) that balances operational simplicity with performance. The criterion is straightforward to implement but effectively reduces fragmentation by targeting partially filled stripes, thus maintaining both ease of operation and system performance.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses feedback from the free space status of stripes to guide the selection process. By monitoring and responding to the fill status of each stripe, the system dynamically selects the most appropriate stripe for data storage, preventing fragmentation before it occurs.

Inventive Principle:
Principle #23Feedback

3Ease of manufacture

If empty stripes are filled before partially filled stripes, then allocation is straightforward, but storage efficiency deteriorates due to increased fragmentation

Engineering Contradiction:
Improveallocation simplicityVSAvoidstorage efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent inverts the conventional approach by filling partially filled stripes before empty stripes. This inversion counteracts the natural tendency toward fragmentation and maximizes storage efficiency while maintaining allocation simplicity through the minimum sufficient free space criterion.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS10996882B2Fittest stripe selection for storage of data in storage systems
Publication Date: 2021.05.04 EMC IP HLDG CO LLC
  • US10996882B2 patent drawing
  • US10996882B2 patent drawing
  • US10996882B2 patent drawing

AI summary

A method for storing data in a storage system is provided, the method including: receiving a request to store data in a RAID volume of the storage system; selecting a stripe block size that is supported by the RAID volume, the RAID volume including a plurality of stripes that are formed of blocks having the selected stripe block size; and identifying a given one of the plurality of stripes that includes enough free space to accommodate the data and storing the data in the given stripe, the given stripe including a smaller amount of free space than at least some of the stripes in the plurality that have sufficient free space to accommodate the data.