Class foreign_storage::CachingForeignStorageMgr

class CachingForeignStorageMgr : public foreign_storage::ForeignStorageMgr

Public Functions

CachingForeignStorageMgr(ForeignStorageCache *cache)
void fetchBuffer(const ChunkKey &chunk_key, AbstractBuffer *destination_buffer, const size_t num_bytes)
void getChunkMetadataVecForKeyPrefix(ChunkMetadataVector &chunk_metadata, const ChunkKey &chunk_key_prefix)
void getChunkMetadataVecFromDataWrapper(ChunkMetadataVector &chunk_metadata, const ChunkKey &chunk_key_prefix)
void removeTableRelatedDS(const int db_id, const int table_id)
void refreshTable(const ChunkKey &table_key, const bool evict_cached_entries)
bool createDataWrapperIfNotExists(const ChunkKey &chunk_key)

Private Functions

void refreshTableInCache(const ChunkKey &table_key)
int getHighestCachedFragId(const ChunkKey &table_key)
void refreshAppendTableInCache(const ChunkKey &table_key, const std::vector<ChunkKey> &old_chunk_keys)
void refreshNonAppendTableInCache(const ChunkKey &table_key, const std::vector<ChunkKey> &old_chunk_keys)
void refreshChunksInCacheByFragment(const std::vector<ChunkKey> &old_chunk_keys, int last_frag_id)
void populateChunkBuffersSafely(ForeignDataWrapper &data_wrapper, ChunkToBufferMap &required_buffers, ChunkToBufferMap &optional_buffers)
void eraseDataWrapper(const ChunkKey &key)
void clearTable(const ChunkKey &table_key)
size_t maxFetchSize(int32_t db_id) const
bool hasMaxFetchSize() const
std::set<ChunkKey> getOptionalKeysWithinSizeLimit(const ChunkKey &chunk_key, const std::set<ChunkKey, decltype(set_comp) *> &same_fragment_keys, const std::set<ChunkKey, decltype(set_comp) *> &diff_fragment_keys) const
size_t getBufferSize(const ChunkKey &key) const
size_t getRequiredBuffersSize(const ChunkKey &chunk_key) const

Private Members

ForeignStorageCache *disk_cache_