Class SingleCheckpointBarrierHandler
- java.lang.Object
-
- org.apache.flink.streaming.runtime.io.checkpointing.CheckpointBarrierHandler
-
- org.apache.flink.streaming.runtime.io.checkpointing.SingleCheckpointBarrierHandler
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
@Internal @NotThreadSafe public class SingleCheckpointBarrierHandler extends CheckpointBarrierHandler
SingleCheckpointBarrierHandler
is used for triggering checkpoint while reading the first barrier and keeping track of the number of received barriers and consumed barriers. It can handle/track just single checkpoint at a time. The behaviour when to actually trigger the checkpoint and what theCheckpointableInput
should do is controlled byBarrierHandlerState
.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SingleCheckpointBarrierHandler
aligned(String taskName, CheckpointableTask toNotifyOnCheckpoint, org.apache.flink.util.clock.Clock clock, int numOpenChannels, BarrierAlignmentUtil.DelayableTimer registerTimer, boolean enableCheckpointAfterTasksFinished, CheckpointableInput... inputs)
static SingleCheckpointBarrierHandler
alternating(String taskName, CheckpointableTask toNotifyOnCheckpoint, SubtaskCheckpointCoordinator checkpointCoordinator, org.apache.flink.util.clock.Clock clock, int numOpenChannels, BarrierAlignmentUtil.DelayableTimer registerTimer, boolean enableCheckpointAfterTasksFinished, CheckpointableInput... inputs)
void
close()
static SingleCheckpointBarrierHandler
createUnalignedCheckpointBarrierHandler(SubtaskCheckpointCoordinator checkpointCoordinator, String taskName, CheckpointableTask toNotifyOnCheckpoint, org.apache.flink.util.clock.Clock clock, boolean enableCheckpointsAfterTasksFinish, CheckpointableInput... inputs)
CompletableFuture<Void>
getAllBarriersReceivedFuture(long checkpointId)
long
getLatestCheckpointId()
protected boolean
isCheckpointPending()
protected void
markCheckpointAlignedAndTransformState(InputChannelInfo alignedChannel, CheckpointBarrier barrier, org.apache.flink.util.function.FunctionWithException<org.apache.flink.streaming.runtime.io.checkpointing.BarrierHandlerState,org.apache.flink.streaming.runtime.io.checkpointing.BarrierHandlerState,Exception> stateTransformer)
void
processBarrier(CheckpointBarrier barrier, InputChannelInfo channelInfo, boolean isRpcTriggered)
void
processBarrierAnnouncement(CheckpointBarrier announcedBarrier, int sequenceNumber, InputChannelInfo channelInfo)
void
processCancellationBarrier(CancelCheckpointMarker cancelBarrier, InputChannelInfo channelInfo)
void
processEndOfPartition(InputChannelInfo channelInfo)
String
toString()
static SingleCheckpointBarrierHandler
unaligned(String taskName, CheckpointableTask toNotifyOnCheckpoint, SubtaskCheckpointCoordinator checkpointCoordinator, org.apache.flink.util.clock.Clock clock, int numOpenChannels, BarrierAlignmentUtil.DelayableTimer registerTimer, boolean enableCheckpointAfterTasksFinished, CheckpointableInput... inputs)
-
Methods inherited from class org.apache.flink.streaming.runtime.io.checkpointing.CheckpointBarrierHandler
addProcessedBytes, getAlignmentDurationNanos, getCheckpointStartDelayNanos, getClock, markAlignmentEnd, markAlignmentEnd, markAlignmentStart, markAlignmentStartAndEnd, notifyAbort, notifyAbortOnCancellationBarrier, notifyCheckpoint, resetAlignment
-
-
-
-
Method Detail
-
createUnalignedCheckpointBarrierHandler
@VisibleForTesting public static SingleCheckpointBarrierHandler createUnalignedCheckpointBarrierHandler(SubtaskCheckpointCoordinator checkpointCoordinator, String taskName, CheckpointableTask toNotifyOnCheckpoint, org.apache.flink.util.clock.Clock clock, boolean enableCheckpointsAfterTasksFinish, CheckpointableInput... inputs)
-
unaligned
public static SingleCheckpointBarrierHandler unaligned(String taskName, CheckpointableTask toNotifyOnCheckpoint, SubtaskCheckpointCoordinator checkpointCoordinator, org.apache.flink.util.clock.Clock clock, int numOpenChannels, BarrierAlignmentUtil.DelayableTimer registerTimer, boolean enableCheckpointAfterTasksFinished, CheckpointableInput... inputs)
-
aligned
public static SingleCheckpointBarrierHandler aligned(String taskName, CheckpointableTask toNotifyOnCheckpoint, org.apache.flink.util.clock.Clock clock, int numOpenChannels, BarrierAlignmentUtil.DelayableTimer registerTimer, boolean enableCheckpointAfterTasksFinished, CheckpointableInput... inputs)
-
alternating
public static SingleCheckpointBarrierHandler alternating(String taskName, CheckpointableTask toNotifyOnCheckpoint, SubtaskCheckpointCoordinator checkpointCoordinator, org.apache.flink.util.clock.Clock clock, int numOpenChannels, BarrierAlignmentUtil.DelayableTimer registerTimer, boolean enableCheckpointAfterTasksFinished, CheckpointableInput... inputs)
-
processBarrier
public void processBarrier(CheckpointBarrier barrier, InputChannelInfo channelInfo, boolean isRpcTriggered) throws IOException
- Specified by:
processBarrier
in classCheckpointBarrierHandler
- Throws:
IOException
-
markCheckpointAlignedAndTransformState
protected void markCheckpointAlignedAndTransformState(InputChannelInfo alignedChannel, CheckpointBarrier barrier, org.apache.flink.util.function.FunctionWithException<org.apache.flink.streaming.runtime.io.checkpointing.BarrierHandlerState,org.apache.flink.streaming.runtime.io.checkpointing.BarrierHandlerState,Exception> stateTransformer) throws IOException
- Throws:
IOException
-
processBarrierAnnouncement
public void processBarrierAnnouncement(CheckpointBarrier announcedBarrier, int sequenceNumber, InputChannelInfo channelInfo) throws IOException
- Specified by:
processBarrierAnnouncement
in classCheckpointBarrierHandler
- Throws:
IOException
-
processCancellationBarrier
public void processCancellationBarrier(CancelCheckpointMarker cancelBarrier, InputChannelInfo channelInfo) throws IOException
- Specified by:
processCancellationBarrier
in classCheckpointBarrierHandler
- Throws:
IOException
-
processEndOfPartition
public void processEndOfPartition(InputChannelInfo channelInfo) throws IOException
- Specified by:
processEndOfPartition
in classCheckpointBarrierHandler
- Throws:
IOException
-
getLatestCheckpointId
public long getLatestCheckpointId()
- Specified by:
getLatestCheckpointId
in classCheckpointBarrierHandler
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classCheckpointBarrierHandler
- Throws:
IOException
-
isCheckpointPending
protected boolean isCheckpointPending()
- Specified by:
isCheckpointPending
in classCheckpointBarrierHandler
-
getAllBarriersReceivedFuture
public CompletableFuture<Void> getAllBarriersReceivedFuture(long checkpointId)
- Overrides:
getAllBarriersReceivedFuture
in classCheckpointBarrierHandler
-
-