OPTIMIZATION OF PARALLELIZATION OF USER-DEFINED FUNCTIONS WITH FLEXIBLE PARTITIONING
First Claim
1. A query execution plan optimization system comprising:
- one or more processors;
memory coupled to the one or more processors;
a stored representation of a software program, wherein the representation of the software program comprises both one or more user-defined functions and one or more other operations, and the representation of the software program indicates at least one property for a user-defined function out of the user-defined functions and at least one property for an operation out of the other operations, wherein the operation comprises another user-defined function or a core relational database operation; and
an optimizer configured to transform the representation of the software program into an optimized query execution plan optimized for parallel execution according to the user-defined function property and the operation property.
2 Assignments
0 Petitions
Accused Products
Abstract
Technologies are disclosed for generating query execution plans optimized for parallel execution for programs having both core database relational functions and user-defined functions. A variety of optimization strategies can be employed to improve performance in a parallel execution scenarios. A flexible range of permitted partition arrangements can be specified as acceptable to parallelized instances of the user-defined function. The optimizer can leverage such information when constructing an optimized query execution plan. Partitioning arrangements or other properties can be leveraged to avoid additional or unnecessary processing.
-
Citations
20 Claims
-
1. A query execution plan optimization system comprising:
-
one or more processors; memory coupled to the one or more processors; a stored representation of a software program, wherein the representation of the software program comprises both one or more user-defined functions and one or more other operations, and the representation of the software program indicates at least one property for a user-defined function out of the user-defined functions and at least one property for an operation out of the other operations, wherein the operation comprises another user-defined function or a core relational database operation; and an optimizer configured to transform the representation of the software program into an optimized query execution plan optimized for parallel execution according to the user-defined function property and the operation property. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method implemented at least in part by a computing system, the method comprising:
-
receiving a representation of one or more user-defined functions and one or more core database relational operations, wherein the representation comprises at least one property for at least one of the user-defined functions and at least one property for at least one of the core database relational operations; and generating a query execution plan optimized for parallel execution of the one or more user-defined functions and the one or more core database relational operations according to the user-defined function property and the core database relational operation property. - View Dependent Claims (18, 19)
-
-
20. One or more computer-readable media comprising computer-executable instructions causing a computing system to perform a method comprising:
-
receiving a representation of a program comprising a core database relational operation and a user-defined function coupled to the at least one core database relational operation, wherein the representation comprises an input property specifying a range of permitted partition arrangements as an input pre-condition for parallelized instances of the user-defined function, and the representation comprises an output property specifying a partition arrangement post-condition for the core database relational operation; detecting a mismatch between the pre-condition and the post-condition in the representation of the program; responsive to detecting the mismatch between the pre-condition and the post-condition, considering a plurality of possible exchange operations remedying the mismatch that satisfy the input pre-condition for parallelized instances of the user-defined function; and incorporating the exchange operation into an optimized query execution plan implementing the program, whereby the optimized query execution plan avoids a full merge and initial partitioning operation to remedy the mismatch.
-
Specification