v6d
v6d copied to clipboard
Revise perfect hash to align with libgrape-lite's pthash
What do these changes do?
OLD: Modifications of libgrape-lite perfect hash
- remove
inline int8_t log2(size_t value)function fromhashmap_indexer_impl.h(Not used) - remove
namespace sync_commandstruct CommImplfromhashmap_indexer_impl.h(Not used) - remove
Allocator<T>ofstd::vector<T, Allocator<T>> inner_inhashmap_indexer_impl.h(No need) - remove
encode_vecencode_valanddecode_valAPI fromref_vector.h(Not used) - add
struct murmurhashertosingle_phf_view.h(reduce dependency) - add
struct external_mem_dumpertosingle_phf_view.hfor dump data to blob (Reduce memcpy) - remove
std::set<size_t> idxinstatic void build(Iterator keys, uint64_t n, Dumper& dumper, int thread_num)ofstruct SinglePHFViewinsingle_phf_view.h(No need) - add
static void build(Iterator keys, uint64_t n, pthash::single_phf<murmurhasher, pthash::dictionary_dictionary, true>& phf, int thread_num)API forstruct SinglePHFViewinsingle_phf_view.h(Reduce memcpy) - remove
void serialize(std::unique_ptr<IOADAPTOR_T>& writer)void deserialize(std::unique_ptr<IOADAPTOR_T>& reader)andvoid serialize_to_mem(std::vector<char>& buf)fromclass StringViewVectorinstring_view_vector.h(Not used) - remove
void Serialize(const std::string& path)andvoid Deserialize(const std::string& path)fromclass ImmPHIdxerinperfect_hash_indexer.h(Not used) - overwrite
finish()API ofclass PHIdxerViewBuilderinperfect_hash_indexer.h(For vineyard) - replace
std::vector<char> buffer_withstd::shared_ptr<Blob> buffer_inperfect_hash_indexer.h(For vineyard) - replace
nonstd::string_viewwitharrow_string_viewin all files. (For vineyard)
NEW:
- Use libgrapelite pthash
- Remove pthash / BBHash from vineyard
Related issue number
Fixes #1852
/cc @sighingnow, this issus/pr has had no activity for a long time, please help to review the status and assign people to work on it.
Refer to #1992