Column Value Compression with Bit Vectors for In-Memory Search

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processing large amounts of data in database tables requires significant hardware resources, leading to high memory and storage demands, and existing compression methods are inefficient for handling massive datasets.

Innovation Solution

Implementing dictionary-based compression and bit vector compression techniques to identify and remove most-frequently occurring values, sorting columns to prioritize these values, and generating bit vectors to represent occurrences, thereby reducing data volume and improving search efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is stored in uncompressed form in database tables, then search operations can access all data directly, but memory and storage requirements become excessively large for massive datasets

Engineering Contradiction:
Improvedata accessibilityVSAvoidmemory and storage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments data by identifying and separating frequently occurring values from less frequent ones. Bit vectors are created to represent the presence/absence of frequently occurring values, while a separate structure stores the actual value data. This segmentation allows efficient searching of common values without storing complete uncompressed data, resolving the contradiction between data accessibility and storage requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the representation parameter of data from storing complete value sequences to using bit vectors and occurrence counts. Instead of storing actual value data for frequently occurring entries, the system uses binary representations (0 or 1) indicating presence, fundamentally changing how data is parameterized to reduce storage while maintaining search capability.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If compression techniques are applied to reduce data volume, then memory and storage requirements decrease, but processing and search efficiency may be degraded

Engineering Contradiction:
Improvedata volumeVSAvoidprocessing efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent performs preliminary organization of data during the compression phase by sorting columns and identifying frequently occurring values before compression. Bit vectors are pre-computed to mark positions of these values. This preliminary action ensures that search operations can directly utilize the pre-organized structure without additional processing overhead, maintaining high productivity despite compression.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If all columns are compressed using bit vectors, then compression ratio increases, but the complexity of managing and processing multiple bit vectors increases

Engineering Contradiction:
Improvecompression ratioVSAvoidsystem management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies different compression qualities to different columns based on their characteristics. Columns with high frequency of repeated values receive full bit vector compression, while columns with lower repetition rates may use lighter compression or remain uncompressed. This local differentiation optimizes overall compression ratio while avoiding unnecessary complexity in managing bit vectors for columns where they provide minimal benefit.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8032499B2Compression of tables based on occurrence of values
Publication Date: 2011.10.04 SAP SE
  • US8032499B2 patent drawing
  • US8032499B2 patent drawing
  • US8032499B2 patent drawing

AI summary

Methods and apparatus, including computer program products, for compression of tables based on occurrence of values. In general, a number representing an amount of occurrences of a frequently occurring value in a group of adjacent rows of a column is generated, a vector representing whether the frequently occurring value exists in a row of the column is generated, and the number and the vector are stored to enable searches of the data represented by the number and the vector. The vector may omit a portion representing the group of adjacent rows. The values may be dictionary-based compression values representing business data such as business objects. The compression may be performed in-memory, in parallel, to improve memory utilization, network bandwidth consumption, and processing performance.