Inline Compression System for Storage Extent Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data storage systems experience suboptimal compression ratios due to wasted space at the end of each segment, as leftover space is not sufficient to accommodate another compressed extent, leading to inefficient use of storage capacity.

Innovation Solution

Implementing an inline compression system that buffers a stream of block writes in a cache until a certain number are received, then optimizes the packing of compressed data into segments with variable sizes to minimize wasted space, using techniques such as double buffering and distribution algorithms to find the most efficient container configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If data is compressed into segments with fixed size containers, then data organization is simplified, but wasted space increases and compression ratio decreases

Engineering Contradiction:
Improvedata organization complexityVSAvoidwasted storage space
Core Design Contradiction:
Device complexityVSLoss of substance

Solution Approach 1:

The patent implements dynamic segment sizing where containers can accommodate variable numbers of compressed extents based on actual data needs. The system determines optimal container sizes by calculating total compressed data volume and distributing it across containers with flexible block counts, thereby minimizing wasted space while maintaining organizational simplicity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of container size from fixed to variable. By allowing containers to have different numbers of blocks based on the compression ratio and total data volume, the system optimizes storage utilization. The patent calculates optimal block distribution by considering the compressed extent sizes and container capacities, adjusting parameters dynamically to reduce waste.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If fixed-size containers are used for compressed extents, then storage allocation is straightforward, but compression efficiency deteriorates due to insufficient space utilization

Engineering Contradiction:
Improvestorage allocation simplicityVSAvoidcompression efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent performs preliminary calculations to determine optimal container configurations before actual data storage. The system calculates the total volume of compressed data, determines the number of containers needed, and pre-distributes data blocks across containers to maximize space utilization. This preliminary planning maintains allocation simplicity while improving compression efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system transitions from static fixed-size containers to dynamic containers that adapt their size based on compression requirements. The patent implements a distribution algorithm that dynamically assigns varying numbers of blocks to different containers based on the actual compressed data volume, maintaining ease of allocation while significantly improving space utilization and compression efficiency.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10365828B1Techniques for efficiently organizing storage of compressed extents
Publication Date: 2019.07.30 EMC IP HLDG CO LLC
  • US10365828B1 patent drawing
  • US10365828B1 patent drawing
  • US10365828B1 patent drawing

AI summary

A technique for efficiently storing compressed data of a storage object in a data storage includes (a) receiving, in a cache buffer, a number, U, of uncompressed blocks of a uniform size, the uncompressed data blocks received in write requests directed to the storage object; (b) compressing the uncompressed blocks of the cache buffer into respective compressed extents; (c) performing an optimization operation including generating a set of distributions of compressed extents among a plurality of containers and searching the set for a distribution having a minimal total amount of storage taken up by its respective plurality of containers, each container having a respective size equal to a respective integer multiple of the uniform size of the uncompressed data blocks; and (d) storing the compressed extents within a plurality of containers in persistent storage in accordance with the distribution having the minimal total amount of storage taken up by its respective plurality of containers.