# US 2019/0171382 A1 · Dynamic data compression

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0171382 A1
- Document ID: US20190171382A1
- Status: Published application
- Kind: A1
- Application number: 16/255,242
- Filed: 2019-01-23
- Published: 2019-06-06
- Earliest claimed: 2016-12-02
- Assignees: Nutanix, Inc.
- Applicants: Nutanix, Inc.
- Inventors: ChernYih CHEAH; Kiran TATIPARTHI; Manosiz BHATTACHARYYA; Varun Kumar ARORA
- Web page: https://patentgrep.com/patent/US20190171382A1

## CPC

- G06F 3/0638: {Organizing or formatting or addressing of data}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0673: {Single storage device}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 13/20: for access to input/output bus
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

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.

## Claims

### Claim 1

A method, comprising:
receiving a request for a write operation from an application;
applying a compression rule to determine a compression parameter; and
executing the write operation in accordance with the compression parameter by performing an in-line data compression operation.

### Claim 2 (depends on 1)

The method of claim 1, wherein the in-line data compression operations complete before returning a status pertaining to the execution of the write operation to the application.

### Claim 3 (depends on 1)

The method of claim 1, further comprising performing a compression efficiency test over data of the write operation to determine a data unit attribute associated with the write operation.

### Claim 4 (depends on 1)

The method of claim 1, wherein attributes of data of the write operation comprise at least one of, a compression ratio, or a compression size.

### Claim 5 (depends on 1)

The method of claim 1, further comprising updating a set of metadata to describe data of the write operation.

### Claim 6 (depends on 1)

The method of claim 1, further comprising analyzing a stored representation to determine at least one of, one or more compression parameters, or one or more compression operations.

### Claim 7 (depends on 1)

The method of claim 1, further comprising partitioning data of the write operation into one or more data units.

### Claim 8 (depends on 1)

The method of claim 1, wherein the compression parameters characterize at least one of, a storage device, a compression level, a compression type, a compression algorithm, a storage allocation cushion, or a compression delay.

### Claim 9 (depends on 1)

The method of claim 1, wherein data corresponding to the write operation comprises at least one of, one or more extents, one or more slices, one or more blocks, one or more areas, or one or more regions.

### Claim 10

A non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes a set of acts comprising:
receiving a request for a write operation from an application;
applying a compression rule to determine a compression parameter; and
executing the write operation in accordance with the compression parameter by performing an in-line data compression operation.

### Claim 11 (depends on 10)

The computer readable medium of claim 10, wherein the in-line data compression operations complete before returning a status pertaining to the execution of the write operation to the application.

### Claim 12 (depends on 10)

The computer readable medium of claim 10, the set of acts further comprising performing a compression efficiency test over data of the write operation to determine a data unit attribute associated with the write operation.

### Claim 13 (depends on 10)

The computer readable medium of claim 10, wherein attributes of data of the write operation comprise at least one of, a compression ratio, or a compression size.

### Claim 14 (depends on 10)

The computer readable medium of claim 10, the set of acts further comprising updating a set of metadata to describe data of the write operation.

### Claim 15 (depends on 10)

The computer readable medium of claim 10, the set of acts further comprising analyzing a stored representation to determine at least one of, one or more compression parameters, or one or more compression operations.

### Claim 16 (depends on 10)

The computer readable medium of claim 10, the set of acts further comprising partitioning data of the write operation into one or more data units.

### Claim 17 (depends on 10)

The computer readable medium of claim 10, wherein the compression parameters characterize at least one of, a storage device, a compression level, a compression type, a compression algorithm, a storage allocation cushion, or a compression delay.

### Claim 18 (depends on 10)

The computer readable medium of claim 10, wherein data corresponding to the write operation comprises at least one of, one or more extents, one or more slices, one or more blocks, one or more areas, or one or more regions.

### Claim 19

A system, comprising:
a processor to execute a set of program code instructions;
a memory to hold the set of program code instructions, in which the set of program code instructions comprises program code to perform:
receiving a request for a write operation from an application;
applying a compression rule to determine a compression parameter; and
executing the write operation in accordance with the compression parameter by performing an in-line data compression operation.

### Claim 20 (depends on 19)

The system of claim 19, wherein the in-line data compression operations complete before returning a status pertaining to the execution of the write operation to the application.

### Claim 21

A method, comprising:
receiving a request for a write operation;
applying a compression rule to determine a compression parameter corresponding to a frequency of access for data associated with the write request; and
executing the write operation in accordance with the compression parameter.

### Claim 22 (depends on 1)

The method of claim 1, further comprising performing a compression efficiency test over data of the write operation to determine a data unit attribute associated with the write operation.

### Claim 23 (depends on 1)

The method of claim 1, wherein attributes of data of the write operation comprise at least one of, a compression ratio, or a compression size.

### Claim 24 (depends on 1)

The method of claim 1, wherein the compression parameters characterize at least one of, a storage device, a compression level, a compression type, a compression algorithm, a storage allocation cushion, or a compression delay.

### Claim 25 (depends on 1)

The method of claim 1, wherein data corresponding to the write operation comprises at least one of, one or more extents, one or more slices, one or more blocks, one or more areas, or one or more regions.
