Class BaseViewOperations
- All Implemented Interfaces:
ViewOperations
- Direct Known Subclasses:
JdbcViewOperations
,NessieViewOperations
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.iceberg.BaseMetastoreOperations
BaseMetastoreOperations.CommitStatus
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
commit
(ViewMetadata base, ViewMetadata metadata) Replace the base view metadata with a new version.current()
Return the currently loaded view metadata, without checking for updates.protected String
protected int
protected void
protected abstract void
doCommit
(ViewMetadata base, ViewMetadata metadata) protected abstract void
protected abstract FileIO
io()
refresh()
Return the current view metadata after checking for updates.protected void
refreshFromMetadataLocation
(String newLocation) protected void
refreshFromMetadataLocation
(String newLocation, Predicate<Exception> shouldRetry, int numRetries) protected void
refreshFromMetadataLocation
(String newLocation, Predicate<Exception> shouldRetry, int numRetries, Function<String, ViewMetadata> metadataLoader) protected void
protected abstract String
viewName()
protected String
writeNewMetadataIfRequired
(ViewMetadata metadata) Methods inherited from class org.apache.iceberg.BaseMetastoreOperations
checkCommitStatus
-
Constructor Details
-
BaseViewOperations
protected BaseViewOperations()
-
-
Method Details
-
requestRefresh
protected void requestRefresh() -
disableRefresh
protected void disableRefresh() -
doRefresh
protected abstract void doRefresh() -
doCommit
-
viewName
-
io
-
currentMetadataLocation
-
currentVersion
protected int currentVersion() -
current
Description copied from interface:ViewOperations
Return the currently loaded view metadata, without checking for updates.- Specified by:
current
in interfaceViewOperations
- Returns:
- view metadata
-
refresh
Description copied from interface:ViewOperations
Return the current view metadata after checking for updates.- Specified by:
refresh
in interfaceViewOperations
- Returns:
- view metadata
-
commit
Description copied from interface:ViewOperations
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.- Specified by:
commit
in interfaceViewOperations
- Parameters:
base
- view metadata on which changes were basedmetadata
- new view metadata with updates
-
writeNewMetadataIfRequired
-
refreshFromMetadataLocation
-
refreshFromMetadataLocation
-
refreshFromMetadataLocation
-