Method for serial and condition-based execution of operators by parallel processes
First Claim
1. A method comprising:
- a query coordinator and a plurality of slave processes executing a query execution plan that comprises (a) a parallel row source executed as multiple subtasks by multiple slave processes of said plurality of slave processes and (b) one or more serial row sources, wherein each serial row source of the one or more serial row sources is executed by only one slave process;
wherein executing said query execution plan comprises;
the query coordinator assigning a first subtask of said multiple subtasks to a first slave process of said multiple slave processes and assigning a second subtask of said multiple subtasks to a second slave process;
said first slave process executing said first subtask and said second slave process executing said second subtask;
a particular slave process of said plurality of slave processes sending, to said query coordinator, a request to execute a particular serial row source of said one or more serial row sources;
in response to receiving said request to execute said particular serial row source, said query coordinator determining that said particular row source is not assigned to a slave process of said plurality of slave processes; and
based on determining that said particular serial row source is not assigned to a slave process of said plurality of slave processes, said query coordinator assigning the particular serial row source of said one or more serial row sources to said particular slave process of said plurality of slave processes;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for improving performance of parallel execution plans that include serial operations. A database server generates a parallel execution plan and includes one or more serial data flow objects in the parallel execution plan, each data flow object including one or more serial row sources. A parallel selector row source is associated with each serial data flow object included in the parallel execution plan. Each parallel selector row source coordinates with a query coordinator process the execution of the associated serial data flow object. In the event that that a plurality of serial data flow objects are included in a parallel execution plan, serial row sources included in the serial data flow objects may be executed concurrently by a separate parallel slave process, instead of sequential execution of each serial row source by the query coordinator process.
29 Citations
12 Claims
-
1. A method comprising:
-
a query coordinator and a plurality of slave processes executing a query execution plan that comprises (a) a parallel row source executed as multiple subtasks by multiple slave processes of said plurality of slave processes and (b) one or more serial row sources, wherein each serial row source of the one or more serial row sources is executed by only one slave process; wherein executing said query execution plan comprises; the query coordinator assigning a first subtask of said multiple subtasks to a first slave process of said multiple slave processes and assigning a second subtask of said multiple subtasks to a second slave process; said first slave process executing said first subtask and said second slave process executing said second subtask; a particular slave process of said plurality of slave processes sending, to said query coordinator, a request to execute a particular serial row source of said one or more serial row sources; in response to receiving said request to execute said particular serial row source, said query coordinator determining that said particular row source is not assigned to a slave process of said plurality of slave processes; and based on determining that said particular serial row source is not assigned to a slave process of said plurality of slave processes, said query coordinator assigning the particular serial row source of said one or more serial row sources to said particular slave process of said plurality of slave processes; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer-readable medium storing instructions which, when executed by one or more processors, cause:
-
a query coordinator and a plurality of slave processes executing a query execution plan that comprises (a) a parallel row source executed as multiple subtasks by multiple slave processes of said plurality of slave processes and (b) one or more serial row sources, wherein each serial row source of the one or more serial row sources is executed by only one slave process; wherein executing said query execution plan comprises; the query coordinator assigning a first subtask of said multiple subtasks to a first slave process of said multiple slave processes and assigning a second subtask of said multiple subtasks to a second slave process; said first slave process executing said first subtask and said second slave process executing said second subtask; a particular slave process of said plurality of slave processes sending, to said query coordinator, a request to execute a particular serial row source of said one or more serial row sources; in response to receiving said request to execute said particular serial row source, said query coordinator determining that said particular row source is not assigned to a slave process of said plurality of slave processes; and based on determining that said particular serial row source is not assigned to a slave process of said plurality of slave processes, said query coordinator assigning the particular serial row source of said one or more serial row sources to said particular slave process of said plurality of slave processes. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification