Package org.apache.flink.runtime.state
Interface CheckpointStreamFactory
-
- All Known Subinterfaces:
CheckpointStorageLocation
- All Known Implementing Classes:
FsCheckpointStorageLocation,FsCheckpointStreamFactory,FsMergingCheckpointStorageLocation,MemCheckpointStreamFactory,NonPersistentMetadataCheckpointStorageLocation,PersistentMetadataCheckpointStorageLocation
public interface CheckpointStreamFactoryA factory for checkpoint output streams, which are used to persist data for checkpoints.Stream factories can be created from the
CheckpointStorageAccessthroughCheckpointStorageWorkerView.resolveCheckpointStorageLocation(long, CheckpointStorageLocationReference).
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description booleancanFastDuplicate(StreamStateHandle stateHandle, CheckpointedStateScope scope)Tells if we can duplicate the givenStreamStateHandleinto the path corresponding to the givenCheckpointedStateScope.default booleancouldReuseStateHandle(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.CheckpointStateOutputStreamcreateCheckpointStateOutputStream(CheckpointedStateScope scope)Creates an newCheckpointStateOutputStream.List<StreamStateHandle>duplicate(List<StreamStateHandle> stateHandles, CheckpointedStateScope scope)DuplicatesStreamStateHandleinto the path corresponding to * the givenCheckpointedStateScope.default voidreusePreviousStateHandle(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 givenStreamStateHandleinto 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
DuplicatesStreamStateHandleinto 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.
-
-