Fixed String Dictionary for Column-Based In-Memory Database

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional row-based databases face challenges in minimizing memory consumption for efficient data access, as each row requires fixed storage space regardless of identical values, leading to increased memory usage and slower access times.

Innovation Solution

Implementing a column-based in-memory database system with a fixed string dictionary where each column has a dictionary of distinct values, and each row stores a reference to these values, allowing for compression and efficient storage through bitvector and bitarray encoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If row-based storage is used with fixed allocation per row, then data access is straightforward, but memory consumption increases significantly

Engineering Contradiction:
Improvedata access simplicityVSAvoidmemory consumption
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent segments data storage into two distinct components: a dictionary structure that stores unique values, and a reference structure that stores only the position indices. This segmentation allows the system to separate the storage of actual data values from the storage of references, thereby reducing overall memory consumption while maintaining efficient access patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of storing actual data values in each row, the patent creates a copy of the data in dictionary form and stores only references (indices) to these copies. This copying approach eliminates redundant storage of identical values across multiple rows, significantly reducing memory usage while preserving the ability to retrieve original data through the dictionary lookup.

Inventive Principle:
Principle #26Copying

2Quantity of substance

If all distinct values are stored in a dictionary for each column, then memory usage is reduced, but access time may increase due to additional lookup operations

Engineering Contradiction:
Improvememory usageVSAvoidaccess time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of data into a dictionary structure during data loading or preprocessing. By pre-sorting and deduplicating values into the dictionary before actual access occurs, the system eliminates the need for runtime search operations, allowing direct index-based access to unique values and thus preventing access time penalties.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent transforms the one-dimensional row-based access pattern into a two-dimensional access pattern involving dictionary lookup and reference following. This dimensional change allows the system to trade storage space for access efficiency by organizing data in a way that enables rapid retrieval through index-based direct access rather than sequential scanning.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS11010415B2Fixed string dictionary
Publication Date: 2021.05.18 SAP SE
  • US11010415B2 patent drawing
  • US11010415B2 patent drawing
  • US11010415B2 patent drawing

AI summary

The subject matter described herein relates to implementation of a dictionary in a column-based, in-memory database where values are not stored directly, rather, for each column, a dictionary is created with all distinct values. For each row, a reference to the corresponding value in the dictionary is stored. In one aspect, data is stored in a memory structure organized in a column store format defined by a plurality of columns and a plurality of rows. A dictionary for each column in the memory structure is generated. The dictionary has distinct values for each column. A reference to the dictionary is generated for each column in the memory structure. The dictionary and the reference to the dictionary are stored in the memory structure.