Class FsCheckpointMetadataOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.apache.flink.core.fs.FSDataOutputStream
-
- org.apache.flink.runtime.state.CheckpointMetadataOutputStream
-
- org.apache.flink.runtime.state.filesystem.FsCheckpointMetadataOutputStream
-
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
public final class FsCheckpointMetadataOutputStream extends CheckpointMetadataOutputStream
ACheckpointMetadataOutputStream
that writes a specified file and directory, and returns aFsCompletedCheckpointStorageLocation
upon closing.
-
-
Constructor Summary
Constructors Constructor Description FsCheckpointMetadataOutputStream(FileSystem fileSystem, Path metadataFilePath, Path exclusiveCheckpointDir)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
This method should close the stream, if has not been closed before.FsCompletedCheckpointStorageLocation
closeAndFinalizeCheckpoint()
Closes the stream after all metadata was written and finalizes the checkpoint location.void
flush()
Flushes the stream, writing any data currently buffered in stream implementation to the proper output stream.long
getPos()
Gets the position of the stream (non-negative), defined as the number of bytes from the beginning of the file to the current writing position.boolean
isClosed()
void
sync()
Flushes the data all the way to the persistent non-volatile storage (for example disks).void
write(byte[] b, int off, int len)
void
write(int b)
-
Methods inherited from class java.io.OutputStream
nullOutputStream, write
-
-
-
-
Constructor Detail
-
FsCheckpointMetadataOutputStream
public FsCheckpointMetadataOutputStream(FileSystem fileSystem, Path metadataFilePath, Path exclusiveCheckpointDir) throws IOException
- Throws:
IOException
-
-
Method Detail
-
write
public final void write(int b) throws IOException
- Specified by:
write
in classOutputStream
- Throws:
IOException
-
write
public final void write(@Nonnull byte[] b, int off, int len) throws IOException
- Overrides:
write
in classOutputStream
- Throws:
IOException
-
getPos
public long getPos() throws IOException
Description copied from class:FSDataOutputStream
Gets the position of the stream (non-negative), defined as the number of bytes from the beginning of the file to the current writing position. The position corresponds to the zero-based index of the next byte that will be written.This method must report accurately report the current position of the stream. Various components of the high-availability and recovery logic rely on the accurate
- Specified by:
getPos
in classFSDataOutputStream
- Returns:
- The current position in the stream, defined as the number of bytes from the beginning of the file to the current writing position.
- Throws:
IOException
- Thrown if an I/O error occurs while obtaining the position from the stream implementation.
-
flush
public void flush() throws IOException
Description copied from class:FSDataOutputStream
Flushes the stream, writing any data currently buffered in stream implementation to the proper output stream. After this method has been called, the stream implementation must not hold onto any buffered data any more.A completed flush does not mean that the data is necessarily persistent. Data persistence can is only assumed after calls to
FSDataOutputStream.close()
orFSDataOutputStream.sync()
.Implementation note: This overrides the method defined in
OutputStream
as abstract to force implementations of theFSDataOutputStream
to implement this method directly.- Specified by:
flush
in interfaceFlushable
- Specified by:
flush
in classFSDataOutputStream
- Throws:
IOException
- Thrown if an I/O error occurs while flushing the stream.
-
sync
public void sync() throws IOException
Description copied from class:FSDataOutputStream
Flushes the data all the way to the persistent non-volatile storage (for example disks). The method behaves similar to the fsync function, forcing all data to be persistent on the devices.- Specified by:
sync
in classFSDataOutputStream
- Throws:
IOException
- Thrown if an I/O error occurs
-
isClosed
public boolean isClosed()
-
close
public void close()
Description copied from class:CheckpointMetadataOutputStream
This method should close the stream, if has not been closed before. If this method actually closes the stream, it should delete/release the resource behind the stream, such as the file that the stream writes to.The above implies that this method is intended to be the "unsuccessful close", such as when cancelling the stream writing, or when an exception occurs. Closing the stream for the successful case must go through
CheckpointMetadataOutputStream.closeAndFinalizeCheckpoint()
.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classCheckpointMetadataOutputStream
-
closeAndFinalizeCheckpoint
public FsCompletedCheckpointStorageLocation closeAndFinalizeCheckpoint() throws IOException
Description copied from class:CheckpointMetadataOutputStream
Closes the stream after all metadata was written and finalizes the checkpoint location.- Specified by:
closeAndFinalizeCheckpoint
in classCheckpointMetadataOutputStream
- Returns:
- An object representing a finalized checkpoint storage location.
- Throws:
IOException
- Thrown, if the stream cannot be closed or the finalization fails.
-
-