SIMD Register Bit Vector Filtering for In-Memory Database Query Speed
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Device complexity
If missing statistics are not generated for database queries, then system complexity is reduced, but query performance and execution plan optimization deteriorate
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.
Data Source
Figure 1
Figure 2A~2B
Figure 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.