Data Flow Graph Optimization Using Adaptive Rule Chaining
First Claim
Patent Images
1. A method comprising:
- receiving a query;
generating, by a calculation engine, an initial data flow graph comprising a plurality of nodes for executing the query, the calculation engine operating in a calculation engine layer above a logical layer which, in turn, interacts with a physical table pool;
optimizing, by the calculation engine, the initial data flow graph using a model optimizer, the model optimizer accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with a matching pattern; and
initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph.
1 Assignment
0 Petitions
Accused Products
Abstract
A query is received and an initial data flow graph comprising a plurality of nodes is generated for executing the query. The initial data flow graph is optimized using a model optimizer that accesses at least one of a plurality of patterns to identify a matching pattern and executes at least one optimization rule associated with a matching pattern. Execution of the query is then initiated using the optimized data flow graph. Related apparatus, systems, techniques and articles are also described.
9 Citations
20 Claims
-
1. A method comprising:
-
receiving a query; generating, by a calculation engine, an initial data flow graph comprising a plurality of nodes for executing the query, the calculation engine operating in a calculation engine layer above a logical layer which, in turn, interacts with a physical table pool; optimizing, by the calculation engine, the initial data flow graph using a model optimizer, the model optimizer accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with a matching pattern; and initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 17)
-
-
11. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
receiving a query; generating, by a calculation engine, an initial data flow graph comprising a plurality of nodes for executing the query, the calculation engine operating in a calculation engine layer above a logical layer which, in turn, interacts with a physical table pool; optimizing, by the calculation engine, the initial data flow graph using a model optimizer, the model optimizer accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with a matching pattern; and initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph. - View Dependent Claims (12, 13, 14, 15, 16, 18, 19)
-
-
20. A system comprising:
-
one or more data processors; and memory storing instructions, which when executed, cause at least one data processor to perform operations comprising; receiving a query; generating an initial data flow graph comprising a plurality of nodes for executing the query; optimizing the initial data flow graph using a model optimizer, the model optimizer accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with a matching pattern; and initiating executing of the query using the optimized data flow graph. wherein; the patterns each have respective priority levels, at least one corresponding priority level is dynamically set based on the data flow graph, and the matching pattern gives each rule a priority.
-
Specification