Dataflow optimization for extractions from a data repository
Assigneesalesforce.com, inc.
InventorsZUYE ZHENG, AMRUTA MOKTALI, SUYOG ANIL DESHPANDE
Life of this patent
Estimating the term…
Abstract
Dataflow optimization is described for extractions from a data depository. In one example an object-relationship graph of a data extraction definition is traversed in a first pass. The object-relationship graph has a node for each object. The steps from each node of the graph in the first pass is determined. It is determined if any of the determined steps are repeated. A single instance of each repeated step is placed before other steps in a query plan. Data is then extracted in a second pass from the object-oriented database system according to the object-relationship graph by performing the repeated steps first and then reusing the repeated steps in other determined steps.
Claims17
A database system-implemented method comprising:
- traversing an object-relationship graph of a data extraction definition in a first pass, the object-relationship graph having a node for each object;
- determining steps from each node of the graph in the first pass;
- determining if any of the determined steps are repeated;
- placing a single instance of each repeated step before other steps in a query plan;
- extracting data in a second pass from an object-oriented database system according to the object-relationship graph by performing the repeated steps first and then reusing the repeated steps in other determined steps.
A database system-implemented method comprising:
- traversing an object-relationship graph through multiple passes, the object-relationship graph defining a data extraction from an object-oriented database as steps through multiple objects as nodes of the graph and through relationships between the nodes;
- putting shared and reusable steps at the top of the data extraction definition;
- and
- reusing shared and reusable steps in later steps of the data extraction definition.
A non-transitory machine-readable medium comprising a plurality of instructions which, when executed by a processing device, cause the processing device to perform one or more operations comprising:
- traversing an object-relationship graph of a data extraction definition in a first pass, the object-relationship graph having a node for each object;
- determining steps from each node of the graph in the first pass;
- determining if any of the determined steps are repeated;
- placing a single instance of each repeated step before other steps in a query plan;
- extracting data in a second pass from an object-oriented database system according to the object-relationship graph by performing the repeated steps first and then reusing the repeated steps in other determined steps.
A system comprising:
- a processor and a memory to execute instructions at the system;
- and
- a mechanism to:
- traverse an object-relationship graph through multiple passes, the object-relationship graph defining a data extraction from an object-oriented database as steps through multiple objects as nodes of the graph and through relationships between the nodes;
- put shared and reusable steps at the top of the data extraction definition;
- and
- reuse shared and reusable steps in later steps of the data extraction definition.
Dependencies are inferred from the claim text.