Class PersistentStorageMgr

class PersistentStorageMgr : public AbstractBufferMgr

Public Functions

PersistentStorageMgr(const std::string &data_dir, const size_t num_reader_threads, const File_Namespace::DiskCacheConfig &disk_cache_config)
AbstractBuffer *createBuffer(const ChunkKey &chunk_key, const size_t page_size, const size_t initial_size)
void deleteBuffer(const ChunkKey &chunk_key, const bool purge)
void deleteBuffersWithPrefix(const ChunkKey &chunk_key_prefix, const bool purge)
AbstractBuffer *getBuffer(const ChunkKey &chunk_key, const size_t num_bytes)
void fetchBuffer(const ChunkKey &chunk_key, AbstractBuffer *destination_buffer, const size_t num_bytes)
AbstractBuffer *putBuffer(const ChunkKey &chunk_key, AbstractBuffer *source_buffer, const size_t num_bytes)
void getChunkMetadataVecForKeyPrefix(ChunkMetadataVector &chunk_metadata, const ChunkKey &chunk_key_prefix)
bool isBufferOnDevice(const ChunkKey &chunk_key)
std::string printSlabs()
size_t getMaxSize()
size_t getInUseSize()
size_t getAllocated()
bool isAllocationCapped()
void checkpoint()
void checkpoint(const int db_id, const int tb_id)
AbstractBuffer *alloc(const size_t num_bytes)
void free(AbstractBuffer *buffer)
MgrType getMgrType()
std::string getStringMgrType()
size_t getNumChunks()
void removeTableRelatedDS(const int db_id, const int table_id)
File_Namespace::GlobalFileMgr *getGlobalFileMgr() const
foreign_storage::ForeignStorageMgr *getForeignStorageMgr() const
foreign_storage::ForeignStorageCache *getDiskCache() const
const File_Namespace::DiskCacheConfig getDiskCacheConfig() const
const std::shared_ptr<ForeignStorageInterface> getForeignStorageInterface() const

Protected Functions

bool isForeignStorage(const ChunkKey &chunk_key) const
AbstractBufferMgr *getStorageMgrForTableKey(const ChunkKey &table_key) const
bool isChunkPrefixCacheable(const ChunkKey &chunk_prefix) const
int recoverDataWrapperIfCachedAndGetHighestFragId(const ChunkKey &table_key)

Protected Attributes

std::unique_ptr<File_Namespace::GlobalFileMgr> global_file_mgr_
std::unique_ptr<foreign_storage::ForeignStorageMgr> foreign_storage_mgr_
std::unique_ptr<foreign_storage::ForeignStorageCache> disk_cache_
File_Namespace::DiskCacheConfig disk_cache_config_
std::shared_ptr<ForeignStorageInterface> fsi_