Interface CheckpointStorageWorkerView

All Known Subinterfaces:
CheckpointStorageAccess
All Known Implementing Classes:
AbstractFsCheckpointStorageAccess, FsCheckpointStorageAccess, FsMergingCheckpointStorageAccess, MemoryBackendCheckpointStorageAccess

@Internal public interface CheckpointStorageWorkerView
This interface implements the durable storage of checkpoint data and metadata streams. An individual checkpoint or savepoint is stored to a CheckpointStorageLocation which created by CheckpointStorageCoordinatorView.

Methods of this interface act as a worker role in task manager.

  • Method Details

    • resolveCheckpointStorageLocation

      CheckpointStreamFactory resolveCheckpointStorageLocation(long checkpointId, CheckpointStorageLocationReference reference) throws IOException
      Resolves a storage location reference into a CheckpointStreamFactory.

      The reference may be the default reference, in which case the method should return the default location, taking existing configuration and checkpoint ID into account.

      Parameters:
      checkpointId - The ID of the checkpoint that the location is initialized for.
      reference - The checkpoint location reference.
      Returns:
      A checkpoint storage location reflecting the reference and checkpoint ID.
      Throws:
      IOException - Thrown, if the storage location cannot be initialized from the reference.
    • createTaskOwnedStateStream

      CheckpointStateOutputStream createTaskOwnedStateStream() throws IOException
      Opens a stream to persist checkpoint state data that is owned strictly by tasks and not attached to the life cycle of a specific checkpoint.

      This method should be used when the persisted data cannot be immediately dropped once the checkpoint that created it is dropped. Examples are write-ahead-logs. For those, the state can only be dropped once the data has been moved to the target system, which may sometimes take longer than one checkpoint (if the target system is temporarily unable to keep up).

      The fact that the job manager does not own the life cycle of this type of state means also that it is strictly the responsibility of the tasks to handle the cleanup of this data.

      Developer note: In the future, we may be able to make this a special case of "shared state", where the task re-emits the shared state reference as long as it needs to hold onto the persisted state data.

      Returns:
      A checkpoint state stream to the location for state owned by tasks.
      Throws:
      IOException - Thrown, if the stream cannot be opened.
    • createTaskOwnedCheckpointStateToolset

      CheckpointStateToolset createTaskOwnedCheckpointStateToolset()
      A complementary method to createTaskOwnedStateStream(). Creates a toolset that gives access to additional operations that can be performed in the task owned state location.
      Returns:
      A toolset for additional operations for state owned by tasks.
    • toFileMergingStorage

      default CheckpointStorageWorkerView toFileMergingStorage(FileMergingSnapshotManager mergingSnapshotManager, Environment environment) throws IOException
      Return FsMergingCheckpointStorageAccess if file merging is enabled. Otherwise, return itself. File merging is supported by subclasses of AbstractFsCheckpointStorageAccess.
      Throws:
      IOException