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 enum
Options applicable to read transactions and operations.static enum
Options applicable to read/write transactions and operations. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Set<Storage.ReadHint>
NoStorage.ReadHint
, use default.static final Set<Storage.ReadWriteHint>
NoStorage.ReadWriteHint
, use default. -
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()
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.<T> T
read
(Set<Storage.ReadHint> hints, ReadOperation<T> readOperation) Executes a read operation.default <T> T
read
(ReadOperation<T> readOperation) Executes a read operation.void
Remove all files for a backend of this storage.Starts the import operation.void
write
(Set<Storage.ReadWriteHint> hints, 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_READ_TXN_HINTS
NoStorage.ReadHint
, use default. -
DEFAULT_RW_TXN_HINTS
NoStorage.ReadWriteHint
, use default.
-
-
Method Details
-
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 configurationStorageRuntimeException
- 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:
hints
- the hints 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:
hints
- the hints 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:
StorageRuntimeException
- if removal fails
-
getStorageStatus
StorageStatus getStorageStatus()Returns the current status of the storage.- Returns:
- the current status of the storage
-
checkStorageIsAvailableOrThrow
default void 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:
StorageRuntimeException
- 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
-
close
void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-