Cache Efficient Column Store Database Reading via Parallel Pre-fetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Column store databases experience increased processing resources and runtime due to cache misses, which occur when data is absent from the cache memory, leading to additional accesses to main memory and stalls in execution threads.

Innovation Solution

Implementing parallel pre-fetch operations in column store databases to asynchronously retrieve and store data from main memory into cache memory before it is needed, reducing the number of cache misses and improving processing efficiency by executing multiple pre-fetch calls independently and in parallel.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is read from main memory when absent from cache, then data availability is ensured, but processing time and runtime increase due to cache misses

Engineering Contradiction:
Improvedata availabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-fetching data from main memory into cache memory before it is actually needed for query processing. This anticipatory data loading reduces cache misses and subsequent processing delays, as the data is already available in faster cache memory when required.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cache memory system serves itself by automatically pre-fetching data based on query patterns and access predictions. The system monitors data access patterns and autonomously loads likely-needed data into cache, reducing reliance on slower main memory accesses and improving overall system performance.

Inventive Principle:
Principle #25Self-service

2Productivity

If parallel pre-fetch operations are implemented, then processing efficiency improves, but system complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The pre-fetching operation is segmented into multiple independent parallel tasks that can execute simultaneously. Different data blocks or query results are pre-fetched in parallel using separate operations, allowing the system to utilize multiple processing units or memory channels independently, thereby improving efficiency without requiring complex inter-dependent operations.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If multiple pre-fetch calls are executed in parallel, then runtime delays are reduced, but resource consumption increases

Engineering Contradiction:
Improveruntime delaysVSAvoidresource consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The system executes multiple pre-fetch calls in parallel, performing more data loading operations than strictly necessary for immediate query needs. This excessive action ensures that data is pre-loaded into cache memory proactively, reducing runtime delays by eliminating cache misses, while the parallel execution efficiently utilizes available system resources.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11119742B2Cache efficient reading of result values in a column store database
Publication Date: 2021.09.14 SAP SE
  • US11119742B2 patent drawing
  • US11119742B2 patent drawing
  • US11119742B2 patent drawing

AI summary

A system for cache efficient reading of column values in a database is provided. In some aspects, the system performs operations including pre-fetching, asynchronously and in response to a request for data in a column store database system, a plurality of first values associated with the requested data. The request may identify a row of the column store database system associated with the requested data. The plurality of first values may be located in the row. The operations may further include storing the plurality of first values in a cache memory. The operations may further include pre-fetching, asynchronously and based on the plurality of first values, a plurality of second values. The operations may further include storing the plurality of second values in the cache memory. The operations may further include reading, in response to the storing the plurality of second values, the requested data from the cache memory.