18 #ifndef FOEDUS_STORAGE_STORAGE_MANAGER_HPP_
19 #define FOEDUS_STORAGE_STORAGE_MANAGER_HPP_
201 Epoch *commit_epoch);
210 Epoch *commit_epoch);
219 Epoch *commit_epoch);
228 Epoch *commit_epoch);
259 #endif // FOEDUS_STORAGE_STORAGE_MANAGER_HPP_
StorageManagerPimpl * get_pimpl()
Returns pimpl object.
sequential::SequentialStorage get_sequential(StorageId id)
Returns the sequential storage of given ID.
Definitions of IDs in this package and a few related constant values.
The pure-virtual interface to initialize/uninitialize non-trivial resources.
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 record of write-access during a transaction.
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.
Forward declarations of classes in transaction package.
Result of track_moved_record().
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.
Forward declarations of classes in root package.
Brings error stacktrace information as return value of functions.
Forward declarations of classes in snapshot manager package.
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...
Forward declarations of classes in array storage package.
ErrorStack create_masstree(masstree::MasstreeMetadata *metadata, masstree::MasstreeStorage *storage, Epoch *commit_epoch)
Just a type-wrapper of create_storage() for masstree storages.
array::ArrayStorage get_array(const StorageName &name)
Returns the array storage of given name.
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.
The MCS reader-writer lock variant of LockableXctId.
Represents an append/scan-only store.
Forward declarations of classes in sequential storage package.
StorageId issue_next_storage_id()
Issue a unique and atomically/monotonically increasing storage ID for a new storage.
Forward declarations of classes in storage package.
Definitions of IDs in this package and a few related constant values.
#define CXX11_FINAL
Used in public headers in place of "final" of C++11.
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.
hash::HashStorage get_hash(const StorageName &name)
Returns the hash storage of given name.
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.
masstree::MasstreeStorage get_masstree(const StorageName &name)
Returns the masstree storage of given name.
sequential::SequentialStorage get_sequential(const StorageName &name)
Returns the sequential storage of given name.
Represents a key-value store based on a dense and regular hash.
Represents a Masstree storage.
#define CXX11_OVERRIDE
Used in public headers in place of "override" of C++11.
StorageId get_largest_storage_id()
Returns the largest StorageId that does or did exist.
#define CXX11_FUNC_DELETE
Used in public headers in place of " = delete" of C++11.
ErrorStack uninitialize() override
An idempotent method to release all resources of this object, if any.
ErrorStack create_storage(Metadata *metadata, Epoch *commit_epoch)
Newly creates a storage with the specified metadata and registers it to this manager.
Storage Manager class that provides API to create/open/close/drop key-value stores.
xct::TrackMovedRecordResult track_moved_record(StorageId storage_id, xct::RwLockableXctId *old_address, xct::WriteXctAccess *write_set)
Resolves a "moved" record.
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.
ErrorStack reinitialize_for_recovered_snapshot()
Special method called only from recovery manager.
Forward declarations of classes in masstree storage package.
StorageControlBlock * get_storage(StorageId id)
Returns the storage of given ID.
Forward declarations of classes in thread package.
A base layout of shared data for all storage types.
Forward declarations of classes in hash storage package.
StorageManager & operator=(const StorageManager &)=delete