Data Flow Graph Optimization Using Adaptive Rule Chaining
AssigneeSap SE
InventorsChristoph Weyerhaeuser, Tobias Mindnich, Daniel Baeumges, Gerrit Simon Kazmaier
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.