Predictive Memory Management for Database Query Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In-memory databases face performance issues due to the time required to retrieve data from disk storage systems, which increases the execution time for search queries, especially when dealing with large amounts of data.
Innovation Solution
Predictive memory management analyzes search queries before execution and preloads columns containing referenced fields into main memory from high-speed storage, allowing queries to execute in parallel and reducing the time needed to perform search queries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is stored in disk storage systems for large databases, then storage capacity is improved, but data retrieval time increases
Solution Approach 1:
The system performs preliminary actions by analyzing incoming search queries and preloading the required columns from disk storage into main memory before the queries are executed. This advance preparation eliminates the need to wait for data retrieval during query execution, thus resolving the contradiction between storage capacity and data retrieval time.
Solution Approach 2:
The database is segmented into columns that can be independently loaded into main memory. Instead of loading entire tables or databases, only the specific columns referenced in search queries are preloaded, allowing selective data retrieval that maintains storage capacity while minimizing retrieval time.
2Speed
If all data is stored in main memory for faster access, then data retrieval speed is improved, but memory usage increases
Solution Approach 1:
Instead of loading all database data into main memory, the system applies partial action by loading only the specific columns that are needed for the current search queries. This selective approach maintains fast data retrieval speed while avoiding excessive memory usage that would result from loading the entire database.
3Loss of time
If columns are preloaded into main memory before query execution, then query execution time is reduced, but memory loading overhead increases
Solution Approach 1:
The system applies self-service by having the search query itself drive the preload operation. When a search query is received, the system automatically identifies the required columns and initiates their preload into main memory without requiring external intervention or complex scheduling mechanisms, thus reducing query execution time while managing loading overhead efficiently.
Data Source
AI summary
A query for data stored in a database that includes a set of segments is received at a computer system. The set of segments are divided into a plurality of columns and at least one column of the plurality of columns includes one or more fields. The system analyzes the query to determine fields required to be retrieved from the database. The system determines whether a required field of the query is located in a main memory of the computer system. The system creates an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query.


