Parallel Query Execution with Buffer Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database management systems sequentially execute database operations, leading to increased query execution times due to the need for data reading from a database, and modifying these systems to parallelize tasks is complex and requires significant code rewriting.
Innovation Solution
A database management system is configured with a query reception part, query execution plan creation part, first and second query execution parts, and a buffer management part to dynamically manage data access, allowing the second query execution part to create tasks in parallel and store data in a buffer for subsequent use by the first query execution part, reducing the need for repeated database reads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a database management system sequentially executes database operations in a predetermined order, then the system maintains simplicity and stability, but the query execution time becomes longer due to suspended execution during data reads
Solution Approach 1:
The patent divides the query execution process into multiple independent parts (first query execution part and second query execution part), each capable of executing database operations independently. This segmentation allows parallel execution of multiple operations simultaneously, reducing the total query execution time while maintaining system stability through structured organization of execution units
2Loss of time
If the database management system is modified to dynamically create tasks for parallel execution as disclosed in Patent Literature 1, then the query execution time is shortened, but the system complexity increases significantly requiring fundamental modification and extensive code rewriting
Solution Approach 1:
The patent introduces a buffer management part as an intermediary component that mediates between the database and multiple query execution parts. This buffer acts as a centralized data cache that any query execution part can access, enabling parallel execution without requiring complex inter-process communication or synchronization mechanisms, thus reducing system complexity while achieving parallelism
Solution Approach 2:
The patent creates multiple copies of query execution parts (first query execution part, second query execution part) that can independently execute database operations. Each copy has its own execution context but shares access to the common buffer, allowing simultaneous execution of multiple operations without modifying the core database management system architecture
3Reliability
If data is read from the database for each database operation execution, then data freshness is ensured, but the execution time increases due to repeated I/O operations
Solution Approach 1:
The patent implements a buffer management part that pre-loads and caches data from the database before it is needed by query execution parts. When data is read into the buffer, it becomes available for immediate use by multiple query execution parts without requiring repeated reads from the database, thus reducing I/O operations and execution time while maintaining data accuracy through controlled buffer updates
Data Source
AI summary
A second query execution part is added to a database management system comprising a first query execution part configured to execute a query based on a query execution plan of a query to a database and to return a query execution result to the query issuance source and a buffer management part configured to read a data of a read request from the database to store the data into the buffer and to provide the data to an issuance source of the read request if data of a read request has not been stored in a buffer in the case where the read request of data is received and configured to read data of a read request from the buffer and to provide the data to a issuance source of the read request if data of a read request has been stored in the buffer.


