IP Library Granted Patent US 9,596,311
Granted Patent B2
US 9,596,311 · App. 14/527,798 · Granted Mar 14, 2017

Dynamic data compression

Inventor: David Q. Li (North Chelmsford, MA)
Assignee: International Business Machines Corporation
H04L67/2828H04L43/0882H04L47/38H04L43/0817H04L43/0864H04L43/10H04L47/29
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,596,311
App. No.
14/527,798
Granted
Mar 14, 2017
Kind
B2
Abstract

A method for dynamic data compression includes receiving, at a first computer system, a request for data from a second computer system. A distance factor is determined, based, at least in part, on distance separating the first computer system and the second computer system. A processor loading factor is determined, based, at least in part, on one or more processor utilization percentages of the first computer system, and a network bandwidth factor is determined, based, at least in part, on bandwidth utilization of data transport fabric interconnecting the first computer system and the second computer system. A data compression selection index is calculated, based, at least in part, on the distance factor, the processor loading factor, and the network bandwidth factor. The requested data is compressed, when indicated by the calculated data compression selection index, and transmitted from the first computer system to the second computer system.

Claims (145)

1. A method for dynamic data compression, the method comprising:

receiving, by one or more processors of a first computer system, a request for data from a second computer system;

determining, by one or more processors, a distance factor based, at least in part, on distance separating the first computer system and the second computer system;

determining, by one or more processors, a processor loading factor based, at least in part, on one or more processor utilization percentages of the first computer system;

determining, by one or more processors, a network bandwidth factor based, at least in part, on bandwidth utilization of data transport fabric interconnecting the first computer system and the second computer system;

calculating, by one or more processors, a data compression selection index based, at least in part, on the distance factor, the processor loading factor, and the network bandwidth factor, wherein the data compression selection index is calculated according to the following, where dci indicates the data compression selection index, cdf indicates the distance factor, utf indicates the processor loading factor, and ntf indicates the network bandwidth factor:

dci

=

(

cdf

+

utf

+

ntf

3

)

compressing, by one or more processors, the requested data, when indicated by the calculated data compression selection index;

transmitting, by one or more processors, the requested data from the first computer system to the second computer system;

dynamically calculating, by one or more processors, a set of data compression selection indices for the first computer system as a whole;

applying, by one or more processors, the set of dynamically calculated data compression selection indices for an indicated compression level to all client requests; and

automatically adjusting, by one or more processors, the set of dynamically calculated data compression selection indices and indicated compression levels based on the average of dynamically calculated compression selection indices over a fixed time period.

2. The method of claim 1 , wherein determining, by one or more processors, a distance factor based, at least in part, on distance separating the first computer system and the second computer system further comprises:

defining, by one or more processors, a maximum RTT (round trip time) between the first computer system and the second computer system;

determining, by one or more processors, the client computer round trip time using an echo or ping request or TCP (transmission control protocol) round trip time; and

calculating, by one or more processors, the distance factor using the maximum round trip time and client computer round trip time according to:

cdf

=

(

c

d

mrt

)

where cdf indicates the distance factor, cd indicates the client distance, and mrt indicates the maximum RTT.

3. The method of claim 1 , wherein determining, by one or more processors, a processor loading factor based, at least in part, on one or more processor utilization percentages of the first computer system further comprises:

determining, by one or more processors, the server CPU (central processing unit) utilization percentage; and

calculating, by one or more processors, the processor loading factor using the server CPU utilization percentage according to:

utf =(1− ut %)

where utf indicates the processor loading factor, and ut % indicates the server CPU utilization percentage expressed as a decimal fraction.

4. The method of claim 1 , wherein determining, by one or more processors at a server, the network bandwidth factor further comprises:

determining, by one or more processors, the server network utilization percentage; and

calculating, by one or more processors, the network bandwidth factor using the server network utilization percentage according to:

ntf=nt %

where ntf indicates the network bandwidth factor, and nt % indicates the network utilization percentage expressed as a decimal fraction.

5. The method of claim 1 , wherein compressing, by one or more processors at a server, the requested data, when indicated by the calculated data compression selection index further comprises:

compressing, by one or more processors, the requested data using compression algorithms based on the calculated compression selection index.

6. A computer program product for dynamic data compression, the computer program product comprising:

one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:

program instructions to receive, by one or more processors of a first computer system, a request for data from a second computer system;

program instructions to determine, by one or more processors, a distance factor based, at least in part, on distance separating the first computer system and the second computer system;

program instructions to determine, by one or more processors, a processor loading factor based, at least in part, on one or more processor utilization percentages of the first computer system;

program instructions to determine, by one or more processors, a network bandwidth factor based, at least in part, on bandwidth utilization of data transport fabric interconnecting the first computer system and the second computer system;

program instructions to calculate, by one or more processors, a data compression selection index based, at least in part, on the distance factor, the processor loading factor, and the network bandwidth factor, wherein the data compression selection index is calculated according to the following, where dci indicates the data compression selection index, cdf indicates the distance factor, utf indicates the processor loading factor, and ntf indicates the network bandwidth factor:

dci

=

(

cdf

+

utf

+

ntf

3

)

program instructions to compress, by one or more processors, the requested data, when indicated by the calculated data compression selection index;

program instructions to transmit, by one or more processors, the requested data from the first computer system to the second computer system;

program instructions to dynamically calculate, by one or more processors, a set of data compression selection indices for the first computer system as a whole;

program instructions to apply, by one or more processors, the set of dynamically calculated data compression selection indices for an indicated compression level to all client requests; and

program instructions to automatically adjust, by one or more processors, the set of dynamically calculated data compression selection indices and indicated compression levels based on the average of dynamically calculated compression selection indices over a fixed time period.

7. The computer program product of claim 6 , wherein program instructions to determine, by one or more processors, a distance factor based, at least in part, on distance separating the first computer system and the second computer system further comprises:

program instructions to define a maximum RTT (round trip time) between the first computer system and the second computer system;

program instructions to determine the client computer round trip time using an echo or ping request or TCP (transmission control protocol) round trip time; and

program instructions to calculate the distance factor using the maximum round trip time and client computer round trip time according to:

cdf

=

(

c

d

mrt

)

where cdf indicates the distance factor, cd indicates the client distance, and mrt indicates the maximum RTT.

8. The computer program product of claim 6 , wherein program instructions to determine, by one or more processors, a processor loading factor based, at least in part, on one or more processor utilization percentages of the first computer system further comprises:

program instructions to determine the server CPU (central processing unit) utilization percentage; and

program instructions to calculate the processor loading factor using the server CPU utilization percentage according to:

utf =(1− ut %)

where utf indicates the processor loading factor, and ut % indicates the server CPU utilization percentage expressed as a decimal fraction.

9. The computer program product of claim 6 , wherein program instructions to determine, by one or more processors, the network bandwidth factor further comprises:

program instructions to determine the server network utilization percentage; and

program instructions to calculate the network bandwidth factor using the server network utilization percentage according to:

ntf=nt %

where ntf indicates the network bandwidth factor, and nt % indicates the network utilization percentage expressed as a decimal fraction.

10. The computer program product of claim 6 , wherein program instructions to compress, by one or more processors at a server, the requested data, when indicated by the calculated data compression selection index further comprises:

program instructions to compress the requested data using compression algorithms based on the calculated compression selection index.

11. A computer system for dynamic data compression, the computer system comprising:

one or more computer processors;

one or more computer readable storage media;

program instructions stored on the computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

program instructions to receive, by one or more processors of a first computer system, a request for data from a second computer system;

program instructions to determine, by one or more processors, a distance factor based, at least in part, on distance separating the first computer system and the second computer system;

program instructions to determine, by one or more processors, a processor loading factor based, at least in part, on one or more processor utilization percentages of the first computer system;

program instructions to determine, by one or more processors, a network bandwidth factor based, at least in part, on bandwidth utilization of data transport fabric interconnecting the first computer system and the second computer system;

program instructions to calculate, by one or more processors, a data compression selection index based, at least in part, on the distance factor, the processor loading factor, and the network bandwidth factor, wherein the data compression selection index is calculated according to the following, where dci indicates the data compression selection index, cdf indicates the distance factor, utf indicates the processor loading factor, and ntf indicates the network bandwidth factor:

dci

=

(

cdf

+

utf

+

ntf

3

)

program instructions to compress, by one or more processors, the requested data, when indicated by the calculated data compression selection index;

program instructions to transmit the requested data from the first computer system to the second computer system;

program instructions to dynamically calculate, by one or more processors, a set of data compression selection indices for the first computer system as a whole;

program instructions to apply, by one or more processors, the set of dynamically calculated data compression selection indices for an indicated compression level to all client requests; and

program instructions to automatically adjust, by one or more processors, the set of dynamically calculated data compression selection indices and indicated compression levels based on the average of dynamically calculated compression selection indices over a fixed time period.

12. The computer system of claim 11 , wherein program instructions to determine, by one or more processors, a distance factor based, at least in part, on distance separating the first computer system and the second computer system further comprises:

program instructions to define a maximum RTT (round trip time) between the first computer system and the second computer system;

program instructions to determine the client computer round trip time using an echo or ping request or TCP (transmission control protocol) round trip time; and

program instructions to calculate the distance factor using the maximum round trip time and client computer round trip time according to:

cdf

=

(

c

d

mrt

)

where cdf indicates the distance factor, cd indicates the client distance, and mrt indicates the maximum RTT.

13. The computer system of claim 11 , wherein program instructions to determine, by one or more processors, a processor loading factor based, at least in part, on one or more processor utilization percentages of the first computer system further comprises:

program instructions to determine the server CPU (central processing unit) utilization percentage; and

program instructions to calculate the processor loading factor using the server CPU utilization percentage according to:

utf =(1− ut %)

where utf indicates the processor loading factor, and ut % indicates the server CPU utilization percentage expressed as a decimal fraction.

14. The computer system of claim 11 , wherein program instructions to determine, by one or more processors, the network bandwidth factor based, at least in part, on bandwidth utilization of data transport fabric interconnecting the first computer system and the second computer system further comprises:

program instructions to determine the server network utilization percentage; and

program instructions to calculate the network bandwidth factor using the server network utilization percentage according to:

ntf=nt %

where ntf indicates the network bandwidth factor, and nt % indicates the network utilization percentage expressed as a decimal fraction.

15. The computer system of claim 11 , wherein program instructions to compress, by one or more processors at a server, the requested data, when indicated by the calculated data compression selection index further comprises:

program instructions to compress the requested data using compression algorithms based on the calculated compression selection index.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2014
From: LI, DAVID Q.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 034066/0738 →
Continuity (1)
Related Publication 20160127490A1 · May 5, 2016