Data flow graph optimization using adaptive rule chaining
First Claim
Patent Images
1. A computer-implemented method for implementation by one or more data processors forming part of at least one computing system, the method comprising:
- receiving, by at least one data processor, 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 using an adaptive rule chaining approach, the initial data flow graph using a model optimizer, the model optimizer iteratively accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with the matching pattern, wherein the adaptive rule chaining approach identifies patterns requiring less computing resources, wherein each pattern of the patterns specifies a start node within the initial data flow graph that is used to determine whether the pattern matches, wherein said each pattern specifies how many preceding and succeeding nodes, if any preceding and succeeding nodes are to be considered to determine whether the pattern matches, wherein changes to a node by a rule results in a further identification of a matching pattern; and
initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph, wherein the patterns each have respective priority levels with at least one corresponding priority level being dynamically set based on the data flow graph, and the matching pattern gives each rule a priority.
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.
-
Citations
23 Claims
-
1. A computer-implemented method for implementation by one or more data processors forming part of at least one computing system, the method comprising:
-
receiving, by at least one data processor, 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 using an adaptive rule chaining approach, the initial data flow graph using a model optimizer, the model optimizer iteratively accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with the matching pattern, wherein the adaptive rule chaining approach identifies patterns requiring less computing resources, wherein each pattern of the patterns specifies a start node within the initial data flow graph that is used to determine whether the pattern matches, wherein said each pattern specifies how many preceding and succeeding nodes, if any preceding and succeeding nodes are to be considered to determine whether the pattern matches, wherein changes to a node by a rule results in a further identification of a matching pattern; and initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph, wherein the patterns each have respective priority levels with at least one corresponding priority level being dynamically set based on the data flow graph, and the matching pattern gives each rule a priority. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer-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, by at least one data processor, 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 using an adaptive rule chaining approach, the initial data flow graph using a model optimizer, the model optimizer iteratively accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with the matching pattern, wherein the adaptive rule chaining approach identifies patterns requiring less computing resources, wherein each pattern of the patterns specifies a start node within the initial data flow graph that is used to determine whether the pattern matches, wherein said each pattern specifies how many preceding and succeeding nodes, if any preceding and succeeding nodes are to be considered to determine whether the pattern matches, wherein changes to a node by a rule results in a further identification of a matching pattern; and initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph, wherein the patterns each have respective priority levels with at least one corresponding priority level being dynamically set based on the data flow graph, and the matching pattern gives each rule a priority. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. 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, by at least one data processor, 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 using an adaptive rule chaining approach, the initial data flow graph using a model optimizer, the model optimizer iteratively accessing at least one of a plurality of patterns to identify a matching pattern and executing at least one optimization rule associated with the matching pattern, wherein the adaptive rule chaining approach identifies patterns requiring less computing resources, wherein each pattern of the patterns specifies a start node within the initial data flow graph that is used to determine whether the pattern matches, wherein said each pattern specifies how many preceding and succeeding nodes, if any preceding and succeeding nodes are to be considered to determine whether the pattern matches, wherein changes to a node by a rule results in a further identification of a matching pattern; and initiating executing of the query by invoking the calculation engine to execute the optimized data flow graph, wherein the patterns each have respective priority levels with at least one corresponding priority level being dynamically set based on the data flow graph, and the matching pattern gives each rule a priority. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification