T
- Type of the elements in the Stream@Internal public class ForwardForUnspecifiedPartitioner<T> extends ForwardPartitioner<T>
ExecutionConfig.PARALLELISM_DEFAULT
and the edge's partitioner is not specified
(partitioner==null), the edge's partitioner will be set to FORWARD by default(See StreamGraph.createActualEdge(java.lang.Integer, java.lang.Integer, int, org.apache.flink.streaming.runtime.partitioner.StreamPartitioner<?>, org.apache.flink.util.OutputTag, org.apache.flink.streaming.api.transformations.StreamExchangeMode, org.apache.flink.runtime.jobgraph.IntermediateDataSetID)
method for details). When using the AdaptiveBatchScheduler, this
will result in the parallelism of many job vertices is not calculated based on the amount of data
but has to align with the parallelism of their upstream vertices due to forward edges, which is
contrary to the original intention of the AdaptiveBatchScheduler.
To solve it, we introduce the ForwardForUnspecifiedPartitioner
. This partitioner will
be set for unspecified edges(partitioner==null), and then the runtime framework will change it to
FORWARD/RESCALE after the operator chain creation:
1. Convert to ForwardPartitioner
if the partitioner is intra-chain.
2. Convert to RescalePartitioner
if the partitioner is inter-chain.
This partitioner should only be used when using AdaptiveBatchScheduler.
numberOfChannels
Constructor and Description |
---|
ForwardForUnspecifiedPartitioner() |
Modifier and Type | Method and Description |
---|---|
StreamPartitioner<T> |
copy() |
SubtaskStateMapper |
getDownstreamSubtaskStateMapper()
Defines the behavior of this partitioner, when downstream rescaled during recovery of
in-flight data.
|
int |
selectChannel(SerializationDelegate<StreamRecord<T>> record)
Returns the logical channel index, to which the given record should be written.
|
getUpstreamSubtaskStateMapper, isPointwise, toString
disableUnalignedCheckpoints, equals, hashCode, isBroadcast, isSupportsUnalignedCheckpoint, setup
public StreamPartitioner<T> copy()
copy
in class ForwardPartitioner<T>
public SubtaskStateMapper getDownstreamSubtaskStateMapper()
StreamPartitioner
getDownstreamSubtaskStateMapper
in class ForwardPartitioner<T>
public int selectChannel(SerializationDelegate<StreamRecord<T>> record)
ChannelSelector
UnsupportedOperationException
).selectChannel
in interface ChannelSelector<SerializationDelegate<StreamRecord<T>>>
selectChannel
in class ForwardPartitioner<T>
record
- the record to determine the output channels for.Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.