SIMD Register Bit Vector Filtering for In-Memory Database Query Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database systems face inefficiencies in processing large datasets due to limitations in bandwidth utilization between CPU and volatile memory, and in generating missing statistics for database queries, which affects query performance and execution plans.

Innovation Solution

The implementation of an in-memory database system that utilizes SIMD registers to perform parallel operations on data sets, generating bit vectors to filter and process data efficiently, and iteratively evaluates data through processor registers to optimize query execution and data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If scalar operations are used to process data in traditional database systems, then data can be processed sequentially, but processing speed and efficiency deteriorate when handling large datasets

Engineering Contradiction:
Improvedata processing speedVSAvoidtime required for data retrieval
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments data into fixed-size chunks that can be loaded into SIMD registers, enabling parallel processing of multiple data elements simultaneously. This segmentation allows the system to process large datasets by dividing them into manageable portions that can be handled in parallel vector operations rather than sequential scalar operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent replaces traditional scalar mechanical processing with SIMD vector processing architecture. By substituting scalar operations with vector operations that can process multiple data elements in a single instruction cycle, the system achieves significant performance improvement in data processing speed and efficiency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Loss of energy

If data is stored in traditional disk-based systems, then storage capacity is available, but bandwidth utilization between CPU and memory deteriorates during data processing

Engineering Contradiction:
Improvebandwidth utilization efficiencyVSAvoiddata processing efficiency
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent implements preliminary action by pre-loading data into SIMD registers before processing operations. Data is fetched and prepared in advance in the appropriate format and location, reducing the need for repeated memory access during processing and improving bandwidth utilization efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent transitions from traditional scalar data processing to vectorized parallel processing, adding a dimensional aspect to data handling. By organizing data in vector formats that leverage SIMD register capabilities, the system improves memory bandwidth utilization through more efficient data access patterns and parallel processing operations.

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

3Device complexity

If missing statistics are not generated for database queries, then system complexity is reduced, but query performance and execution plan optimization deteriorate

Engineering Contradiction:
Improvesystem complexityVSAvoidquery performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements self-service by enabling the database system to automatically generate and maintain its own statistics through the SIMD processing framework. The system autonomously collects and updates statistical information during normal operations, eliminating the need for separate complex statistics gathering mechanisms while improving query performance.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3293645B1Iterative evaluation of data through SIMD processor registers
Publication Date: 2021.09.01 SAP SE
  • EP3293645B1 patent drawingFigure 1
  • EP3293645B1 patent drawingFigure 2A~2B
  • EP3293645B1 patent drawingFigure 3

AI summary

Executable code is generated for processing a data set in an in-memory database system. The executable code is based on program instructions including a predicate associated with a first part of the data set. The first part of the data set is divided into data sections. A data section comprises a number of data elements corresponding to a number of bit values to be allocated into a register at a processor. The register at the processor is associated with performing single instructions on multiple data. At the processor, the data sections are evaluated iteratively to determine bit vectors to be stored iteratively into the SIMD register. Based on the iteratively stored bit vectors at SIMD register at the processor, result data sets are iteratively determined through invoking data from the data set. The result data sets are provided through the processor for further consumption.