# US 9,521,218 B1 · Adaptive compression and transmission for big data migration

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

- Number: US 9,521,218 B1
- Document ID: US9521218B1
- Status: Granted
- Kind: B1
- Application number: 15/002,421
- Filed: 2016-01-21
- Granted: 2016-12-13
- Earliest claimed: 2016-01-21
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Liya Fan; Yong Deng Hu; He Yuan Huang; Chen Tian; Jian Wang; Zhe Yan; Ke Zhang
- Web page: https://patentgrep.com/patent/US9521218B1

## CPC

- H03M 7/40: Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M 7/3059: {Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression}
- H03M 7/607: {Selection between different types of compressors}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- 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)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for optimizing migration efficiency of a data file over network is provided. Specifically, a total time of compression time of the data file, transfer time of the data file over the network, and decompression time of the data file, is minimized by adaptively selecting compression methods to compress each data block of the data file. For selecting a compression method for a data block, information entropy of the data block is analyzed, and a real status of computing and system resources is considered. Further, trade-off among the resource usage, compassion speed and compression ratio is made to calculate an optimized transmission solution over the network for each data block of the data file.

## Claims

### Claim 1

A method, the method comprising:
identifying an information entropy of a first data block having a block size;
receiving a real-time resource status of a system, wherein the system includes a first computer, a second computer, and a communication channel having a bandwidth between the first computer and the second computer;
determining a first preferred compression method to compress the first data block based at least in part on the information entropy and the real-time resource status;
generating a compressed first data block according to the first preferred compression method;
transferring the compressed first data block over the communication channel from the first computer to the second computer; and
decompressing the compressed first data block upon arriving at the second computer.

### Claim 2 (depends on 1)

The method of claim 1, wherein the real-time resource status of a system includes available resource of central processing unit (CPU) of the first computer, available resource of memory of the first computer, available resource of CPU of the second computer, available resource of memory of the second computer, and available resource of the bandwidth of the communication channel.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first preferred compression method includes an algorithm and an algorithm parameter.

### Claim 4 (depends on 1)

The method of claim 1, wherein the step of determining a first preferred compression method is performed by using a member of the group consisting of:
the information entropy of the first data block,
the block size of the first data block,
the real-time status of the system,
the bandwidth of the communication channel,
a predicted compression rate (PCR) of the first data block,
a predicted compression time (PCT) of the first data block,
a predicted transfer time (PTT) of the first data block, and
a predicted decompress time (PDT) of the first data block.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
identifying, for the first data block, a real compression rate (RCR), a real compression time (RCT), a real transfer time (RTT), and a real decompression time (RDT).

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
determining a distance (D) between the PCT, the PTT, the PDT, and the RCT, the RTT, the RDT.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
determining, for a second data block, a second preferred compression method in response to the distance being greater than a preset threshold.

### Claim 8

A computer program product comprising a non-transitory computer readable storage medium having a set of instructions stored therein which, when executed by a processor, causes the processor to compress adaptively and transmit big data by:
identifying an information entropy of a first data block having a block size;
receiving a real-time resource status of a system, wherein the system includes a first computer, a second computer, and a communication channel having a bandwidth between the first computer and the second computer;
determining a first preferred compression method to compress the first data block based at least in part on the information entropy and the real-time resource status;
generating a compressed first data block according to the first preferred compression method;
transferring the compressed first data block over the communication channel from the first computer to the second computer; and
decompressing the compressed first data block upon arriving at the second computer.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the real-time resource status of a system includes available resource of central processing unit (CPU) of the first computer, available resource of memory of the first computer, available resource of CPU of the second computer, available resource of memory of the second computer, and available resource of the bandwidth of the communication channel.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the first preferred compression method includes an algorithm and an algorithm parameter.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein the step of determining a first preferred compression method is performed by using a member of the group consisting of:
the information entropy of the first data block,
the block size of the first data block,
the real-time status of the system,
the bandwidth of the communication channel,
a predicted compression rate (PCR) of the first data block,
a predicted compression time (PCT) of the first data block,
a predicted transfer time (PTT) of the first data block, and
a predicted decompress time (PDT) of the first data block.

### Claim 12 (depends on 11)

The computer program product of claim 11, further comprising:
identifying for the first data block a real compression rate (RCR), a real compression time (RCT), a real transfer time (RTT), and a real decompression time (RDT).

### Claim 13 (depends on 12)

The computer program product of claim 12, further comprising:
determining a distance (D) between the PCT, the PTT, the PDT, and the RCT, the RTT, the RDT.

### Claim 14 (depends on 13)

The computer program product of claim 13, further comprising:
determining for a second data block a second preferred compression method in response to the distance being greater than a preset threshold.

### Claim 15

A computer system comprising:
a processor set; and
a computer readable storage medium;
wherein:
the processor set is structured, located, connected, and/or programmed to run program instructions stored on the computer readable storage medium; and
the program instructions which, when executed by the processor set, cause the processor set to compress adaptively and transmit big data by:
identifying an information entropy of a first data block having a block size;
receiving a real-time resource status of a system, wherein the system includes a first computer, a second computer, and a communication channel having a bandwidth between the first computer and the second computer;
determining a first preferred compression method to compress the first data block based at least in part on the information entropy and the real-time resource status;
generating a compressed first data block according to the first preferred compression method;
transferring the compressed first data block over the communication channel from the first computer to the second computer; and
decompressing the compressed first data block upon arriving at the second computer.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein the first preferred compression method includes an algorithm and an algorithm parameter.

### Claim 17 (depends on 15)

The computer system of claim 15, wherein the step of determining a first preferred compression method is performed by using a member of the group consisting of:
the information entropy of the first data block,
the block size of the first data block,
the real-time status of the system,
the bandwidth of the communication channel,
a predicted compression rate (PCR) of the first data block,
a predicted compression time (PCT) of the first data block,
a predicted transfer time (PTT) of the first data block, and
a predicted decompress time (PDT) of the first data block.

### Claim 18 (depends on 17)

The computer system of claim 17, further comprising:
identifying for the first data block a real compression rate (RCR), a real compression time (RCT), a real transfer time (RTT), and a real decompression time (RDT).

### Claim 19 (depends on 18)

The computer system of claim 18, further comprising:
determining a distance (D) between the PCT, the PTT, the PDT, and the RCT, the RTT, the RDT.

### Claim 20 (depends on 19)

The computer system of claim 19, further comprising:
determining for a second data block a second preferred compression method in response to the distance being greater than a preset threshold.
