Class LockRemover
java.lang.Object
org.apache.flink.streaming.api.operators.AbstractStreamOperator<Void>
org.apache.iceberg.flink.maintenance.operator.LockRemover
- All Implemented Interfaces:
- 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,,- Void> - org.apache.flink.streaming.api.operators.StreamOperator<Void>,- org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperator,- org.apache.flink.streaming.api.operators.YieldingOperator<Void>
@Internal
public class LockRemover
extends org.apache.flink.streaming.api.operators.AbstractStreamOperator<Void>
implements org.apache.flink.streaming.api.operators.OneInputStreamOperator<TaskResult,Void> 
Manages locks and collect 
Metric for 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:
- 
Field SummaryFields inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperatorcombinedWatermark, config, lastRecordAttributes1, lastRecordAttributes2, latencyStats, metrics, output, processingTimeService, stateHandler, stateKeySelector1, stateKeySelector2, timeServiceManager
- 
Constructor SummaryConstructorsConstructorDescriptionLockRemover(String tableName, TriggerLockFactory lockFactory, List<String> maintenanceTaskNames) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidopen()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.AbstractStreamOperatorbeforeInitializeStateHandler, 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, initializeState, isAsyncStateProcessingEnabled, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, prepareSnapshotPreBarrier, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark1, processWatermark1, processWatermark2, processWatermark2, processWatermarkStatus, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setCurrentKey, setKeyContextElement1, setKeyContextElement2, setMailboxExecutor, setProcessingTimeService, setup, snapshotState, snapshotState, useSplittableTimersMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.flink.api.common.state.CheckpointListenernotifyCheckpointAborted, notifyCheckpointCompleteMethods inherited from interface org.apache.flink.streaming.api.operators.InputprocessLatencyMarker, processRecordAttributes, processWatermark, processWatermarkStatusMethods inherited from interface org.apache.flink.streaming.api.operators.KeyContextgetCurrentKey, setCurrentKeyMethods inherited from interface org.apache.flink.streaming.api.operators.KeyContextHandlerhasKeyContextMethods inherited from interface org.apache.flink.streaming.api.operators.OneInputStreamOperatorsetKeyContextElementMethods inherited from interface org.apache.flink.streaming.api.operators.StreamOperatorclose, finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
- 
Constructor Details- 
LockRemoverpublic LockRemover(String tableName, TriggerLockFactory lockFactory, List<String> maintenanceTaskNames) 
 
- 
- 
Method Details- 
open
- 
processElementpublic void processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord<TaskResult> streamRecord) - Specified by:
- processElementin interface- org.apache.flink.streaming.api.operators.Input<TaskResult>
 
- 
processWatermarkpublic void processWatermark(org.apache.flink.streaming.api.watermark.Watermark mark) - Specified by:
- processWatermarkin interface- org.apache.flink.streaming.api.operators.Input<TaskResult>
- Overrides:
- processWatermarkin class- org.apache.flink.streaming.api.operators.AbstractStreamOperator<Void>
 
 
-