# US 8,788,713 B2 · Compression block input/output reduction

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

- Number: US 8,788,713 B2
- Document ID: US8788713B2
- Status: Granted
- Kind: B2
- Application number: 13/789,227
- Filed: 2013-03-07
- Published: 2013-07-18
- Granted: 2014-07-22
- Earliest claimed: 2012-01-06
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Jonathan Amit; Chaim Koifman; Sergey Marenkov; Ori Shalev
- Web page: https://patentgrep.com/patent/US8788713B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0641: {De-duplication techniques}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Exemplary method, system, and computer program product embodiments compression blocks input/output (I/O) reduction are provided. In one embodiment, by way of example only, data blocks are arranged into groups to provide a single I/O. Lists indicating the available block space for the data blocks are organized in advance according to space size. The data blocks required for a single command are allocated as the single I/O. The data blocks are sequentially ordered. Additional system and computer program product embodiments are disclosed and provide related advantages.

## Claims

### Claim 1

A method for compression blocks input/output (I/O) reduction by a processor device in a computing storage environment, the method comprising:
organizing a plurality of lists, indicating available block space for those of a plurality of compressed data blocks, in advance according to space size;
arranging the plurality of compressed data blocks into a plurality of groups to provide a single I/O having the contents of the each of the plurality of compressed data blocks included in the single I/O;
providing a new compression dictionary for each of the plurality of compressed data blocks; and
sequentially ordering and allocating the plurality of compressed data blocks as the single I/O.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of compressed data blocks are independently compressed.

### Claim 3 (depends on 1)

The method of claim 1, further including, in conjunction with the allocating, sequentially allocating the plurality of compressed data blocks for a write command, wherein the single I/O for the write command is issued to a storage device with the contents of the plurality of compressed data blocks.

### Claim 4 (depends on 1)

The method of claim 1, further including, upon receipt of a read command, retrieving each of the plurality of compressed data blocks required for the single command to include as the single I/O.

### Claim 5 (depends on 4)

The method of claim 4, further including, if at least one of the plurality of groups is not found in a corresponding one of the plurality of lists, allocating a larger group from the plurality of groups in a subsequent one of the plurality of lists.

### Claim 6 (depends on 1)

The method of claim 1, further including, upon a request for the allocating, allocating a required number of the plurality of sequentially ordered compressed data blocks that are sequential from a corresponding one of the plurality of lists.

### Claim 7 (depends on 1)

The method of claim 1, further including, updating the plurality of lists upon release of at least one of the plurality of compressed data blocks.

### Claim 8 (depends on 1)

The method of claim 1, further including, reusing the plurality of compressed data blocks to enable the plurality of data blocks to be stored on a plurality of locations on a logical unit.
