Source:
private void connect(Integer headOfChain, StreamEdge edge) { physicalEdgesInOrder.add(edge); Integer downStreamVertexID = edge.getTargetId(); JobVertex headVertex = jobVertices.get(headOfChain); JobVertex downStreamVertex = jobVertices.get(downStreamVertexID); StreamConfig downStreamConfig = new StreamConfig(downStreamVertex.getConfiguration()); downStreamConfig.setNumberOfNetworkInputs(downStreamConfig.getNumberOfNetworkInputs() + 1); StreamPartitioner<?> partitioner = edge.getPartitioner(); ResultPartitionType resultPartitionType; switch (edge.getShuffleMode()) { case PIPELINED: resultPartitionType = ResultPartitionType.PIPELINED_BOUNDED; break; case BATCH: resultPartitionType = ResultPartitionType.BLOCKING; break; case UNDEFINED: resultPartitionType = determineResultPartitionType(partitioner); break; default: throw new UnsupportedOperationException("Data exchange mode " + edge.getShuffleMode() + " is not supported yet."); } checkAndResetBufferTimeout(resultPartitionType, edge); JobEdge jobEdge; if (isPointwisePartitioner(partitioner)) { jobEdge = downStreamVertex.connectNewDataSetAsInput( headVertex, DistributionPattern.POINTWISE, resultPartitionType); } else { jobEdge = downStreamVertex.connectNewDataSetAsInput( headVertex, DistributionPattern.ALL_TO_ALL, resultPartitionType); } jobEdge.setShipStrategyName(partitioner.toString()); jobEdge.setDownstreamChannelStateRescaler(partitioner.getUpstreamChannelStateRescaler()); jobEdge.setUpstreamChannelStateRescaler(partitioner.getDownstreamChannelStateRescaler()); if (LOG.isDebugEnabled()) { LOG.debug("CONNECTED: - -> {}", partitioner.getClass().getSimpleName(), headOfChain, downStreamVertexID); } }

Target:
private void connect(Integer headOfChain, StreamEdge edge) { physicalEdgesInOrder.add(edge); Integer downStreamVertexID = edge.getTargetId(); JobVertex headVertex = jobVertices.get(headOfChain); JobVertex downStreamVertex = jobVertices.get(downStreamVertexID); StreamConfig downStreamConfig = new StreamConfig(downStreamVertex.getConfiguration()); downStreamConfig.setNumberOfNetworkInputs(downStreamConfig.getNumberOfNetworkInputs() + 1); StreamPartitioner<?> partitioner = edge.getPartitioner(); ResultPartitionType resultPartitionType; switch (edge.getShuffleMode()) { case PIPELINED: resultPartitionType = ResultPartitionType.PIPELINED_BOUNDED; break; case BATCH: resultPartitionType = ResultPartitionType.BLOCKING; break; case UNDEFINED: resultPartitionType = determineResultPartitionType(partitioner); break; default: throw new UnsupportedOperationException("Data exchange mode " + edge.getShuffleMode() + " is not supported yet."); } checkAndResetBufferTimeout(resultPartitionType, edge); JobEdge jobEdge; if (isPointwisePartitioner(partitioner)) { jobEdge = downStreamVertex.connectNewDataSetAsInput( headVertex, DistributionPattern.POINTWISE, resultPartitionType); } else { jobEdge = downStreamVertex.connectNewDataSetAsInput( headVertex, DistributionPattern.ALL_TO_ALL, resultPartitionType); } jobEdge.setShipStrategyName(partitioner.toString()); jobEdge.setDownstreamSubtaskStateMapper(partitioner.getDownstreamSubtaskStateMapper()); jobEdge.setUpstreamSubtaskStateMapper(partitioner.getUpstreamSubtaskStateMapper()); if (LOG.isDebugEnabled()) { LOG.debug("CONNECTED: - -> {}", partitioner.getClass().getSimpleName(), headOfChain, downStreamVertexID); } }