Planning - Aster Execution Engine

Teradata Aster® Developer Guide

Product
Aster Execution Engine
Release Number
7.00.02
Published
July 2017
Language
English (United States)
Last Update
2018-04-13
dita:mapPath
xnl1494366523182.ditamap
dita:ditavalPath
Generic_no_ie_no_tempfilter.ditaval
dita:id
ffu1489104705746
lifecycle
previous
Product Category
Software

The following figure illustrates control and data flow during the planning phase.

Control and data flow during planning

  1. The Planner conducts runtime contract negotiation.
  2. During optimization, the Planner invokes the CollaborativePlanning.completePlanningContract() method.

    The Planner populates a request data structure using the distribution and order information for each of the inputs to the SQL-MapReduce function. It also populates the request data structure with the query context information: Output column projection, predicates to be pushed into the function or its input, and order and limit information.

    In the completePlanningContract() method, the SQL-MapReduce function returns the reply data structure, populating it with the output distribution and order information. It also populates the query context response for each input stream. The response includes: Input column projections, predicates pushed into the function, predicates pushed into each input stream, whether the function implements limit and output column projection.

  3. The Planner uses the reply data structure returned by completePlanningContract() to set the properties of the plan. The properties are checked for inconsistencies prior to using them. Setting the plan’s properties correctly helps the Planner optimize away redundant transfer and/or sort operations in the plan. The response also provides information for implementing predicate push-down, column projection, and limit push-down through the SQL-MapReduce function.
  4. The Planner invokes the completePlanningContract() function multiple times until a final plan is chosen.