30 size_t rowid_size_in_bytes,
32 size_t join_key_size_in_byte,
34 bool for_window_framing =
false)
76 const int device_id = -1)
95 std::string layout_str =
98 std::ostringstream oss;
99 oss <<
"Initialize a " << device_str <<
" baseline hash table";
104 oss <<
" with join type " << layout_str <<
", hash table size: " << hash_table_size
107 <<
", # entries stored in the payload buffer: "
110 VLOG(1) << oss.str();
int8_t * getGpuBuffer() const override
size_t getRowIdSize() const override
size_t getEntryCount() const override
size_t computeKeySize() const
size_t const num_join_keys_
virtual int8_t * getMemoryPtr()=0
BaselineHashTable(MemoryLevel memory_level, BaselineHashTableEntryInfo hash_table_entry_info, Data_Namespace::DataMgr *data_mgr=nullptr, const int device_id=-1)
HashType getLayout() const override
Data_Namespace::DataMgr * data_mgr_
size_t getEmittedKeysCount() const override
BaselineHashTableEntryInfo(size_t num_hash_entries, size_t num_keys, size_t rowid_size_in_bytes, size_t num_join_keys, size_t join_key_size_in_byte, HashType layout, bool for_window_framing=false)
size_t getHashTableBufferSize(const ExecutorDeviceType device_type) const override
size_t computeHashTableSize() const override
size_t computeNumAdditionalSlotsForOneToManyJoin() const
BaselineHashTableEntryInfo getHashTableEntryInfo() const
HashType getHashTableLayout() const
size_t getNumHashEntries() const
size_t const join_key_size_in_byte_
size_t computeTotalNumSlots() const override
An AbstractBuffer is a unit of data management for a data manager.
std::unique_ptr< int8_t[]> cpu_hash_table_buff_
size_t getNumKeys() const
BaselineHashTableEntryInfo hash_table_entry_info_
~BaselineHashTable() override
Data_Namespace::AbstractBuffer * gpu_hash_table_buff_
static Data_Namespace::AbstractBuffer * allocGpuAbstractBuffer(Data_Namespace::DataMgr *data_mgr, const size_t num_bytes, const int device_id)
int8_t * getCpuBuffer() override
size_t getNumJoinKeys() const
Allocate GPU memory using GpuBuffers via DataMgr.
void free(AbstractBuffer *buffer)
size_t getRowIdSizeInBytes() const
size_t getJoinKeysSize() const
size_t rowid_size_in_bytes_
static bool layoutRequiresAdditionalBuffers(HashType layout) noexcept
MemoryLevel memory_level_