Interface ViewOperations
-
- All Known Implementing Classes:
BaseViewOperations
,JdbcViewOperations
,NessieViewOperations
public interface ViewOperations
SPI interface to abstract view metadata access and updates.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
commit(ViewMetadata base, ViewMetadata metadata)
Replace the base view metadata with a new version.ViewMetadata
current()
Return the currently loaded view metadata, without checking for updates.ViewMetadata
refresh()
Return the current view metadata after checking for updates.
-
-
-
Method Detail
-
current
ViewMetadata current()
Return the currently loaded view metadata, without checking for updates.- Returns:
- view metadata
-
refresh
ViewMetadata refresh()
Return the current view metadata after checking for updates.- Returns:
- view metadata
-
commit
void commit(ViewMetadata base, ViewMetadata metadata)
Replace the base view metadata with a new version.This 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 should 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. An unknown state indicates to downstream users of this API that it is not safe to perform clean up and remove any files. In general, strict metadata cleanup will only trigger cleanups when the commit fails with an exception implementing the marker interfaceCleanableFailure
. All other exceptions will be treated as if the commit has failed.- Parameters:
base
- view metadata on which changes were basedmetadata
- new view metadata with updates
-
-