Inline Storage Data Compression via Dynamic I/O Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy data compression techniques are inefficient in highly dynamic computing and storage systems, as they compress entire disks or files in batches, leading to prolonged storage of uncompressed data, which increases storage capacity demands and processing power requirements.

Innovation Solution

Implementing fine-grained compression analysis during storage I/O operations to dynamically determine compression parameters for each data unit, allowing for in-line compression and decompression based on attributes such as compressibility ratio, data type, and access frequency, thereby reducing storage capacity and processing power needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If legacy batch compression techniques are used to compress entire disks or files, then compression is eventually achieved, but uncompressed data remains in storage for prolonged periods, increasing storage capacity demands and processing power requirements

Engineering Contradiction:
Improvecompression efficiencyVSAvoidstorage capacity demand
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments data into fine-grained data units (e.g., blocks or extents) rather than treating entire files or disks as single units. This segmentation enables selective compression of individual data units based on their compressibility characteristics, allowing the system to compress only those units that benefit from compression while leaving others uncompressed, thereby reducing overall storage capacity demand while maintaining productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic compression analysis that continuously evaluates data units during storage I/O operations. Compression parameters are determined in real-time based on current data characteristics, access patterns, and system state. This dynamic approach allows the system to adapt compression strategies on-the-fly, ensuring that compressible data is compressed promptly rather than waiting for batch operations, thus reducing prolonged storage of uncompressed data.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If fine-grained compression analysis is performed during storage I/O operations, then storage capacity and processing power needs are reduced, but system complexity increases

Engineering Contradiction:
Improvestorage capacity demandVSAvoidcompression system complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent performs preliminary compression analysis on data units during I/O operations before they are permanently written to storage. By evaluating compressibility early in the data lifecycle and applying compression during the I/O path, the system avoids later decompression and recompression cycles. This preliminary action reduces the need for complex post-processing compression mechanisms while achieving storage capacity reduction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The compression system is integrated directly into the storage I/O path, allowing it to service itself through the existing data flow. The same I/O operations that move data also trigger compression analysis and execution, eliminating the need for separate, complex compression daemons or batch processing systems. The storage system itself performs the compression work as part of its normal operation, reducing overall system complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11740818B2Dynamic data compression
Publication Date: 2023.08.29 NUTANIX INC
  • US11740818B2 patent drawing
  • US11740818B2 patent drawing
  • US11740818B2 patent drawing

AI summary

Techniques for performing compression operations on persistently-stored data blocks during read/write commands. A method embodiment performs in-line data compression operations over data blocks referenced by a caller. The in-line data compression operations are performed during execution of a storage input-output (I/O) command, between the event of receipt of the storage I/O command and the event of returning status of the storage I/O command. The storage I/O operation is associated with at least one data group comprising one or more data blocks that are identified by the caller. Upon receipt of the storage I/O command, one or more compression rules are applied to the data blocks to determine one or more compression parameters, which compression parameters are used to form specific compression operations that are performed over at least a portion of the data group. The status pertaining to the execution of the storage I/O operation is returned to the caller.