# US 2014/0156611 A1 · Efficiency of compression of data pages

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

- Number: US 2014/0156611 A1
- Document ID: US20140156611A1
- Status: Published application
- Kind: A1
- Application number: 13/781,740
- Filed: 2013-02-28
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: VENKATESH SAINATH
- Web page: https://patentgrep.com/patent/US20140156611A1

## CPC

- G06F 16/1744: {using compression, e.g. sparse files}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method includes compressing a first page of data stored in memory and calculating an effectiveness of the compression on the first page. The method further includes, in response to the calculated compression effectiveness being at least equal to a pre-determined/pre-established compression effectiveness threshold: identifying a plurality of second pages of data from memory that have similarities in content with the first page; and sequentially performing subsequent compressions of second pages from among the plurality of second pages in an order that is based on a relative ranking of the plurality of second pages. The ranking of the second pages is according to a calculated differential parameter associated with each of the second pages, which indicates a level of similarity that exists between the first page and a corresponding second page. Higher ranked second pages are compressed ahead of lower rank second pages, yielding greater compression efficiency.

## Claims

### Claim 1

A method of providing efficient compression of pages of data, the method comprising:
compressing a first page of data stored in a memory;
calculating a compression effectiveness indicating an amount by which the first page was compressed;
in response to the calculated compression effectiveness being at least as high as a pre-determined compression effectiveness threshold:
identifying a plurality of second pages of data stored in the memory that have similarities in content with the first page; and
sequentially performing subsequent compressions of one or more second pages from among the plurality of second pages in an order that is based on a relative ranking of the plurality of second pages according to a differential parameter associated with each of the plurality of second pages that indicates a level of similarity that exists between the first page and a corresponding one of the plurality of second pages.

### Claim 2 (depends on 1)

The method of claim 1, wherein identifying the plurality of pages with similarities in content comprises executing functions of a memory de-duplication process which includes:
comparing each page of data within the memory with at least the first page to determine if the respective content of the two pages being compared are similar;
in response to identifying similar pages of data, computing a differential parameter value for each of the pages having similar content;
identifying the first page as a root page;
generating and maintaining an ordered mapping of the plurality of pages that have similarities in content with the first page, wherein the plurality of pages are arranged sequentially according to a relative size of the differential parameter value computed for each page when compared against the first page;
storing the mapping within the memory; and
accessing the mapping to determine an order of selecting the one or more second pages on which to perform the subsequent compression.

### Claim 3 (depends on 1)

The method of claim 1, wherein identifying the plurality of second pages of data comprises:
identifying a second page of data stored in the memory;
calculating a differential parameter value indicating a relative similarity between the content of the first page and the content of the second page;
determining whether the differential parameter value is not greater than a pre-set differential parameter threshold that indicates a minimum level of similarity between any two pages that is sufficient to mark the two pages as similar; and
in response to determining that the differential parameter value is not greater than the differential parameter threshold, tagging the second page of data as being similar to the first page;
performing the identifying, calculating, and determining for each second page of data stored in memory;
tagging, as similar, only those second pages of data having a differential parameter value that is not greater than the differential parameter threshold; and
ordering the second pages that are tagged as being similar within a mapping that provides the plurality of second pages arranged in sequence of relative size of a respective differential parameter value for each of the plurality of second pages.

### Claim 4 (depends on 3)

The method of claim 3, wherein the pre-determined compression effectiveness threshold is indicative of a specific desired minimum value of compression effectiveness, and the method further comprises:
comparing the calculated compression effectiveness against the pre-determined compression effectiveness threshold; and
in response to the calculated compression effectiveness being at least as high as the compression effectiveness threshold:
retrieving the mapping;
selecting at least one second page having a lowest differential parameter value;
performing a first subsequent compression on the selected at least one second page; and
performing each other subsequent compression on second pages selected in sequence based on the order within the mapping.

### Claim 5 (depends on 3)

The method of claim 3, wherein at least one of the pre-set differential parameter threshold and the pre-determined compression effectiveness threshold can be dynamically modified based on an amount of available memory and the method further comprises changing a value of at least one of the pre-set differential parameter threshold and the pre-determined compression effectiveness threshold based on an amount of available memory, wherein the value of the differential parameter threshold and the value of the pre-determined compression effectiveness threshold are decreased in response to the amount of available memory being reduced and increases in response to the amount of available memory increasing.

### Claim 6 (depends on 1)

The method of claim 1, wherein calculating a compression effectiveness comprises calculating a ratio of (a) a difference between an original size of the first page and a compressed size of the first page to (b) the original size of the first page.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
ranking each of the plurality of second pages according to a differential parameter value that indicates a relative similarity between the contents of each of the plurality of second pages and the first page;
generating at least one differential mapping comprising stored differential values of pairs of compared pages, wherein the differential mapping is a data structure indicating a differential value for each page of data in the memory compared to every other page of data in the memory; and
performing the identifying of the plurality of second pages utilizing the differential mapping.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
detecting storage of a new page of data in the memory; and
in response to detecting the storage of the new page of data:
calculating new differential values for the new page of data compared to previously compressed pages of data;
determining whether any of the new differential values indicates that the new page of data is sufficiently similar to a compressed page; and
placing the new page of data as one of the plurality of second pages within a differential mapping corresponding to the compressed page, wherein the new page of data is incorporated in a proper sequence within the differential mapping based on the new differential value relative to the existing differential values of the plurality of second pages.
