Patent ID: 8224812
Filing Date: 2012-07-17
Classification: G06F

Abstract:
1. 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 at least first, second and third database operations and a sequence thereof necessary for execution of said received query; and a query executor connected with said database and said query plan generator for executing said received query in accordance with said generated query plan, wherein said query executor: generates a first task for executing a first database operation of said sequence of said database operations, starts to execute said first task, and issues a data read request to a storage device storing said database to read data necessary for said first database operation to be executed for said first task; after executing said first database operation for said first task, when a plurality of second tasks can be generated, in accordance with a result of execution of said first database operation executed for said first task, for a second database operation of said sequence of said database operations, generates said plurality of second tasks, each second task for executing said second database operation in accordance with said result of execution of said first database operation, starts to execute each of said plurality of second tasks, and issues a data read request to said storage device storing said database to read data necessary for said second database operation to be executed for each of said plurality of second tasks in accordance with said result of execution of said first database operation executed for said first task; after executing said second database operation for said one of said plurality of second tasks, when a plurality of third tasks can be generated, in accordance with a result of execution of said second database operation executed for said one of said plurality of second tasks, for a third database operation of said sequence of said database operations, generates said plurality of third tasks, each third task for executing said third database operation in accordance with said result of execution of said second database operation, starts to execute each of said plurality of third tasks, and issues a data read request to said storage device storing said database to read data necessary for said third database operation to be executed for each of said plurality of third tasks in accordance with said result of execution of said second database operation executed for said one of said plurality of second tasks; and executes in parallel at least two tasks of said plurality of generated first, second and third tasks.