Methods and systems for transforming distributed database structure for reduced compute load
US-2024330289-A1 · Oct 3, 2024 · US
US9639576B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9639576-B2 |
| Application number | US-201214397030-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 27, 2012 |
| Priority date | Apr 27, 2012 |
| Publication date | May 2, 2017 |
| Grant date | May 2, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A database management system (DBMS) generates a query execution plan including information representing one or more database (DB) operations necessary for executing a query, and executes the query in accordance with the query execution plan. In the execution of the query, the DBMS dynamically generates tasks for executing the DB operations and executes the dynamically generated tasks. The query execution plan includes a plurality of query blocks, which are sets of one or more DB operations. When newly generating a task, the DBMS executes determination processing of simultaneous-task-generation number. The determination processing of simultaneous-task-generation number is to calculate, targeting each of the query blocks, the number of simultaneous task generation, which is the number of tasks simultaneously generatable as tasks for executing the query block. The number of the dynamically generated tasks is equal to or smaller than the number of simultaneous task generation.
Opening claim text (preview).
The invention claimed is: 1. A database management system for managing a database, the database management system comprising: a processor; and a memory connected to the processor, the memory storing instructions that, when executed by the processor, cause the processor to: receive a query to the database; generate a query execution plan including information representing one or more database operations necessary for executing the received query, and the generated query execution plan includes a plurality of query blocks, which are sets of one or more of the database operations necessary for executing the received query; and execute the received query in accordance with the generated query execution plan and, in the execution of the received query, dynamically generate a plurality of tasks for executing the database operations and execute the dynamically generated tasks, wherein the execution of the received query includes to execute determination processing of a plurality of task-generation numbers when newly generating the tasks in the execution of the received query, wherein the determination processing of the task-generation numbers includes to calculate, targeting each of the plurality of query blocks, the task-generation numbers which indicate a number of dynamically generated tasks that can be generated as the tasks for executing the target query block, wherein the number of the dynamically generated tasks is equal to or smaller than the task-generation number for the target query block, and wherein the task-generation numbers are calculated based on a ratio of each of a plurality of memory resource amounts required for the execution of each of the plurality of query blocks to an upper limit of a memory resource amount allocatable to the execution of the received query. 2. The database management system according to claim 1 , wherein the determination processing of the task-generation numbers includes to calculate the task-generation numbers based on s number of generable tasks, which is a number of the tasks that can be newly generated, a first memory resource amount, which is a memory resource amount requiring allocation per task newly generated, and a second memory resource amount, which is a memory resource amount that can be newly allocated to the execution of the target query block. 3. The database management system according to claim 2 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to: determine priority corresponding to each of the plurality of query blocks and execute the query concerning the plurality of query blocks in parallel, and wherein, in the determination processing of the task-generation numbers, the second memory resource amount is smaller than one of third and fourth memory resource amounts, wherein the third memory resource amount is an amount obtained by subtracting a memory resource amount already reserved for the execution of the target query block from an amount of memory resources that is allocatable to the execution of the target query block and is obtained by distributing, according to the priority corresponding to each of the plurality of query blocks, a total memory resource amount that is a total amount of memory resources allocatable to the execution of all the query blocks, and wherein the fourth memory resource amount is an amount obtained by subtracting, from the total memory resource amount, a total amount of memory resource amounts already reserved for the execution of each of the plurality of query blocks. 4. The database management system according to claim 1 , wherein, in the determination processing of the task-generation numbers, the task-generation numbers are calculated based on a reference relation among the plurality of query blocks. 5. The database management system according to claim 4 , wherein, in the determination processing of task-generation number, the reference relation among the plurality of query blocks is, concerning other query blocks including a database (DB) operation for referring to an execution result of one query block among the plurality of query blocks, a relation between a predicted number of database operations based on a cost calculation until the reference to the execution result of the one query block and a predicted total number of database operations. 6. The database management system according to claim 1 , wherein, in the determination processing of the task-generation numbers, the task-generation numbers are calculated based on an execution progress status of each of the plurality of query blocks. 7. The database management system according to claim 6 , wherein, in the determination processing of the task-generation numbers, an execution progress status of each of the plurality of query blocks is a number of tasks being executed, a number of tasks waiting for a start of execution, a number of tasks waiting for generation of a new task, or an execution achievement ratio in each of the plurality of query blocks. 8. The database management system according to claim 1 , wherein one query block among the plurality of query blocks is a query block corresponding to a sub-query having a correlation condition including a column of a table used in other query blocks among the plurality of query blocks, and wherein, in the determination processing of the task-generation numbers, when the target query block is the query block corresponding to the sub-query having the correlation condition, the task-generation numbers are calculated based on at least one of a predicted number of database operations, a predicted task execution multiplicity, and a memory resource amount required for the execution of the target query block. 9. The database management system according to claim 1 , wherein one query block among the plurality of query blocks is a query block corresponding to a sub-query having, in an EXISTS phrase, a correlation condition including a column of a table used in other query blocks among the plurality of query blocks, and wherein, in the determination processing of the task-generation numbers, when the target query block is a query block corresponding to an outer side portion of the sub-query having the correlation condition in the EXISTS phrase, the task-generation numbers are calculated based on a predicted number of database operations or a predicted task execution multiplicity in the target query block. 10. The database management system according to claim 1 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to: when one query block among the plurality of query blocks is a query block for executing a database operation related to an EXISTS phase, to cancel, based on an execution result of one of the tasks in the one query block, execution of a related task among the plurality of query blocks and releases memory resources allocated to the one of the tasks, the execution of which has been canceled. 11. The database management system according to claim 1 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to: in execution of one query block among the plurality of query blocks, when the number of execution-waiting tasks, which are tasks waiting for a start of execution, is equal to or larger than a predetermined number or when a memory resource amount allocated to the execution-waiting tasks is equal to or larger than a predetermined amount, to cancel execution of one of the tasks related to the one query block, release memory resources allocated to the one of the tasks, the execution of which has been canceled, and set at
Plan optimisation · CPC title
of query operations · CPC title
Physics · mapped topic
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.