# US 2017/0255679 A1 · Data access performance using decompression maps

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

- Number: US 2017/0255679 A1
- Document ID: US20170255679A1
- Status: Published application
- Kind: A1
- Application number: 15/604,239
- Filed: 2017-05-24
- Published: 2017-09-07
- Earliest claimed: 2014-06-18
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Robert W. Lyle
- Web page: https://patentgrep.com/patent/US20170255679A1

## CPC

- G06F 16/24561: {Intermediate data storage techniques for performance improvement}
- G06F 16/1744: {using compression, e.g. sparse files}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/245: Query processing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and apparatus, including computer program products, implementing and using techniques for decompressing data in a database system. A query is received, which pertains to a subset of data within a compressed set of data. One or more decompression strategies are evaluated using a cost model. The cost model includes an estimated filter factor. A low cost decompression strategy is selected based on the results of the evaluation of the one or more decompression strategies. One or more bytes representing the requested subset of data are located within the compressed set of data. Only a portion of the compressed data that corresponds to the subset of data is decompressed, using the selected decompression strategy, while leaving the remaining set of data in a compressed state.

## Claims

### Claim 1

A computer-implemented method for decompressing data in a database system, comprising:
receiving a query pertaining to a subset of data within a compressed set of data;
evaluating one or more decompression strategies using a cost model, the cost model including an estimated filter factor;
selecting a low cost decompression strategy based on the results of the evaluation of the one or more decompression strategies;
locating one or more bytes representing the requested subset of data within the compressed set of data; and
decompressing only a portion of the compressed data that corresponds to the subset of data, using the selected decompression strategy, while leaving the remaining set of data in a compressed state.

### Claim 2 (depends on 1)

The method of claim 1, wherein the subset of data includes one of: a subset of columns in a row of a database table, a subset of columns or bytes within a row of the database table, and a subset of rows within a page of the database table.

### Claim 3 (depends on 1)

The method of claim 1, wherein the decompression strategy includes two or more decompression phases.

### Claim 4 (depends on 1)

The method of claim 1, wherein evaluating one or more decompression strategies includes calculating a cost for decompressing only a subset of columns within a row and comparing the calculated cost with decompressing all columns within the row.

### Claim 5 (depends on 1)

The method of claim 1, wherein locating one or more bytes representing the requested subset of data within the compressed set of data includes:
determining a unit representing a certain number of bytes of compressed data; and
determining what units need to be decompressed to get to the one or more bytes representing the requested subset of data within the compressed set of data.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
storing a map for each row, the map describing offsets to the start of every unit.

### Claim 7 (depends on 6)

The method of claim 6, wherein the map is stored as an array in a memory buffer of the database system.

### Claim 8 (depends on 5)

The method of claim 5, wherein every variable length column is preceded by a number describing the length of the variable length column.

### Claim 9 (depends on 1)

The method of claim 1, wherein decompressing starts at the beginning of a row.

### Claim 10 (depends on 1)

The method of claim 1, wherein decompressing starts at the end of a row.
