Database management system and method capable of dynamically issuing inputs/outputs and executing operations in parallel
AssigneesMasuru Kitsuregawa, Kazuo Goda
InventorsMasaru Kitsuregawa, Kazuo Goda
Life of this patent
Estimating the term…
Abstract
A database management system has a query interface for receiving a query and a query executor for executing the received query. The query executor dynamically generates a task, and executes a plurality of tasks in parallel. In execution of each task, each time data is required to be read from a database, the query executor generates a task for acquiring the data, and in execution of the generated task, issues a data read request for reading the data from the database, to thereby shorten a time taken to execute each task.
Claims16
A database management system for managing a database, comprising:
- a query interface for receiving a query to said database;
- a query plan generator connected with said query interface for generating a query plan from said received query, said generated query plan comprising a plurality of database operations necessary for execution of said received query;
- and
- at least one hardware processor connected with said database and said query plan generator for executing said received query in accordance with said generated query plan,
- wherein said at least one hardware processor:
- repeats starting to execute one database operation of said plurality of database operations for executing said received query until the execution of said received query is completed;
- issues a data read request to a storage device storing said database to read data necessary for executing said database operation;
- in executing said database operation, upon completion of said data read request, applies said database operation to data read by said data read request and, if execution of another database operation of said plurality of database operations in accordance with a result of said application of said database operation to said data issue necessary for executing said received query, starts to recursively execute said another database operation of said plurality of database operations in accordance with said result of said application of said database operation to said data;
- and
- in starting to recursively execute said another database operation, generates a task and assigns execution of said another database operation to said task,
- whereby said at least one hardware processor performs execution of a database operation of said plurality of database operations assigned in said generated task, regardless of whether another execution of a database operation is completed.
A database management method for managing a database in a database management system connected to said database via a network, comprising:
- a step of receiving a query to said database;
- a step of generating a query plan from said received query, said generated query plan comprising a plurality of database operations necessary for execution of said received query;
- a step of executing said received query in accordance with said generated query plan;
- a step of repeatedly starting to execute one database operation of said plurality of database operations for executing said received query until the execution of said received query is completed;
- a step of issuing a data read request to a storage device storing said database to read data necessary for executing said database operation;
- a step of, in executing said database operation, upon completion of said data read request, applying said database operation to data read by said data read request and, if execution of another database operation of said plurality of database operations in accordance with a result of said application of said database operation to said data is necessary for executing said received query, starting to recursively execute said another database operation of said plurality of database operations in accordance with said result of said application of said database operation to said data;
- and
- a step of, in starting to recursively execute said another database operation, generating a task and assigning execution of said another database operation to said task;
- and
- a step of performing execution of a database operation of said plurality of database operations assigned in said generated task, regardless of whether another execution of a database operation is completed.
One or more non-transitory computer-readable media maintaining instructions that, when executed by one or more processors, program the one or more processors to:
- receive a query to a database;
- generate a query plan from said received query, said generated query plan comprising a plurality of database operations necessary for execution of said received query;
- execute said received query in accordance with said generated query plan;
- repeatedly start to execute one database operation of said plurality of database operations for executing said received query until the execution of said received query is completed;
- issue a data read request to a storage device storing said database to read data necessary for executing said database operation;
- in executing said database operation, upon completion of said data read request, apply said database operation to data read by said data read request and, if execution of another database operation of said plurality of database operations in accordance with a result of said application of said database operation to said data is necessary for executing said received query, start to recursively execute said another database operation of said plurality of database operations in accordance with said result of said application of said database operation to said data;
- in starting to recursively execute said another database operation, generate a task and assign execution of said another database operation to said task;
- and perform execution of a database operation of said plurality of database operations assigned in said generated task, regardless of whether another execution of a database operation is completed.
Dependencies are inferred from the claim text.