![]() |
An interesting tradeoff regarding 'get_size' In the case of many-locks, there's no real size at any given instant, because the hash is parallelized. Yet, the overhead of creating an atomic for the elements is silly. Thus, when 'manylock', the elements field is not useful because its not protected by a lock - it will typically get boned up. Thus, get_size has to slowly troop through the hashset This seems reasonable because 'get_size' with many lock can't be important, since it's always an estimate anyway.
Definition at line 163 of file src/include/citrusleaf/cf_rchash.h.
#include "cf_rchash.h"
Data Fields | |
pthread_mutex_t | biglock |
int | buckets_per_lock |
cf_rchash_destructor_fn | d_fn |
uint32_t | elements |
uint | flags |
cf_rchash_hash_fn | h_fn |
uint32_t | key_len |
pthread_mutex_t * | lock_table |
int | lock_table_len |
void * | table |
uint | table_len |
pthread_mutex_t cf_rchash::biglock |
Definition at line 171 of file src/include/citrusleaf/cf_rchash.h.
int cf_rchash::buckets_per_lock |
Definition at line 173 of file src/include/citrusleaf/cf_rchash.h.
cf_rchash_destructor_fn cf_rchash::d_fn |
Definition at line 168 of file src/include/citrusleaf/cf_rchash.h.
uint32_t cf_rchash::elements |
Definition at line 164 of file src/include/citrusleaf/cf_rchash.h.
uint cf_rchash::flags |
Definition at line 166 of file src/include/citrusleaf/cf_rchash.h.
cf_rchash_hash_fn cf_rchash::h_fn |
Definition at line 167 of file src/include/citrusleaf/cf_rchash.h.
uint32_t cf_rchash::key_len |
Definition at line 165 of file src/include/citrusleaf/cf_rchash.h.
pthread_mutex_t * cf_rchash::lock_table |
Definition at line 174 of file src/include/citrusleaf/cf_rchash.h.
int cf_rchash::lock_table_len |
Definition at line 172 of file src/include/citrusleaf/cf_rchash.h.
void * cf_rchash::table |
Definition at line 170 of file src/include/citrusleaf/cf_rchash.h.
uint cf_rchash::table_len |
Definition at line 169 of file src/include/citrusleaf/cf_rchash.h.