Column Vector Memory Storage for Database Bandwidth Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Relational database systems face inefficiencies in database operations due to the need to transfer large amounts of irrelevant data between volatile memory and CPU, as data is stored in row-major format on disk, leading to suboptimal use of bandwidth and processing time.

Innovation Solution

Storing relational data in column vectors within volatile memory, allowing for compression and encoding, and enabling vector processing operations to efficiently handle and process data, thereby reducing the amount of data transferred and improving processing speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is stored in row-major format on disk, then data retrieval follows conventional storage methods, but large amounts of irrelevant data must be transferred between volatile memory and CPU, reducing bandwidth efficiency

Engineering Contradiction:
Improvedatabase operation efficiencyVSAvoidbandwidth usage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments relational data into column vectors, organizing data by columns rather than rows. This segmentation allows the system to transfer only the specific column data needed for a query from volatile memory to CPU, eliminating the transfer of irrelevant data from other columns and thereby reducing bandwidth usage while improving database operation efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts only the necessary column data from the relational table structure and loads it into volatile memory as column vectors. This extraction principle ensures that when data is transferred to CPU, only the relevant information is moved, not entire rows with potentially irrelevant data, thus optimizing bandwidth efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

2Speed

If data is stored in row-major format, then complete rows are available for processing, but processing speed decreases due to handling irrelevant data

Engineering Contradiction:
Improveprocessing speedVSAvoiddata transfer volume
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

By segmenting data into column vectors, the patent enables the CPU to process only the specific column data required for a query. This segmentation reduces the volume of data that must be processed while maintaining complete information for the relevant columns, thereby increasing processing speed without sacrificing data completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by loading only the necessary column data into volatile memory rather than complete rows. This partial loading approach reduces the total data transfer volume while providing sufficient data for query processing, thus improving processing speed without the overhead of handling extraneous information.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If column vectors are stored in volatile memory, then relevant data transfer is minimized, but data organization differs from conventional row-major format

Engineering Contradiction:
Improvebandwidth efficiencyVSAvoiddata storage structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces dynamic adaptability by allowing the system to switch between conventional row-major storage on disk and column vector storage in volatile memory. This dynamic approach optimizes for the specific operation being performed - using row-major for storage and column vectors for processing - thereby improving bandwidth efficiency without permanently complicating the storage structure.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces column vectors as an intermediary data structure between the conventional row-major storage on disk and the CPU processing. This intermediary format in volatile memory serves as a bridge that translates the row-based storage structure into a column-based processing format, minimizing irrelevant data transfer while managing the complexity through a well-defined intermediate representation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2788902B1Techniques for more efficient usage of memory-to-CPU bandwidth
Publication Date: 2019.04.17 ORACLE INT CORP
  • EP2788902B1 patent drawingFigure 1
  • EP2788902B1 patent drawingFigure 2
  • EP2788902B1 patent drawingFigure 3

AI summary

Techniques are provided for more efficiently using the bandwidth of the I/O path between a CPU and volatile memory during the performance of database operation. Relational data from a relational table is stored in volatile memory as column vectors, where each column vector contains values for a particular column of the table. A binary-comparable format may be used to represent each value within a column vector, regardless of the data type associated with the column. The column vectors may be compressed and/or encoded while in volatile memory, and decompressed/decoded on-the-fly within the CPU. Alternatively, the CPU may be designed to perform operations directly on the compressed and/or encoded column vector data. In addition, techniques are described that enable the CPU to perform vector processing operations on the column vector values.