Class HashtableRecycler¶
-
class
HashtableRecycler: public DataRecycler<std::shared_ptr<HashTable>, HashtableCacheMetaInfo>¶ Public Functions
-
HashtableRecycler(CacheItemType hashtable_type, int num_gpus)¶
-
void
initCache()¶
-
void
clearCache()¶
-
void
markCachedItemAsDirty(size_t table_key, std::unordered_set<QueryPlanHash> &key_set, CacheItemType item_type, DeviceIdentifier device_identifier)¶
-
std::string
toString() const¶
-
bool
checkOverlapsHashtableBucketCompatability(const OverlapsHashTableMetaInfo &candidate_bucket_dim, const OverlapsHashTableMetaInfo &target_bucket_dim) const¶
-
std::tuple<QueryPlanHash, std::shared_ptr<HashTable>, std::optional<HashtableCacheMetaInfo>>
getCachedHashtableWithoutCacheKey(std::set<size_t> &visited, CacheItemType hash_table_type, DeviceIdentifier device_identifier)¶
-
void
addQueryPlanDagForTableKeys(size_t hashed_query_plan_dag, const std::unordered_set<size_t> &table_keys)¶
-
std::optional<std::unordered_set<size_t>>
getMappedQueryPlanDagsWithTableKey(size_t table_key) const¶
-
void
removeTableKeyInfoFromQueryPlanDagMap(size_t table_key)¶
Public Members
-
HashtableRecycler::g_hashtable_cache_total_bytes
-
HashtableRecycler::g_max_cacheable_hashtable_size_bytes
-
HashtableRecycler::num_gpus{} std::shared_ptr<HashTable> getItemFromCache(QueryPlanHash key,CacheItemType item_type,DeviceIdentifier device_identifier, std::optional<HashtableCacheMetaInfo> meta_info = std::nullopt) override
Public Static Functions
-
HashtableAccessPathInfo
getHashtableAccessPathInfo(const std::vector<InnerOuter> &inner_outer_pairs, const SQLOps op_type, const JoinType join_type, const HashTableBuildDagMap &hashtable_build_dag_map, Executor *executor)¶
-
size_t
getJoinColumnInfoHash(std::vector<const Analyzer::ColumnVar *> &inner_cols, std::vector<const Analyzer::ColumnVar *> &outer_cols, Executor *executor)¶
-
bool
isSafeToCacheHashtable(const TableIdToNodeMap &table_id_to_node_map, bool need_dict_translation, const int table_id)¶
Private Functions
-
bool
hasItemInCache(QueryPlanHash key, CacheItemType item_type, DeviceIdentifier device_identifier, std::lock_guard<std::mutex> &lock, std::optional<HashtableCacheMetaInfo> meta_info = std::nullopt) const¶
-
void
removeItemFromCache(QueryPlanHash key, CacheItemType item_type, DeviceIdentifier device_identifier, std::lock_guard<std::mutex> &lock, std::optional<HashtableCacheMetaInfo> meta_info = std::nullopt)¶
-
void
cleanupCacheForInsertion(CacheItemType item_type, DeviceIdentifier device_identifier, size_t required_size, std::lock_guard<std::mutex> &lock, std::optional<HashtableCacheMetaInfo> meta_info = std::nullopt)¶
Private Members
-
std::unordered_map<size_t, std::unordered_set<size_t>>
table_key_to_query_plan_dag_map_¶
-