Interface Storage
- All Superinterfaces:
AutoCloseable
,Backupable
,Closeable
- All Known Implementing Classes:
JEStorage
This interface abstracts the underlying storage engine, isolating the pluggable backend generic code from a
particular storage engine implementation.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final record
Storage operation configuration.static enum
Options applicable to transactions and operations. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault void
Ensures the provided Storage instance is available.default void
Performs a self-check of the storage engine and update the storage status accordingly.void
close()
static Storage.Config
config()
Returns storage configuration.static Storage.Config
Gets the configuration with specificHint
hints.static Storage.Config
config
(Set<Storage.Hint> hints) Gets the configuration with specificHint
hints.Returns the current status of the storage.Lists the trees that exist in this storage.void
open
(AccessMode accessMode) Opens the storage engine to allow executing operations on it.default <T> T
read
(ReadOperation<T> readOperation) Executes a read operation.<T> T
read
(Storage.Config config, ReadOperation<T> readOperation) Executes a read operation.void
Remove all files for a backend of this storage.Starts the import operation.void
write
(Storage.Config config, WriteOperation writeOperation) Executes a write operation.default void
write
(WriteOperation writeOperation) Executes a write operation.Methods inherited from interface org.opends.server.backup.Backupable
afterBackup, afterRestore, beforeBackup, beforeRestore, getBackendFiles, getBackendID, getDirectory
-
Field Details
-
DEFAULT_HINTS
NoStorage.Hint
, use default.
-
-
Method Details
-
config
Gets the configuration with specificHint
hints.- Parameters:
transactionId
- the transaction ID- Returns:
- storage configuration
-
config
Gets the configuration with specificHint
hints.- Parameters:
hints
- the hints to use- Returns:
- storage configuration
-
config
Returns storage configuration.- Returns:
- storage configuration
-
startImport
Starts the import operation.- Returns:
- a new Importer object which must be closed to release all resources
- Throws:
ConfigException
- if there is a problem with the configurationStorageException
- if a problem occurs with the underlying storage engine- See Also:
-
open
Opens the storage engine to allow executing operations on it.- Parameters:
accessMode
- Specify the access mode to this storage.- Throws:
NullPointerException
- if accessMode is null.Exception
- if a problem occurs with the underlying storage engine- See Also:
-
read
Executes a read operation. In case of a read operation rollback, implementations must ensure the read operation is retried until it succeeds.- Type Parameters:
T
- type of the value returned- Parameters:
readOperation
- the read operation to execute- Returns:
- the value read by the read operation
- Throws:
Exception
- if a problem occurs with the underlying storage engine
-
read
Executes a read operation. In case of a read operation rollback, implementations must ensure the read operation is retried until it succeeds.- Type Parameters:
T
- type of the value returned- Parameters:
config
- the config to apply to this transactionreadOperation
- the read operation to execute- Returns:
- the value read by the read operation
- Throws:
Exception
- if a problem occurs with the underlying storage engine
-
write
Executes a write operation. In case of a write operation rollback, implementations must ensure the write operation is retried until it succeeds.- Parameters:
writeOperation
- the write operation to execute- Throws:
Exception
- if a problem occurs with the underlying storage engine
-
write
Executes a write operation. In case of a write operation rollback, implementations must ensure the write operation is retried until it succeeds.- Parameters:
config
- the config to apply to this transactionwriteOperation
- the write operation to execute- Throws:
Exception
- if a problem occurs with the underlying storage engine
-
removeStorageFiles
Remove all files for a backend of this storage.- Throws:
StorageException
- if removal fails
-
getStorageStatus
StorageStatus getStorageStatus()Returns the current status of the storage.- Returns:
- the current status of the storage
-
checkStorageIsAvailableOrThrow
Ensures the provided Storage instance is available. When server is running, disk space is monitored and underlying storage will switch to an unavailable status if the disk run low on space. One reason this could happen is because aReadOperation
orWriteOperation
(e.g.:backendstat
orverify-index
) has been kept open for too long, preventing storage to purge garbage data. Another reason for an unavailable status is when the storage engine detects it is not in a valid state, such as when a latch timeout occurs or threads are interrupted- Throws:
StorageException
- if the providedstorage
is not available.- See Also:
-
checkStorageStatusAfterError
default void checkStorageStatusAfterError()Performs a self-check of the storage engine and update the storage status accordingly. -
listTreeNames
Lists the trees that exist in this storage.- Returns:
- a set of
TreeName
s representing the trees that exist in this storage - Throws:
StorageException
- if a problem occurs with the underlying storage engine
-
close
void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-