18 #ifndef FOEDUS_STORAGE_STORAGE_MANAGER_PIMPL_HPP_
19 #define FOEDUS_STORAGE_STORAGE_MANAGER_PIMPL_HPP_
101 template <
typename STORAGE>
140 "StorageManagerControlBlock is too large.");
143 #endif // FOEDUS_STORAGE_STORAGE_MANAGER_PIMPL_HPP_
StorageControlBlock * storages_
Storage instances (pimpl objects) are allocated in this shared memory.
ErrorStack initialize_once() override
StorageManagerPimpl(Engine *engine)
ErrorStack drop_storage(StorageId id, Epoch *commit_epoch)
Definitions of IDs in this package and a few related constant values.
ErrorStack uninitialize_once() override
uint32_t StorageId
Unique ID for storage.
void initialize(bool recursive=false)
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Represents a record of write-access during a transaction.
ErrorStack reinitialize_for_recovered_snapshot()
Special method called only from recovery manager.
bool exists(const StorageName &name)
Result of track_moved_record().
StorageManagerControlBlock * control_block_
Forward declarations of classes in root package.
Shared data in StorageManagerPimpl.
~StorageManagerControlBlock()=delete
StorageId largest_storage_id_
The largest StorageId we so far observed.
Brings error stacktrace information as return value of functions.
xct::TrackMovedRecordResult track_moved_record(StorageId storage_id, xct::RwLockableXctId *old_address, xct::WriteXctAccess *write)
Forward declarations of classes in snapshot manager package.
Typical implementation of Initializable as a skeleton base class.
ErrorStack create_storage_and_log(const Metadata *meta, Epoch *commit_epoch)
A mutex that can be placed in shared memory and used from multiple processes.
The MCS reader-writer lock variant of LockableXctId.
Forward declarations of classes in storage package.
StorageControlBlock * get_storage(StorageId id)
void create_storage_apply(const Metadata &metadata)
Database engine object that holds all resources and provides APIs.
soc::SharedMutex mod_lock_
In case there are multiple threads that add/delete/expand storages, those threads take this lock...
Pimpl object of StorageManager.
ErrorStack hcc_reset_all_temperature_stat(StorageId storage_id)
Resets all volatile pages' temperature stat to be zero in the specified storage.
storage::StorageId * storage_name_sort_
This shared memory stores the ID of storages sorted by their names.
StorageId issue_next_storage_id()
void drop_storage_apply(StorageId id)
uint32_t get_max_storages() const
StorageManagerControlBlock()=delete
ErrorStack initialize_read_latest_snapshot()
Forward declarations of classes in thread package.
A base layout of shared data for all storage types.
StorageManagerPimpl()=delete
ErrorStack clone_all_storage_metadata(snapshot::SnapshotMetadata *metadata)
ErrorStack create_storage(Metadata *metadata, Epoch *commit_epoch)