Cache Efficient Column Store Database Reading via Parallel Pre-fetching
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If parallel pre-fetch operations are implemented, then processing efficiency improves, but system complexity increases
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.
3Loss of time
If multiple pre-fetch calls are executed in parallel, then runtime delays are reduced, but resource consumption increases
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.
Data Source
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.


