Generating code for an integrated data system
First Claim
1. A computer implemented method for generating code for an integrated data system, the computer-implemented method comprising:
- receiving a mixed data flow containing mixed data flow operators, the mixed data flow operators collectively defining operations to be performed to complete the mixed data flow, wherein a first of a plurality of runtime environments of distinct types is selected to perform a given one of the defined operations, wherein the given operation is dependent on at least one other operation performed in a second of the plurality of runtime environments;
generating, based on the mixed data flow, a logical operator graph containing logical operators independent of the plurality of runtime environments;
converting the logical operator graph to an extended query graph model in which the logical operators are converted to model operators associated with the plurality of runtime environments;
analyzing the extended query graph model in order to pre-optimize code generation to include at least one of chunking and execution parallelism;
subsequent to analyzing the extended query graph model, converting the extended query graph model via code generation by operation of one or more computer processors into an execution plan graph executable on the plurality of different types of runtime environments; and
executing the execution plan graph by an execution engine that invokes a plurality of runtime engines, each runtime engine being of a distinct runtime engine type corresponding to a respective one of the plurality of runtime environments.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer implemented method for generating code for an integrated data system. A mixed data flow is received. The mixed data flow contains mixed data flow operators, which are associated with multiple runtime environments. A graph is generated containing logical operators based on the mixed data flow in response to receiving the mixed data flow. The logical operators are independent of the plurality of runtime environments. The graph is converted to a model. The logical operators are converted to model operators associated with the multiple runtime environments. The model operators allow for analysis of operations for the mixed data flow. The model is converted into an execution plan graph. The execution plan graph is executable on different runtime environments.
-
Citations
24 Claims
-
1. A computer implemented method for generating code for an integrated data system, the computer-implemented method comprising:
-
receiving a mixed data flow containing mixed data flow operators, the mixed data flow operators collectively defining operations to be performed to complete the mixed data flow, wherein a first of a plurality of runtime environments of distinct types is selected to perform a given one of the defined operations, wherein the given operation is dependent on at least one other operation performed in a second of the plurality of runtime environments; generating, based on the mixed data flow, a logical operator graph containing logical operators independent of the plurality of runtime environments; converting the logical operator graph to an extended query graph model in which the logical operators are converted to model operators associated with the plurality of runtime environments; analyzing the extended query graph model in order to pre-optimize code generation to include at least one of chunking and execution parallelism; subsequent to analyzing the extended query graph model, converting the extended query graph model via code generation by operation of one or more computer processors into an execution plan graph executable on the plurality of different types of runtime environments; and executing the execution plan graph by an execution engine that invokes a plurality of runtime engines, each runtime engine being of a distinct runtime engine type corresponding to a respective one of the plurality of runtime environments. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer readable medium containing a program which, when executed, performs an operation to generate code for an integrated data system, the operation comprising:
-
receiving a mixed data flow containing mixed data flow operators, the mixed data flow operators collectively defining operations to be performed to complete the mixed data flow, wherein a first of a plurality of runtime environments of distinct types is selected to perform a given one of the defined operations, wherein the given operation is dependent on at least one other operation performed in a second of the plurality of runtime environments; generating, based on the mixed data flow, a logical operator graph containing logical operators independent of the plurality of runtime environments; converting the logical operator graph to an extended query graph model in which the logical operators are converted to model operators associated with the plurality of runtime environments; analyzing the extended query graph model in order to pre-optimize code generation to include at least one of chunking and execution parallelism; subsequent to analyzing the extended query graph model, converting the extended query graph model via code generation by operation of one or more computer processors when executing the program, into an execution plan graph executable on the plurality of different types of runtime environments.
-
-
24. A system to generate code for an integrated data system, the system comprising:
-
a computer processor; a graphical user interface to receive input for creating a mixed data flow containing mixed data flow operators, the mixed data flow operators collectively defining operations to be performed to complete the mixed data flow, wherein a first of a plurality of runtime environments of distinct types is selected to perform a given one of the defined operations, wherein the given operation is dependent on at least one other operation performed in a second of the plurality of runtime environments; and a code generation system operably connected to the graphical user interface and executable by the processor to; receive the mixed data flow from the graphical user interface; generate, based on the mixed data flow, a logical operator graph containing logical operators independent of the plurality of runtime environments, convert the logical operator graph to an extended query graph model in which the logical operators are converted to model operators associated with the plurality of runtime environments; analyze the extended query graph model in order to pre-optimize code generation to include at least one of chunking and execution parallelism; subsequent to analyzing the extended query graph model, convert the extended query graph model via code generation into an execution plan graph executable on the plurality of different types of runtime environments; and execute the execution plan graph by an execution engine that invokes a plurality of runtime engines, each runtime engine being of a distinct runtime engine type corresponding to a respective one of the plurality of runtime environments.
-
Specification