public class StaticTableOperations extends java.lang.Object implements TableOperations
| Constructor and Description |
|---|
StaticTableOperations(java.lang.String metadataFileLocation,
FileIO io)
Creates a StaticTableOperations tied to a specific static version of the TableMetadata
|
StaticTableOperations(java.lang.String metadataFileLocation,
FileIO io,
LocationProvider locationProvider) |
| Modifier and Type | Method and Description |
|---|---|
void |
commit(TableMetadata base,
TableMetadata metadata)
Replace the base table metadata with a new version.
|
TableMetadata |
current()
Return the currently loaded table metadata, without checking for updates.
|
FileIO |
io()
Returns a
FileIO to read and write table data and metadata files. |
LocationProvider |
locationProvider()
Returns a
LocationProvider that supplies locations for new new data files. |
java.lang.String |
metadataFileLocation(java.lang.String fileName)
Given the name of a metadata file, obtain the full path of that file using an appropriate base
location of the implementation's choosing.
|
TableMetadata |
refresh()
StaticTableOperations works on the same version of TableMetadata, and it will never refer a different TableMetadata
object than the one it was created with.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitencryption, newSnapshotId, temppublic StaticTableOperations(java.lang.String metadataFileLocation,
FileIO io)
public StaticTableOperations(java.lang.String metadataFileLocation,
FileIO io,
LocationProvider locationProvider)
public TableMetadata current()
TableOperationscurrent in interface TableOperationspublic TableMetadata refresh()
refresh in interface TableOperationscurrent().public void commit(TableMetadata base, TableMetadata metadata)
TableOperationsThis method should implement and document atomicity guarantees.
Implementations must check that the base metadata is current to avoid overwriting updates. Once the atomic commit operation succeeds, implementations must not perform any operations that may fail because failure in this method cannot be distinguished from commit failure.
Implementations must throw a CommitStateUnknownException
in cases where it cannot be determined if the commit succeeded or failed.
For example if a network partition causes the confirmation of the commit to be lost,
the implementation should throw a CommitStateUnknownException. This is important because downstream users of
this API need to know whether they can clean up the commit or not, if the state is unknown then it is not safe
to remove any files. All other exceptions will be treated as if the commit has failed.
commit in interface TableOperationsbase - table metadata on which changes were basedmetadata - new table metadata with updatespublic FileIO io()
TableOperationsFileIO to read and write table data and metadata files.io in interface TableOperationspublic java.lang.String metadataFileLocation(java.lang.String fileName)
TableOperations
The file may not exist yet, in which case the path should be returned as if it were to be created
by e.g. FileIO.newOutputFile(String).
metadataFileLocation in interface TableOperationspublic LocationProvider locationProvider()
TableOperationsLocationProvider that supplies locations for new new data files.locationProvider in interface TableOperations