Dictionary Compression for Row-Segmented Database Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Relational and object-relational databases face inefficiencies in storage and access due to inefficient data block storage, leading to increased storage space consumption and slow retrieval and update times.

Innovation Solution

Implementing dictionary-based compression techniques that create a token dictionary specific to each data block, allowing for the tokenization of column values within the block, enabling efficient compression of row-segmented data blocks by mapping tokens to values and using block-level token dictionaries for decoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If dictionary-based compression is applied to row-segmented data blocks, then storage space efficiency is improved, but decoding complexity increases

Engineering Contradiction:
Improvestorage spaceVSAvoiddecoding complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent divides the data block into row segments, with each segment containing a subset of columns. This segmentation allows the compression system to process and decode only relevant segments based on query requirements, reducing the overall decoding complexity while maintaining storage efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements column-level compression where each column or column group has its own compression parameters and token dictionaries. This local quality approach allows different compression strategies for different columns based on their characteristics, improving storage efficiency without uniformly increasing decoding complexity across all data.

Inventive Principle:
Principle #3Local quality

2Quantity of substance

If row-segmented data blocks are compressed using block-level token dictionaries, then storage efficiency is improved, but access time for specific columns increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoidaccess time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent segments rows into multiple row segments where each segment contains only specific columns. This allows the system to retrieve and decompress only the necessary row segments for a given query, avoiding the need to decompress entire data blocks and reducing access time for specific columns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies column-specific compression techniques where each column or column group uses its own token dictionary and compression parameters. This enables the system to optimize compression for storage while allowing rapid access to specific columns by directly accessing their compressed representations without processing other columns.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9646053B2OLTP compression of wide tables
Publication Date: 2017.05.09 ORACLE INT CORP
  • US9646053B2 patent drawing
  • US9646053B2 patent drawing
  • US9646053B2 patent drawing

AI summary

A data block stores one or more rows of a database table or relation. An entire row may not fit in a data block. Part of the row is stored in one data block, and another part is stored in another data block. Each row part is referred to herein as a row segment and the data blocks are referred to as row-segmented data blocks. Data block dictionary compression is used to compress row-segmented data blocks. Each data block contains a dictionary that is used to compress rows in the data block, including row segments. The dictionary in a data block is used to compress row segments in the data block. Hence, multiple dictionaries may be used to decompress a row comprised of row segments.