![]() |
CernVM-FS
2.10.0
|
#include <smallhash.h>
Public Member Functions | |
MultiHash () | |
void | Init (const uint8_t num_hashmaps, const Key &empty_key, uint32_t(*hasher)(const Key &key)) |
~MultiHash () | |
bool | Lookup (const Key &key, Value *value) |
void | Insert (const Key &key, const Value &value) |
void | Erase (const Key &key) |
void | Clear () |
uint8_t | num_hashmaps () const |
void | GetSizes (uint32_t *sizes) |
void | GetCollisionStats (uint64_t *num_collisions, uint32_t *max_collisions) |
Private Member Functions | |
uint8_t | SelectHashmap (const Key &key) |
void | Lock (const uint8_t target) |
void | Unlock (const uint8_t target) |
Private Attributes | |
uint8_t | num_hashmaps_ |
SmallHashDynamic< Key, Value > * | hashmaps_ |
pthread_mutex_t * | locks_ |
Distributes the key-value pairs over $n$ dynamic hash maps with individual mutexes. Hence low mutex contention, and benefits from multiple processors.
Definition at line 404 of file smallhash.h.
Definition at line 406 of file smallhash.h.
Definition at line 428 of file smallhash.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprivate |
Definition at line 494 of file smallhash.h.
Referenced by MultiHash< Key, Value >::Clear(), MultiHash< Key, Value >::Erase(), MultiHash< Key, Value >::GetCollisionStats(), MultiHash< Key, Value >::GetSizes(), MultiHash< Key, Value >::Insert(), and MultiHash< Key, Value >::Lookup().
|
inline |
|
inline |
Definition at line 467 of file smallhash.h.
Referenced by MultiHash< Key, Value >::Init().
|
inlineprivate |
Definition at line 486 of file smallhash.h.
Referenced by MultiHash< Key, Value >::Erase(), MultiHash< Key, Value >::Insert(), and MultiHash< Key, Value >::Lookup().
|
inlineprivate |
Definition at line 499 of file smallhash.h.
Referenced by MultiHash< Key, Value >::Clear(), MultiHash< Key, Value >::Erase(), MultiHash< Key, Value >::GetCollisionStats(), MultiHash< Key, Value >::GetSizes(), MultiHash< Key, Value >::Insert(), and MultiHash< Key, Value >::Lookup().
|
private |
Definition at line 505 of file smallhash.h.
Referenced by MultiHash< Key, Value >::Clear(), MultiHash< Key, Value >::Erase(), MultiHash< Key, Value >::GetCollisionStats(), MultiHash< Key, Value >::GetSizes(), MultiHash< Key, Value >::Init(), MultiHash< Key, Value >::Insert(), MultiHash< Key, Value >::Lookup(), MultiHash< Key, Value >::MultiHash(), and MultiHash< Key, Value >::~MultiHash().
|
private |
Definition at line 506 of file smallhash.h.
Referenced by MultiHash< Key, Value >::Init(), MultiHash< Key, Value >::Lock(), MultiHash< Key, Value >::MultiHash(), MultiHash< Key, Value >::Unlock(), and MultiHash< Key, Value >::~MultiHash().
|
private |
Definition at line 504 of file smallhash.h.
Referenced by MultiHash< Key, Value >::Clear(), MultiHash< Key, Value >::GetCollisionStats(), MultiHash< Key, Value >::GetSizes(), MultiHash< Key, Value >::Init(), MultiHash< Key, Value >::MultiHash(), MultiHash< Key, Value >::num_hashmaps(), MultiHash< Key, Value >::SelectHashmap(), and MultiHash< Key, Value >::~MultiHash().