Methods and systems for transforming distributed database structure for reduced compute load
US-2024330289-A1 · Oct 3, 2024 · US
US10241961B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10241961-B2 |
| Application number | US-201213457341-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 26, 2012 |
| Priority date | Apr 26, 2012 |
| Publication date | Mar 26, 2019 |
| Grant date | Mar 26, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A query is received, and in response, an initial data flow graph is generated that includes a plurality of nodes for executing the query with at least one of the nodes having at least one associated hint. The initial data flow graph is subsequently optimized using a model optimizer having a rules engine using a plurality rules to optimize the initial data flow graph. The at least one associated hint is used by the model optimizer to change how at least one of the plurality of rules is applied. Thereafter, execution of the query is initiated using the optimized data flow graph. Related apparatus, systems, techniques and articles are also described.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving a query; generating, at a calculation engine and in response to the query, a calculation scenario for executing the query on a database, the calculation scenario comprising an initial data flow graph comprising data flows between a database server and an application server and a plurality of nodes representing operations for executing the query, at least one node of the plurality of nodes comprising a set of inputs and outputs and at least one operation that transforms the inputs into the outputs; optimizing the initial data flow graph into an optimized data flow graph, the optimizing comprising: enriching, by a model optimizer, the initial data flow graph with a hint on one or more nodes of the plurality of nodes to provide instructions indicating an optimization to be performed at one or more unoptimized nodes within the dataflow graph hierarchy; applying, by a rules engine of the model optimizer, a set of rules to the initial data flow graph, the set of rules comprising a first rule, the first rule defining a first optimization to the initial data flow graph and how and when to apply the first optimization; determining, by the model optimizer, that the first rule comprises a disqualification fact that would prevent the first optimization from being completed by the model optimizer according to the first rule; applying, by the model optimizer and based on the determining, the hint to override the disqualification fact of the first rule such that the first optimization is applied differently than indicated by the first rule; applying, by the model optimizer and in response to the applying the hint, remaining rules of the set of rules to the initial data flow graph to create the optimized data flow graph; and initiating execution of the query on the database using the optimized data flow graph such that a hierarchy of nodes in the data flow graph, that would have remained unoptimized if the hint was not applied to override the disqualification fact of the first rule, are optimized based on a determination of whether the hint was applied. 2. A method as in claim 1 , wherein applying the hint changes which calculation node implements an operation of the operations as defined in the first rule. 3. A method as in claim 1 , wherein the hint specifies that the first optimization is applied to at least a portion of the plurality of calculation nodes despite an evaluation of the disqualification fact indicating that the first optimization should not be applied to the at least the portion of the plurality of calculation nodes by the model optimizer. 4. A method as in claim 1 , wherein the hint comprises metadata associated with a corresponding calculation node of the plurality of calculation nodes. 5. A method as in claim 4 , wherein the metadata is specified via user-generated input via a graphical user interface. 6. A method as in claim 1 , wherein the receiving, optimizing and initiating are implemented by one or more data processors distributed among one or more computing systems. 7. 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, at a calculation engine and in response to the query, a calculation scenario for executing the query on a database, the calculation scenario comprising an initial data flow graph comprising data flows between a database server and an application server and a plurality of nodes representing operations for executing the query, at least one node of the plurality of nodes comprising a set of inputs and outputs and at least one operation that transforms the inputs into the outputs; optimizing the initial data flow graph into an optimized data flow graph, the optimizing comprising: enriching, by a model optimizer, the initial data flow graph with a hint on one or more nodes of the plurality of nodes to provide instructions indicating an optimization to be performed at one or more unoptimized nodes within the dataflow graph hierarchy; applying, by a rules engine of the model optimizer, a set of rules to the initial data flow graph, the set of rules comprising a first rule, the first rule defining a first optimization to the initial data flow graph and how and when to apply the first optimization; determining, by the model optimizer, that the first rule comprises a disqualification fact that would prevent the first optimization from being completed by the model optimizer according to the first rule; applying, by the model optimizer and based on the determining, the hint to override the disqualification fact of the first rule such that the first optimization is applied differently than indicated by the first rule; applying, by the model optimizer and in response to the applying the hint, remaining rules of the set of rules to the initial data flow graph to create the optimized data flow graph; and initiating execution of the query on the database using the optimized data flow graph such that a hierarchy of nodes in the data flow graph, that would have remained unoptimized if the hint was not applied to override the disqualification fact of the first rule, are optimized based on a determination of whether the hint was applied. 8. A computer program product as in claim 7 , wherein applying the hint changes which calculation node implements an operation of the operations as defined in the first rule. 9. A computer program product as in claim 7 , wherein the hint specifies that the first optimization is applied to at least a portion of the plurality of calculation nodes despite an evaluation of the disqualification fact indicating that the first optimization should not be applied to the at least the portion of the plurality of calculation nodes by the model optimizer. 10. A computer program product as in claim 7 , wherein the hint comprises metadata associated with a corresponding calculation node of the plurality of calculation nodes. 11. A computer program product as in claim 10 , wherein the metadata is specified via user-generated input via a graphical user interface. 12. A system comprising: one or more data processors; and memory storing instructions, which when executed, cause one or more of the at least one data processor to perform operations comprising: receiving a query; generating, at a calculation engine and in response to the query, a calculation scenario for executing the query on a database, the calculation scenario comprising an initial data flow graph comprising data flows between a database server and an application server and a plurality of nodes representing operations for executing the query, at least one node of the plurality of nodes comprising a set of inputs and outputs and at least one operation that transforms the inputs into the outputs; optimizing the initial data flow graph into an optimized data flow graph, the optimizing comprising: enriching, by a model optimizer, the initial data flow graph with a hint on one or more nodes of the plurality of nodes to provide instructions indicating an optimization to be performed at one or more unoptimized nodes within the dataflow graph hierarchy; applying, by a rules engine of the model optimizer, a set of rules to the initial data flow graph, the set of rules comprising a first rule, the first rule defining a first optimization to the initial data flow graph and how and when to apply the first optimization; determining, by the model optimizer, that the first rule comprises a disqualification fact that wou
Plan optimisation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.