# US 11,442,627 B2 · Data compression utilizing low-ratio compression and delayed high-ratio compression

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

- Number: US 11,442,627 B2
- Document ID: US11442627B2
- Status: Granted
- Kind: B2
- Application number: 16/439,789
- Filed: 2019-06-13
- Published: 2020-12-17
- Granted: 2022-09-13
- Earliest claimed: 2019-06-13
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Ryohta Kawase; Eiji Tosaka; Kousei Kawamura; Koichi Masuda; Shinsuke Mitsuma
- Web page: https://patentgrep.com/patent/US11442627B2

## CPC

- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0683: {Plurality of storage devices}
- G06F 3/064: {Management of blocks}
- G06F 3/0661: {Format or protocol conversion arrangements}
- G06F 3/0674: {Disk device}
- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M 7/6029: {Pipelining}
- H03M 7/607: {Selection between different types of compressors}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

An embodiment of the invention may include a method, computer program product and system for saving data received from a host computing device to a storage system. The storage system includes at least one processor and at least one storage. An embodiment may include storing the received data to the storage on a record basis. A record includes a record header including information indicative of an implemented compression method of the record. An embodiment may include monitoring a processing load of the at least one processor. In response to the processing load being less than a predetermined level, an embodiment may include further compressing the record utilizing a high-ratio compression method based on the record requiring further compression. An embodiment may include updating the record header information to reflect details of the utilized a high-ratio compression method. An embodiment may include storing the further compressed record to the storage.

## Claims

### Claim 1

A computer-implemented method for saving data received from a host computing device to a storage system, wherein the storage system comprises at least one processor and at least one storage, the method comprising:
receiving an I/O operation to write the received data to the storage as a data record;
compressing the received data using a low-ratio compression method;
storing the data record to the storage, wherein the storing comprises creating a record header of the data record, and wherein the record header comprises a record ID and a compression ratio of a utilized compression method;
adding the record ID to a list, wherein the list only contains record IDs of data records which have been compressed using low-ratio compression;
in response to a processing load of the at least one processor being below a predetermined level of CPU utilization, referring to the list;
in response to the record ID being present on the list, referring to the compression ratio within the record header and removing the record ID from the list;
in response to the compression ratio being less than a threshold value, reading the data record from the storage and compressing decompressed data of the data record using a high-ratio compression method; and
storing the data record back to the storage, wherein the storing comprises updating the record header to reflect utilization of the high-ratio compression method.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the record header further comprises an identification of the utilized compression method, a record length before compression, and a compressed record length.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the low-ratio compression method is performed by the at least one processor of the storage system or by compression hardware of the storage system.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the processing load of the at least one processor of the storage system is determined as being less than the predetermined level when the storage system is not processing an I/O request from the host computing device during a time period set by a user or during a time period the storage system is determined as not processing an I/O request.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the high-ratio compression method is performed by the at least one processor of the storage system or by compression hardware of the storage system.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein a file system of the storage system supports Sparse File.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
identifying, in response to a read request from the host computing device, at least one record within the storage which corresponds to data requested by the read request;
decompressing the identified at least one record based on record header information of the at least one record; and
sending the decompressed record to the host computing device.

### Claim 8

A computer program product for saving data received from a host computing device to a storage system, wherein the storage system comprises at least one processor and at least one storage, the computer program product comprising:
one or more computer-readable tangible storage devices and program instructions stored on at least one of the one or more computer-readable tangible storage devices, wherein the program instructions are executable by a computer, the program instructions comprising:
program instructions to receive an I/O operation to write the received data to the storage as a data record;
program instructions to compress the received data using a low-ratio compression method;
program instructions to store the data record to the storage, wherein the storing comprises creating a record header of the data record, and wherein the record header comprises a record ID and a compression ratio of a utilized compression method;
program instructions to add the record ID to a list, wherein the list only contains record IDs of data records which have been compressed using low-ratio compression;
in response to a processing load of the at least one processor being below a predetermined level of CPU utilization, program instructions to refer to the list;
in response to the record ID being present on the list, program instructions to refer to the compression ratio within the record header and remove the record ID from the list;
in response to the compression ratio being less than a threshold value, program instructions to read the data record from the storage and compress decompressed data of the data record using a high-ratio compression method; and
program instructions to store the data record back to the storage, wherein the storing comprises updating the record header to reflect utilization of the high-ratio compression method.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the record header further comprises an identification of the utilized compression method, a record length before compression, and a compressed record length.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the low-ratio compression method is performed by the at least one processor of the storage system or by compression hardware of the storage system.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein the processing load of the at least one processor of the storage system is determined as being less than the predetermined level when the storage system is not processing an I/O request from the host computing device during a time period set by a user or during a time period the storage system is determined as not processing an I/O request.

### Claim 12 (depends on 8)

The computer program product of claim 8, wherein the high-ratio compression method is performed by the at least one processor of the storage system or by compression hardware of the storage system.

### Claim 13

A storage system for saving data received from a host computing device, the storage system comprising:
one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage devices, and program instructions stored on at least one of the one or more computer-readable tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, the program instructions comprising:
program instructions to receive an I/O operation to write the received data to the one or more computer readable tangible storage devices as a data record;
program instructions to compress the received data using a low-ratio compression method;
program instructions to store the data record to the one or more computer readable tangible storage devices, wherein the storing comprises creating a record header of the data record, and wherein the record header comprises a record ID and a compression ratio of a utilized compression method;
program instructions to add the record ID to a list, wherein the list only contains record IDs of data records which have been compressed using low-ratio compression;
in response to a processing load of the one or more processors being below a predetermined level of CPU utilization, program instructions to refer to the list;
in response to the record ID being present on the list, program instructions to refer to the compression ratio within the record header and remove the record ID from the list;
in response to the compression ratio being less than a threshold value, program instructions to read the data record from the storage and compress decompressed data of the data record using a high-ratio compression method; and
program instructions to store the data record back to the one or more computer readable tangible storage devices, wherein the storing comprises updating the record header to reflect utilization of the high-ratio compression method.

### Claim 14 (depends on 13)

The storage system of claim 13, wherein the record header further comprises an identification of the utilized compression method, a record length before compression, and a compressed record length.

### Claim 15 (depends on 13)

The storage system of claim 13, wherein the low-ratio compression method is performed by the one or more processors of the storage system or by compression hardware of the storage system.

### Claim 16 (depends on 13)

The storage system of claim 13, wherein the processing load of the one or more processors of the storage system is determined as being less than the predetermined level when the storage system is not processing an I/O request from the host computing device during a time period set by a user or during a time period the storage system is determined as not processing an I/O request.

### Claim 17 (depends on 13)

The storage system of claim 13, wherein the high-ratio compression method is performed by the one or more processors of the storage system or by compression hardware of the storage system.
