diff options
author | Costa Tsaousis <costa@netdata.cloud> | 2022-11-28 12:22:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-28 12:22:38 +0200 |
commit | 53a13ab8e110923d097968353a6bc1e22399480f (patch) | |
tree | a22fe110436844fcc0331073d37182adefbf0edc /libnetdata/dictionary | |
parent | 1e9f2c7a2a866be27203c528067adecd283e0ceb (diff) |
replication fixes No 7 (#14053)
* move global statistics workers to a separate thread; query statistics per query source; query statistics for ML, exporters, backfilling; reset replication point in time every 10 seconds, instead of every 1; fix compilation warnings; optimize the replication queries code; prevent long tail of replication requests (big sleeps); provide query statistics about replication ; optimize replication sender when most senders are full; optimize replication_request_get_first_available(); reset replication completion calculation;
* remove workers utilization from global statistics thread
Diffstat (limited to 'libnetdata/dictionary')
-rw-r--r-- | libnetdata/dictionary/dictionary.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/libnetdata/dictionary/dictionary.c b/libnetdata/dictionary/dictionary.c index c6b6b022f5..f03da25abf 100644 --- a/libnetdata/dictionary/dictionary.c +++ b/libnetdata/dictionary/dictionary.c @@ -199,7 +199,10 @@ static int item_check_and_acquire_advanced(DICTIONARY *dict, DICTIONARY_ITEM *it #define item_is_not_referenced_and_can_be_removed(dict, item) (item_is_not_referenced_and_can_be_removed_advanced(dict, item) == RC_ITEM_OK) static inline int item_is_not_referenced_and_can_be_removed_advanced(DICTIONARY *dict, DICTIONARY_ITEM *item); -static inline void pointer_index_init(DICTIONARY *dict) { +// ---------------------------------------------------------------------------- +// validate each pointer is indexed once - internal checks only + +static inline void pointer_index_init(DICTIONARY *dict __maybe_unused) { #ifdef NETDATA_INTERNAL_CHECKS netdata_mutex_init(&dict->global_pointer_registry_mutex); #else @@ -207,7 +210,7 @@ static inline void pointer_index_init(DICTIONARY *dict) { #endif } -static inline void pointer_destroy_index(DICTIONARY *dict) { +static inline void pointer_destroy_index(DICTIONARY *dict __maybe_unused) { #ifdef NETDATA_INTERNAL_CHECKS netdata_mutex_lock(&dict->global_pointer_registry_mutex); JudyHSFreeArray(&dict->global_pointer_registry, PJE0); @@ -216,7 +219,7 @@ static inline void pointer_destroy_index(DICTIONARY *dict) { ; #endif } -static inline void pointer_add(DICTIONARY *dict __maybe_unused, DICTIONARY_ITEM *item) { +static inline void pointer_add(DICTIONARY *dict __maybe_unused, DICTIONARY_ITEM *item __maybe_unused) { #ifdef NETDATA_INTERNAL_CHECKS netdata_mutex_lock(&dict->global_pointer_registry_mutex); Pvoid_t *PValue = JudyHSIns(&dict->global_pointer_registry, &item, sizeof(void *), PJE0); @@ -229,7 +232,7 @@ static inline void pointer_add(DICTIONARY *dict __maybe_unused, DICTIONARY_ITEM #endif } -static inline void pointer_check(DICTIONARY *dict __maybe_unused, DICTIONARY_ITEM *item) { +static inline void pointer_check(DICTIONARY *dict __maybe_unused, DICTIONARY_ITEM *item __maybe_unused) { #ifdef NETDATA_INTERNAL_CHECKS netdata_mutex_lock(&dict->global_pointer_registry_mutex); Pvoid_t *PValue = JudyHSGet(dict->global_pointer_registry, &item, sizeof(void *)); @@ -241,7 +244,7 @@ static inline void pointer_check(DICTIONARY *dict __maybe_unused, DICTIONARY_ITE #endif } -static inline void pointer_del(DICTIONARY *dict __maybe_unused, DICTIONARY_ITEM *item) { +static inline void pointer_del(DICTIONARY *dict __maybe_unused, DICTIONARY_ITEM *item __maybe_unused) { #ifdef NETDATA_INTERNAL_CHECKS netdata_mutex_lock(&dict->global_pointer_registry_mutex); int ret = JudyHSDel(&dict->global_pointer_registry, &item, sizeof(void *), PJE0); @@ -413,7 +416,7 @@ static inline void DICTIONARY_ENTRIES_MINUS1(DICTIONARY *dict) { __atomic_fetch_add(&dict->stats->ops.deletes, 1, __ATOMIC_RELAXED); __atomic_fetch_sub(&dict->stats->items.entries, 1, __ATOMIC_RELAXED); - size_t entries; + size_t entries; (void)entries; if(unlikely(is_dictionary_single_threaded(dict))) { dict->version++; entries = dict->entries++; |