86 Epoch* commit_epoch) {
95 Epoch* commit_epoch) {
104 Epoch* commit_epoch) {
113 Epoch* commit_epoch) {
Metadata meta_
common part of the metadata.
ErrorStack drop_storage(StorageId id, Epoch *commit_epoch)
sequential::SequentialStorage get_sequential(StorageId id)
Returns the sequential storage of given ID.
ErrorStack drop_storage(StorageId id, Epoch *commit_epoch)
Removes the storage object.
ErrorStack create_hash(hash::HashMetadata *metadata, hash::HashStorage *storage, Epoch *commit_epoch)
Just a type-wrapper of create_storage() for hash storages.
uint32_t StorageId
Unique ID for storage.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Represents a key-value store based on a dense and regular array.
ErrorStack initialize() override
Acquires resources in this object, usually called right after constructor.
ErrorStack create_sequential(sequential::SequentialMetadata *metadata, sequential::SequentialStorage *storage, Epoch *commit_epoch)
Just a type-wrapper of create_storage() for sequential storages.
array::ArrayStorage get_array(StorageId id)
Returns the array storage of given ID.
StorageManagerControlBlock * control_block_
ErrorStack uninitialize() override final
Typical implementation of Initializable::uninitialize() that provides uninitialize-once semantics...
StorageId largest_storage_id_
The largest StorageId we so far observed.
Brings error stacktrace information as return value of functions.
Engine * get_engine() const
ErrorStack clone_all_storage_metadata(snapshot::SnapshotMetadata *metadata)
This method is called during snapshotting to clone metadata of all existing storages to the given obj...
ErrorStack create_masstree(masstree::MasstreeMetadata *metadata, masstree::MasstreeStorage *storage, Epoch *commit_epoch)
Just a type-wrapper of create_storage() for masstree storages.
void create_storage_apply(const Metadata &metadata)
This is called while restart to apply CREATE STORAGE logs.
masstree::MasstreeStorage get_masstree(StorageId id)
Returns the masstree storage of given ID.
Represents an append/scan-only store.
StorageId issue_next_storage_id()
Issue a unique and atomically/monotonically increasing storage ID for a new storage.
StorageControlBlock * get_storage(StorageId id)
void create_storage_apply(const Metadata &metadata)
ErrorStack initialize() override final
Typical implementation of Initializable::initialize() that provides initialize-once semantics...
Database engine object that holds all resources and provides APIs.
bool is_initialized() const override
Returns whether the object has been already initialized or not.
const StorageName kEmptyString
ErrorStack create_array(array::ArrayMetadata *metadata, array::ArrayStorage *storage, Epoch *commit_epoch)
Just a type-wrapper of create_storage() for array storages.
Pimpl object of StorageManager.
Represents a key-value store based on a dense and regular hash.
Represents a Masstree storage.
StorageId get_largest_storage_id()
Returns the largest StorageId that does or did exist.
StorageId issue_next_storage_id()
#define CHECK_ERROR(x)
This macro calls x and checks its returned value.
void drop_storage_apply(StorageId id)
ErrorStack uninitialize() override
An idempotent method to release all resources of this object, if any.
const ErrorStack kRetOk
Normal return value for no-error case.
ErrorStack create_storage(Metadata *metadata, Epoch *commit_epoch)
Newly creates a storage with the specified metadata and registers it to this manager.
const StorageName & get_name(StorageId id)
Returns the name of the given storage ID.
hash::HashStorage get_hash(StorageId id)
Returns the hash storage of given ID.
void drop_storage_apply(StorageId id)
This is called while restart to apply DROP STORAGE logs.
StorageControlBlock * get_storage(StorageId id)
Returns the storage of given ID.
A base layout of shared data for all storage types.
bool is_initialized() const override final
Returns whether the object has been already initialized or not.
ErrorStack clone_all_storage_metadata(snapshot::SnapshotMetadata *metadata)
ErrorStack create_storage(Metadata *metadata, Epoch *commit_epoch)