Class LockRemover
- java.lang.Object
-
- org.apache.flink.streaming.api.operators.AbstractStreamOperator<java.lang.Void>
-
- org.apache.iceberg.flink.maintenance.operator.LockRemover
-
- All Implemented Interfaces:
java.io.Serializable,org.apache.flink.api.common.state.CheckpointListener,org.apache.flink.streaming.api.operators.Input<TaskResult>,org.apache.flink.streaming.api.operators.KeyContext,org.apache.flink.streaming.api.operators.KeyContextHandler,org.apache.flink.streaming.api.operators.OneInputStreamOperator<TaskResult,java.lang.Void>,org.apache.flink.streaming.api.operators.SetupableStreamOperator<java.lang.Void>,org.apache.flink.streaming.api.operators.StreamOperator<java.lang.Void>,org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperator,org.apache.flink.streaming.api.operators.YieldingOperator<java.lang.Void>
@Internal public class LockRemover extends org.apache.flink.streaming.api.operators.AbstractStreamOperator<java.lang.Void> implements org.apache.flink.streaming.api.operators.OneInputStreamOperator<TaskResult,java.lang.Void>
Manages locks and collectMetricfor the Maintenance Tasks.The assumptions about the locks are the following:
- Every
TaskResultis followed by aWatermarkfor normalTriggers - For the
Trigger.recovery(long)Watermarkthere is no element to process
- Normal execution - we receive a
TaskResultand then aWatermark- unlocking the lock is handled by theprocessElement(StreamRecord) - Recovery without ongoing execution (unlocking the recoveryLock) - we receive the
Trigger.recovery(long)Watermarkwithout anyTaskResult- unlocking theTriggerLockFactory.createRecoveryLock()and a possibleTriggerLockFactory.createLock()is handled by theprocessWatermark(Watermark)(thelastProcessedTaskStartEpochis 0 in this case) - Recovery with an ongoing execution - we receive a
TaskResultand then aWatermark- unlocking theTriggerLockFactory.createLock()is handled by theprocessElement(StreamRecord), unlocking theTriggerLockFactory.createRecoveryLock()is handled by theprocessWatermark(Watermark)(thelastProcessedTaskStartEpochis the start time of the old task)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description LockRemover(TriggerLockFactory lockFactory, java.util.List<java.lang.String> maintenanceTaskNames)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidopen()voidprocessElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<TaskResult> streamRecord)voidprocessWatermark(org.apache.flink.streaming.api.watermark.Watermark mark)-
Methods inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
close, finish, getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setChainingStrategy, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setMailboxExecutor, setProcessingTimeService, setup, snapshotState, 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, 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
-
-
-
-
Constructor Detail
-
LockRemover
public LockRemover(TriggerLockFactory lockFactory, java.util.List<java.lang.String> maintenanceTaskNames)
-
-
Method Detail
-
open
public void open() throws java.lang.Exception- Specified by:
openin interfaceorg.apache.flink.streaming.api.operators.StreamOperator<java.lang.Void>- Overrides:
openin classorg.apache.flink.streaming.api.operators.AbstractStreamOperator<java.lang.Void>- Throws:
java.lang.Exception
-
processElement
public void processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<TaskResult> streamRecord)
- Specified by:
processElementin interfaceorg.apache.flink.streaming.api.operators.Input<TaskResult>
-
processWatermark
public void processWatermark(org.apache.flink.streaming.api.watermark.Watermark mark)
- Specified by:
processWatermarkin interfaceorg.apache.flink.streaming.api.operators.Input<TaskResult>- Overrides:
processWatermarkin classorg.apache.flink.streaming.api.operators.AbstractStreamOperator<java.lang.Void>
-
-