Class CompactCoordinator
- java.lang.Object
-
- org.apache.flink.streaming.api.operators.AbstractStreamOperator<CompactMessages.CoordinatorOutput>
-
- org.apache.flink.connector.file.table.stream.compact.CompactCoordinator
-
- All Implemented Interfaces:
Serializable
,CheckpointListener
,Input<CompactMessages.CoordinatorInput>
,KeyContext
,KeyContextHandler
,OneInputStreamOperator<CompactMessages.CoordinatorInput,CompactMessages.CoordinatorOutput>
,StreamOperator<CompactMessages.CoordinatorOutput>
,StreamOperatorStateHandler.CheckpointedStreamOperator
,YieldingOperator<CompactMessages.CoordinatorOutput>
@Internal public class CompactCoordinator extends AbstractStreamOperator<CompactMessages.CoordinatorOutput> implements OneInputStreamOperator<CompactMessages.CoordinatorInput,CompactMessages.CoordinatorOutput>
This is the single (non-parallel) monitoring task which coordinate input files to compaction units. - Receives in-flight input files inside checkpoint. - Receives all upstream end input messages after the checkpoint completes successfully, starts coordination.CompactMessages.CompactionUnit
andCompactMessages.EndCompaction
must be sent to the downstream in an orderly manner, whileCompactMessages.EndCompaction
is broadcast emitting, so unit and endCompaction use the broadcast emitting mechanism together. Since unit is broadcast, we want it to be processed by a single task, so we carry the ID in the unit and let the downstream task select its own unit.NOTE: The coordination is a stable algorithm, which can ensure that the downstream can perform compaction at any time without worrying about fail over.
STATE: This operator stores input files in state, after the checkpoint completes successfully, input files are taken out from the state for coordination.
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
config, lastRecordAttributes1, lastRecordAttributes2, latencyStats, metrics, output, processingTimeService, stateHandler, stateKeySelector1, stateKeySelector2, timeServiceManager
-
-
Constructor Summary
Constructors Constructor Description CompactCoordinator(SupplierWithException<FileSystem,IOException> fsFactory, long targetFileSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
initializeState(StateInitializationContext context)
Stream operators with state which can be restored need to override this hook method.void
processElement(StreamRecord<CompactMessages.CoordinatorInput> element)
Processes one element that arrived on this input of theMultipleInputStreamOperator
.void
snapshotState(StateSnapshotContext context)
Stream operators with state, which want to participate in a snapshot need to override this hook method.-
Methods inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
close, finish, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, open, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setMailboxExecutor, setProcessingTimeService, setup, snapshotState, useSplittableTimers
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.api.common.state.CheckpointListener
notifyCheckpointAborted, notifyCheckpointComplete
-
Methods inherited from interface org.apache.flink.streaming.api.operators.Input
processLatencyMarker, processRecordAttributes, processWatermark, processWatermarkStatus
-
Methods inherited from interface org.apache.flink.streaming.api.operators.KeyContext
getCurrentKey, setCurrentKey
-
Methods inherited from interface org.apache.flink.streaming.api.operators.KeyContextHandler
hasKeyContext
-
Methods inherited from interface org.apache.flink.streaming.api.operators.OneInputStreamOperator
setKeyContextElement
-
Methods inherited from interface org.apache.flink.streaming.api.operators.StreamOperator
close, finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, open, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
-
-
-
-
Constructor Detail
-
CompactCoordinator
public CompactCoordinator(SupplierWithException<FileSystem,IOException> fsFactory, long targetFileSize)
-
-
Method Detail
-
initializeState
public void initializeState(StateInitializationContext context) throws Exception
Description copied from class:AbstractStreamOperator
Stream operators with state which can be restored need to override this hook method.- Specified by:
initializeState
in interfaceStreamOperatorStateHandler.CheckpointedStreamOperator
- Overrides:
initializeState
in classAbstractStreamOperator<CompactMessages.CoordinatorOutput>
- Parameters:
context
- context that allows to register different states.- Throws:
Exception
-
processElement
public void processElement(StreamRecord<CompactMessages.CoordinatorInput> element) throws Exception
Description copied from interface:Input
Processes one element that arrived on this input of theMultipleInputStreamOperator
. This method is guaranteed to not be called concurrently with other methods of the operator.- Specified by:
processElement
in interfaceInput<CompactMessages.CoordinatorInput>
- Throws:
Exception
-
snapshotState
public void snapshotState(StateSnapshotContext context) throws Exception
Description copied from class:AbstractStreamOperator
Stream operators with state, which want to participate in a snapshot need to override this hook method.- Specified by:
snapshotState
in interfaceStreamOperatorStateHandler.CheckpointedStreamOperator
- Overrides:
snapshotState
in classAbstractStreamOperator<CompactMessages.CoordinatorOutput>
- Parameters:
context
- context that provides information and means required for taking a snapshot- Throws:
Exception
-
-