public BottomUpBoundariesNodePartitioner() { super( PartitionNodes, new RuleExpression( new NoGroupJoinMergeBoundaryTapExpressionGraph(), new BottomUpNoSplitConsecutiveBoundariesExpressionGraph() ), new ElementAnnotation( ElementCapture.Primary, IORole.sink ) ); } }
public BottomUpNoSplitConsecutiveBoundariesExpressionGraph() { super( SearchOrder.ReverseTopological ); this.arc( or( new FlowElementExpression( Boundary.class, TypeExpression.Topo.LinearOut ), // not possible to split on a boundary in Tez currently new FlowElementExpression( Tap.class, TypeExpression.Topo.LinearOut ), new FlowElementExpression( Group.class, TypeExpression.Topo.LinearOut ), new FlowElementExpression( Merge.class, TypeExpression.Topo.LinearOut ) ), PathScopeExpression.ANY, new BoundariesElementExpression( ElementCapture.Primary ) ); } }
public BottomUpNoSplitConsecutiveBoundariesExpressionGraph() { super( SearchOrder.ReverseTopological ); this.arc( or( new FlowElementExpression( Boundary.class, TypeExpression.Topo.LinearOut ), // not possible to split on a boundary in Tez currently new FlowElementExpression( Tap.class, TypeExpression.Topo.LinearOut ), new FlowElementExpression( Group.class, TypeExpression.Topo.LinearOut ), new FlowElementExpression( Merge.class, TypeExpression.Topo.LinearOut ) ), PathScopeExpression.ANY, new BoundariesElementExpression( ElementCapture.Primary ) ); } }
public BottomUpBoundariesNodePartitioner() { super( PartitionNodes, new RuleExpression( new NoGroupJoinMergeBoundaryTapExpressionGraph(), new BottomUpNoSplitConsecutiveBoundariesExpressionGraph() ), new ElementAnnotation( ElementCapture.Primary, IORole.sink ) ); } }