Class FileBasedStateOutputStream
java.lang.Object
java.io.OutputStream
org.apache.flink.core.fs.FSDataOutputStream
org.apache.flink.runtime.state.CheckpointStateOutputStream
org.apache.flink.runtime.state.filesystem.FileBasedStateOutputStream
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
A
CheckpointStateOutputStream that writes into a specified file and returns a FileStateHandle upon closing.
Unlike the FsCheckpointStreamFactory.FsCheckpointStateOutputStream,
this stream does not have a threshold below which it returns a memory byte stream handle, and
does not create random files, but writes to a specified file.
-
Constructor Summary
ConstructorsConstructorDescriptionFileBasedStateOutputStream(org.apache.flink.core.fs.FileSystem fileSystem, org.apache.flink.core.fs.Path path) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()This method should close the stream, if has not been closed before.Closes the stream and gets a state handle that can create an input stream producing the data written to this stream.voidflush()longgetPos()booleanisClosed()voidsync()final voidwrite(byte[] b, int off, int len) final voidwrite(int b) Methods inherited from class java.io.OutputStream
nullOutputStream, write
-
Constructor Details
-
FileBasedStateOutputStream
public FileBasedStateOutputStream(org.apache.flink.core.fs.FileSystem fileSystem, org.apache.flink.core.fs.Path path) throws IOException - Throws:
IOException
-
-
Method Details
-
write
- Specified by:
writein classOutputStream- Throws:
IOException
-
write
- Overrides:
writein classOutputStream- Throws:
IOException
-
getPos
- Specified by:
getPosin classorg.apache.flink.core.fs.FSDataOutputStream- Throws:
IOException
-
flush
- Specified by:
flushin interfaceFlushable- Specified by:
flushin classorg.apache.flink.core.fs.FSDataOutputStream- Throws:
IOException
-
sync
- Specified by:
syncin classorg.apache.flink.core.fs.FSDataOutputStream- Throws:
IOException
-
isClosed
public boolean isClosed() -
close
public void close()Description copied from class:CheckpointStateOutputStreamThis 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
CheckpointStateOutputStream.closeAndGetHandle().- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classCheckpointStateOutputStream
-
closeAndGetHandle
Description copied from class:CheckpointStateOutputStreamCloses the stream and gets a state handle that can create an input stream producing the data written to this stream.This closing must be called (also when the caller is not interested in the handle) to successfully close the stream and retain the produced resource. In contrast, the
CheckpointStateOutputStream.close()method removes the target resource when called.- Specified by:
closeAndGetHandlein classCheckpointStateOutputStream- Returns:
- A state handle that can create an input stream producing the data written to this stream.
- Throws:
IOException- Thrown, if the stream cannot be closed.
-