org.apache.spark.sql.execution.streaming
CheckpointFileManager
Companion object CheckpointFileManager
trait CheckpointFileManager extends AnyRef
An interface to abstract out all operation related to streaming checkpoints. Most importantly,
the key operation this interface provides is createAtomic(path, overwrite)
which returns a
CancellableFSDataOutputStream
. This method is used by HDFSMetadataLog and
StateStore implementations
to write a complete checkpoint file atomically (i.e. no partial file will be visible), with or
without overwrite.
This higher-level interface above the Hadoop FileSystem is necessary because
different implementation of FileSystem/FileContext may have different combination of operations
to provide the desired atomic guarantees (e.g. write-to-temp-file-and-rename,
direct-write-and-cancel-on-failure) and this abstraction allow different implementations while
keeping the usage simple (createAtomic
-> close
or cancel
).
- Alphabetic
- By Inheritance
- CheckpointFileManager
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def createAtomic(path: Path, overwriteIfPossible: Boolean): CancellableFSDataOutputStream
Create a file and make its contents available atomically after the output stream is closed.
Create a file and make its contents available atomically after the output stream is closed.
- path
Path to create
- overwriteIfPossible
If true, then the implementations must do a best-effort attempt to overwrite the file if it already exists. It should not throw any exception if the file exists. However, if false, then the implementation must not overwrite if the file already exists and must throw
FileAlreadyExistsException
in that case.
- abstract def createCheckpointDirectory(): Path
Creates the checkpoint path if it does not exist, and returns the qualified checkpoint path.
- abstract def delete(path: Path): Unit
Recursively delete a path if it exists.
Recursively delete a path if it exists. Should not throw exception if file doesn't exist.
- abstract def exists(path: Path): Boolean
Whether path exists
- abstract def isLocal: Boolean
Is the default file system this implementation is operating on the local file system.
- abstract def list(path: Path, filter: PathFilter): Array[FileStatus]
List the files/directories in a path that match a filter.
- abstract def mkdirs(path: Path): Unit
Make directory at the give path and all its parent directories as needed.
- abstract def open(path: Path): FSDataInputStream
Open a file for reading, or throw exception if it does not exist.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def list(path: Path): Array[FileStatus]
List all the files/directories in a path.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()