Package org.apache.flink.runtime.state
Interface CheckpointStreamFactory
-
- All Known Subinterfaces:
CheckpointStorageLocation
- All Known Implementing Classes:
FsCheckpointStorageLocation
,FsCheckpointStreamFactory
,FsMergingCheckpointStorageLocation
,MemCheckpointStreamFactory
,NonPersistentMetadataCheckpointStorageLocation
,PersistentMetadataCheckpointStorageLocation
public interface CheckpointStreamFactory
A factory for checkpoint output streams, which are used to persist data for checkpoints.Stream factories can be created from the
CheckpointStorageAccess
throughCheckpointStorageWorkerView.resolveCheckpointStorageLocation(long, CheckpointStorageLocationReference)
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description boolean
canFastDuplicate(StreamStateHandle stateHandle, CheckpointedStateScope scope)
Tells if we can duplicate the givenStreamStateHandle
into the path corresponding to the givenCheckpointedStateScope
.default boolean
couldReuseStateHandle(StreamStateHandle stateHandle)
A pre-check hook before the checkpoint writer want to reuse a state handle, if this returns false, it is not recommended for the writer to rewrite the state file considering the space amplification.CheckpointStateOutputStream
createCheckpointStateOutputStream(CheckpointedStateScope scope)
Creates an newCheckpointStateOutputStream
.List<StreamStateHandle>
duplicate(List<StreamStateHandle> stateHandles, CheckpointedStateScope scope)
DuplicatesStreamStateHandle
into the path corresponding to * the givenCheckpointedStateScope
.default void
reusePreviousStateHandle(Collection<? extends StreamStateHandle> previousHandle)
A callback method when some previous handle is reused.
-
-
-
Method Detail
-
createCheckpointStateOutputStream
CheckpointStateOutputStream createCheckpointStateOutputStream(CheckpointedStateScope scope) throws IOException
Creates an newCheckpointStateOutputStream
. When the stream is closed, it returns a state handle that can retrieve the state back.- Parameters:
scope
- The state's scope, whether it is exclusive or shared.- Returns:
- An output stream that writes state for the given checkpoint.
- Throws:
IOException
- Exceptions may occur while creating the stream and should be forwarded.
-
canFastDuplicate
boolean canFastDuplicate(StreamStateHandle stateHandle, CheckpointedStateScope scope) throws IOException
Tells if we can duplicate the givenStreamStateHandle
into the path corresponding to the givenCheckpointedStateScope
.This should be a rather cheap operation, preferably not involving any remote accesses.
- Parameters:
stateHandle
- The handle to duplicatescope
- Scope determining the location to duplicate into- Returns:
- true, if we can perform the duplication
- Throws:
IOException
-
duplicate
List<StreamStateHandle> duplicate(List<StreamStateHandle> stateHandles, CheckpointedStateScope scope) throws IOException
DuplicatesStreamStateHandle
into the path corresponding to * the givenCheckpointedStateScope
.You should first check if you can duplicate with
canFastDuplicate(StreamStateHandle, CheckpointedStateScope)
.- Parameters:
stateHandles
- The handles to duplicatescope
- Scope determining the location to duplicate into- Returns:
- The duplicated handle
- Throws:
IOException
-
reusePreviousStateHandle
default void reusePreviousStateHandle(Collection<? extends StreamStateHandle> previousHandle)
A callback method when some previous handle is reused. It is needed by the file merging mechanism (FLIP-306) which will manage the life cycle of underlying files by file-reusing information.- Parameters:
previousHandle
- the previous handles that will be reused.
-
couldReuseStateHandle
default boolean couldReuseStateHandle(StreamStateHandle stateHandle)
A pre-check hook before the checkpoint writer want to reuse a state handle, if this returns false, it is not recommended for the writer to rewrite the state file considering the space amplification.- Parameters:
stateHandle
- the handle to be reused.- Returns:
- true if it can be reused.
-
-