Class StreamConfig
- java.lang.Object
-
- org.apache.flink.streaming.api.graph.StreamConfig
-
- All Implemented Interfaces:
Serializable
@Internal public class StreamConfig extends Object implements Serializable
Internal configuration for aStreamOperator. This is created and populated by theStreamingJobGraphGenerator.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceStreamConfig.InputConfigInterface representing chained inputs.static classStreamConfig.InputRequirementRequirements of the different inputs of an operator.static classStreamConfig.NetworkInputConfigA representation of a NetworkStreamConfig.InputConfig.static classStreamConfig.SourceInputConfigA serialized representation of an input.
-
Field Summary
Fields Modifier and Type Field Description static StringSERIALIZED_UDFstatic StringSERIALIZED_UDF_CLASSIntroduce serializedUdfClassName to avoid unnecessarily heavygetStreamOperatorFactory(java.lang.ClassLoader).
-
Constructor Summary
Constructors Constructor Description StreamConfig(org.apache.flink.configuration.Configuration config)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclearInitialConfigs()In general, we don't clear any configuration.DurationgetAlignedCheckpointTimeout()org.apache.flink.api.common.attribute.AttributegetAttribute(ClassLoader cl)List<StreamEdge>getChainedOutputs(ClassLoader cl)intgetChainIndex()org.apache.flink.core.execution.CheckpointingModegetCheckpointMode()CheckpointStoragegetCheckpointStorage(ClassLoader cl)org.apache.flink.configuration.ConfigurationgetConfiguration()List<StreamEdge>getInPhysicalEdges(ClassLoader cl)StreamConfig.InputConfig[]getInputs(ClassLoader cl)StringgetIterationId()longgetIterationWaitTime()doublegetManagedMemoryFractionOperatorUseCaseOfSlot(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, org.apache.flink.configuration.Configuration jobConfig, org.apache.flink.configuration.Configuration taskManagerConfig, ClassLoader cl)Fraction of total managed memory in the slot that this operator should use for the given use case.intgetMaxConcurrentCheckpoints()intgetMaxSubtasksPerChannelStateFile()intgetNumberOfNetworkInputs()intgetNumberOfOutputs()OperatorIDgetOperatorID()StringgetOperatorName()List<NonChainedOutput>getOperatorNonChainedOutputs(ClassLoader cl)CompletableFuture<StreamConfig>getSerializationFuture()StateBackendgetStateBackend(ClassLoader cl)<K> org.apache.flink.api.common.typeutils.TypeSerializer<K>getStateKeySerializer(ClassLoader cl)<IN,K extends Serializable>
org.apache.flink.api.java.functions.KeySelector<IN,K>getStatePartitioner(int input, ClassLoader cl)<T extends StreamOperator<?>>
TgetStreamOperator(ClassLoader cl)<T extends StreamOperatorFactory<?>>
TgetStreamOperatorFactory(ClassLoader cl)<T extends StreamOperatorFactory<?>>
Class<T>getStreamOperatorFactoryClass(ClassLoader cl)InternalTimeServiceManager.ProvidergetTimerServiceProvider(ClassLoader cl)Map<Integer,StreamConfig>getTransitiveChainedTaskConfigs(ClassLoader cl)Map<Integer,StreamConfig>getTransitiveChainedTaskConfigsWithSelf(ClassLoader cl)<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>getTypeSerializerIn(int index, ClassLoader cl)<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>getTypeSerializerIn1(ClassLoader cl)Deprecated.<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>getTypeSerializerIn2(ClassLoader cl)Deprecated.<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>getTypeSerializerOut(ClassLoader cl)<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>getTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, ClassLoader cl)IntegergetVertexID()List<NonChainedOutput>getVertexNonChainedOutputs(ClassLoader cl)Set<AbstractInternalWatermarkDeclaration<?>>getWatermarkDeclarations(ClassLoader cl)booleanisChainEnd()booleanisChainStart()org.apache.flink.util.TernaryBooleanisChangelogStateBackendEnabled(ClassLoader cl)booleanisCheckpointingEnabled()booleanisExactlyOnceCheckpointMode()booleanisGraphContainingLoops()booleanisUnalignedCheckpointsEnabled()booleanisUnalignedCheckpointsSplittableTimersEnabled()static booleanrequiresSorting(StreamConfig.InputConfig inputConfig)voidserializeAllConfigs()Serialize all object configs synchronously.voidsetAlignedCheckpointTimeout(Duration alignedCheckpointTimeout)voidsetAndSerializeTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)voidsetAttribute(org.apache.flink.api.common.attribute.Attribute attribute)voidsetChainedOutputs(List<StreamEdge> chainedOutputs)voidsetChainEnd()voidsetChainIndex(int index)voidsetChainStart()voidsetChangelogStateBackendEnabled(org.apache.flink.util.TernaryBoolean enabled)voidsetCheckpointingEnabled(boolean enabled)voidsetCheckpointMode(org.apache.flink.core.execution.CheckpointingMode mode)voidsetCheckpointStorage(CheckpointStorage storage)voidsetGraphContainingLoops(boolean graphContainingLoops)voidsetInPhysicalEdges(List<StreamEdge> inEdges)voidsetInputs(StreamConfig.InputConfig... inputs)voidsetIterationId(String iterationId)voidsetIterationWaitTime(long time)voidsetManagedMemoryFractionOperatorOfUseCase(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, double fraction)Fraction of managed memory reserved for the given use case that this operator should use.voidsetMaxConcurrentCheckpoints(int maxConcurrentCheckpoints)voidsetMaxSubtasksPerChannelStateFile(int maxSubtasksPerChannelStateFile)voidsetNumberOfNetworkInputs(int numberOfInputs)voidsetNumberOfOutputs(int numberOfOutputs)voidsetOperatorID(OperatorID operatorID)voidsetOperatorName(String name)voidsetOperatorNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)Sets the operator level non-chained outputs.voidsetSerializedCheckpointStorage(org.apache.flink.util.SerializedValue<CheckpointStorage> serializedCheckpointStorage)voidsetSerializedStateBackend(org.apache.flink.util.SerializedValue<StateBackend> serializedStateBackend, boolean useManagedMemory)voidsetStateBackend(StateBackend backend)voidsetStateBackendUsesManagedMemory(boolean usesManagedMemory)voidsetStateKeySerializer(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)voidsetStatePartitioner(int input, org.apache.flink.api.java.functions.KeySelector<?,?> partitioner)voidsetStreamOperator(StreamOperator<?> operator)voidsetStreamOperatorFactory(StreamOperatorFactory<?> factory)voidsetTimerServiceProvider(InternalTimeServiceManager.Provider timerServiceProvider)voidsetTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)voidsetTypeSerializerOut(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)voidsetTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)voidsetUnalignedCheckpointsEnabled(boolean enabled)voidsetUnalignedCheckpointsSplittableTimersEnabled(boolean enabled)voidsetupNetworkInputs(org.apache.flink.api.common.typeutils.TypeSerializer<?>... serializers)voidsetVertexID(Integer vertexID)voidsetVertexNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)Sets the job vertex level non-chained outputs.voidsetWatermarkDeclarations(byte[] serializedWatermarkDeclarations)StringtoString()CompletableFuture<StreamConfig>triggerSerializationAndReturnFuture(Executor ioExecutor)Trigger the object config serialization and return the completable future.
-
-
-
Field Detail
-
SERIALIZED_UDF
public static final String SERIALIZED_UDF
- See Also:
- Constant Field Values
-
SERIALIZED_UDF_CLASS
public static final String SERIALIZED_UDF_CLASS
Introduce serializedUdfClassName to avoid unnecessarily heavygetStreamOperatorFactory(java.lang.ClassLoader).- See Also:
- Constant Field Values
-
-
Method Detail
-
getConfiguration
public org.apache.flink.configuration.Configuration getConfiguration()
-
getSerializationFuture
public CompletableFuture<StreamConfig> getSerializationFuture()
-
triggerSerializationAndReturnFuture
public CompletableFuture<StreamConfig> triggerSerializationAndReturnFuture(Executor ioExecutor)
Trigger the object config serialization and return the completable future.
-
serializeAllConfigs
public void serializeAllConfigs()
Serialize all object configs synchronously. Only used for operators which need to reconstruct the StreamConfig internally or test.
-
setAndSerializeTransitiveChainedTaskConfigs
@VisibleForTesting public void setAndSerializeTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)
-
setVertexID
public void setVertexID(Integer vertexID)
-
getVertexID
public Integer getVertexID()
-
setManagedMemoryFractionOperatorOfUseCase
public void setManagedMemoryFractionOperatorOfUseCase(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, double fraction)Fraction of managed memory reserved for the given use case that this operator should use.
-
getManagedMemoryFractionOperatorUseCaseOfSlot
public double getManagedMemoryFractionOperatorUseCaseOfSlot(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, org.apache.flink.configuration.Configuration jobConfig, org.apache.flink.configuration.Configuration taskManagerConfig, ClassLoader cl)Fraction of total managed memory in the slot that this operator should use for the given use case.
-
setTypeSerializerOut
public void setTypeSerializerOut(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
-
getTypeSerializerOut
public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerOut(ClassLoader cl)
-
setTypeSerializerSideOut
public void setTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
-
getTypeSerializerSideOut
public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, ClassLoader cl)
-
setWatermarkDeclarations
public void setWatermarkDeclarations(byte[] serializedWatermarkDeclarations)
-
getWatermarkDeclarations
public Set<AbstractInternalWatermarkDeclaration<?>> getWatermarkDeclarations(ClassLoader cl)
-
setupNetworkInputs
public void setupNetworkInputs(org.apache.flink.api.common.typeutils.TypeSerializer<?>... serializers)
-
setInputs
public void setInputs(StreamConfig.InputConfig... inputs)
-
getInputs
public StreamConfig.InputConfig[] getInputs(ClassLoader cl)
-
getTypeSerializerIn1
@Deprecated public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerIn1(ClassLoader cl)
Deprecated.
-
getTypeSerializerIn2
@Deprecated public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerIn2(ClassLoader cl)
Deprecated.
-
getTypeSerializerIn
public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerIn(int index, ClassLoader cl)
-
setStreamOperator
@VisibleForTesting public void setStreamOperator(StreamOperator<?> operator)
-
setStreamOperatorFactory
public void setStreamOperatorFactory(StreamOperatorFactory<?> factory)
-
getStreamOperator
@VisibleForTesting public <T extends StreamOperator<?>> T getStreamOperator(ClassLoader cl)
-
getStreamOperatorFactory
public <T extends StreamOperatorFactory<?>> T getStreamOperatorFactory(ClassLoader cl)
-
getStreamOperatorFactoryClass
public <T extends StreamOperatorFactory<?>> Class<T> getStreamOperatorFactoryClass(ClassLoader cl)
-
setIterationId
public void setIterationId(String iterationId)
-
getIterationId
public String getIterationId()
-
setIterationWaitTime
public void setIterationWaitTime(long time)
-
getIterationWaitTime
public long getIterationWaitTime()
-
setNumberOfNetworkInputs
public void setNumberOfNetworkInputs(int numberOfInputs)
-
getNumberOfNetworkInputs
public int getNumberOfNetworkInputs()
-
setNumberOfOutputs
public void setNumberOfOutputs(int numberOfOutputs)
-
getNumberOfOutputs
public int getNumberOfOutputs()
-
setOperatorNonChainedOutputs
public void setOperatorNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)
Sets the operator level non-chained outputs.
-
getOperatorNonChainedOutputs
public List<NonChainedOutput> getOperatorNonChainedOutputs(ClassLoader cl)
-
setChainedOutputs
public void setChainedOutputs(List<StreamEdge> chainedOutputs)
-
getChainedOutputs
public List<StreamEdge> getChainedOutputs(ClassLoader cl)
-
setInPhysicalEdges
public void setInPhysicalEdges(List<StreamEdge> inEdges)
-
getInPhysicalEdges
public List<StreamEdge> getInPhysicalEdges(ClassLoader cl)
-
setCheckpointingEnabled
public void setCheckpointingEnabled(boolean enabled)
-
isCheckpointingEnabled
public boolean isCheckpointingEnabled()
-
setCheckpointMode
public void setCheckpointMode(org.apache.flink.core.execution.CheckpointingMode mode)
-
getCheckpointMode
public org.apache.flink.core.execution.CheckpointingMode getCheckpointMode()
-
setUnalignedCheckpointsEnabled
public void setUnalignedCheckpointsEnabled(boolean enabled)
-
isUnalignedCheckpointsEnabled
public boolean isUnalignedCheckpointsEnabled()
-
setUnalignedCheckpointsSplittableTimersEnabled
public void setUnalignedCheckpointsSplittableTimersEnabled(boolean enabled)
-
isUnalignedCheckpointsSplittableTimersEnabled
public boolean isUnalignedCheckpointsSplittableTimersEnabled()
-
isExactlyOnceCheckpointMode
public boolean isExactlyOnceCheckpointMode()
-
getAlignedCheckpointTimeout
public Duration getAlignedCheckpointTimeout()
-
setAlignedCheckpointTimeout
public void setAlignedCheckpointTimeout(Duration alignedCheckpointTimeout)
-
setMaxConcurrentCheckpoints
public void setMaxConcurrentCheckpoints(int maxConcurrentCheckpoints)
-
getMaxConcurrentCheckpoints
public int getMaxConcurrentCheckpoints()
-
getMaxSubtasksPerChannelStateFile
public int getMaxSubtasksPerChannelStateFile()
-
setMaxSubtasksPerChannelStateFile
public void setMaxSubtasksPerChannelStateFile(int maxSubtasksPerChannelStateFile)
-
setVertexNonChainedOutputs
public void setVertexNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)
Sets the job vertex level non-chained outputs. The given output list must have the same order withJobVertex.getProducedDataSets().
-
getVertexNonChainedOutputs
public List<NonChainedOutput> getVertexNonChainedOutputs(ClassLoader cl)
-
setTransitiveChainedTaskConfigs
public void setTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)
-
getTransitiveChainedTaskConfigs
public Map<Integer,StreamConfig> getTransitiveChainedTaskConfigs(ClassLoader cl)
-
getTransitiveChainedTaskConfigsWithSelf
public Map<Integer,StreamConfig> getTransitiveChainedTaskConfigsWithSelf(ClassLoader cl)
-
setOperatorID
public void setOperatorID(OperatorID operatorID)
-
getOperatorID
public OperatorID getOperatorID()
-
setOperatorName
public void setOperatorName(String name)
-
getOperatorName
public String getOperatorName()
-
setChainIndex
public void setChainIndex(int index)
-
getChainIndex
public int getChainIndex()
-
setStateBackend
public void setStateBackend(StateBackend backend)
-
setChangelogStateBackendEnabled
public void setChangelogStateBackendEnabled(org.apache.flink.util.TernaryBoolean enabled)
-
setStateBackendUsesManagedMemory
@VisibleForTesting public void setStateBackendUsesManagedMemory(boolean usesManagedMemory)
-
setSerializedStateBackend
public void setSerializedStateBackend(org.apache.flink.util.SerializedValue<StateBackend> serializedStateBackend, boolean useManagedMemory)
-
setSerializedCheckpointStorage
public void setSerializedCheckpointStorage(org.apache.flink.util.SerializedValue<CheckpointStorage> serializedCheckpointStorage)
-
getStateBackend
public StateBackend getStateBackend(ClassLoader cl)
-
isChangelogStateBackendEnabled
public org.apache.flink.util.TernaryBoolean isChangelogStateBackendEnabled(ClassLoader cl)
-
setCheckpointStorage
@VisibleForTesting public void setCheckpointStorage(CheckpointStorage storage)
-
getCheckpointStorage
public CheckpointStorage getCheckpointStorage(ClassLoader cl)
-
setTimerServiceProvider
public void setTimerServiceProvider(InternalTimeServiceManager.Provider timerServiceProvider)
-
getTimerServiceProvider
public InternalTimeServiceManager.Provider getTimerServiceProvider(ClassLoader cl)
-
setStatePartitioner
public void setStatePartitioner(int input, org.apache.flink.api.java.functions.KeySelector<?,?> partitioner)
-
getStatePartitioner
public <IN,K extends Serializable> org.apache.flink.api.java.functions.KeySelector<IN,K> getStatePartitioner(int input, ClassLoader cl)
-
setStateKeySerializer
public void setStateKeySerializer(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
-
getStateKeySerializer
public <K> org.apache.flink.api.common.typeutils.TypeSerializer<K> getStateKeySerializer(ClassLoader cl)
-
setChainStart
public void setChainStart()
-
isChainStart
public boolean isChainStart()
-
setChainEnd
public void setChainEnd()
-
isChainEnd
public boolean isChainEnd()
-
setGraphContainingLoops
public void setGraphContainingLoops(boolean graphContainingLoops)
-
isGraphContainingLoops
public boolean isGraphContainingLoops()
-
setAttribute
public void setAttribute(org.apache.flink.api.common.attribute.Attribute attribute)
-
getAttribute
public org.apache.flink.api.common.attribute.Attribute getAttribute(ClassLoader cl)
-
clearInitialConfigs
public void clearInitialConfigs()
In general, we don't clear any configuration. However, theSERIALIZED_UDFmay be very large when operator includes some large objects, the SERIALIZED_UDF is used to create a StreamOperator and usually only needs to be called once.CHAINED_TASK_CONFIGmay be large as well due to the StreamConfig of all non-head operators in OperatorChain will be serialized and stored in CHAINED_TASK_CONFIG. They can be cleared to reduce the memory after StreamTask is initialized. If so, TM will have more memory during running. See FLINK-33315 and FLINK-33317 for more information.
-
requiresSorting
public static boolean requiresSorting(StreamConfig.InputConfig inputConfig)
-
-