summaryrefslogtreecommitdiff
path: root/memcached.h
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2017-06-15 22:15:57 -0700
committerdormando <dormando@rydia.net>2017-06-23 01:12:53 -0700
commitd67d18791f07cb69a4a4cdcdb904a106dae97750 (patch)
tree36d442c61b2451946246beeab1453a64e77d67f6 /memcached.h
parent5a26aca5ecce67234a4277a7e7caf8aa26cc7fd3 (diff)
downloadmemcached-d67d18791f07cb69a4a4cdcdb904a106dae97750.tar.gz
slab_rebal: delete busy items if stuck
if we loop through a slab too many times without freeing everything, delete items stuck with high refcounts. they should bleed off so long as the connections aren't jammed holding them. should be possible to force rescues in this case as well, but that's more code so will follow up later. Need a big-ish refactor.
Diffstat (limited to 'memcached.h')
-rw-r--r--memcached.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/memcached.h b/memcached.h
index 9ef3e53..6b54fa0 100644
--- a/memcached.h
+++ b/memcached.h
@@ -292,6 +292,7 @@ struct stats {
uint64_t slab_reassign_inline_reclaim; /* valid items lost during slab move */
uint64_t slab_reassign_chunk_rescues; /* chunked-item chunks recovered */
uint64_t slab_reassign_busy_items; /* valid temporarily unmovable */
+ uint64_t slab_reassign_busy_deletes; /* refcounted items killed */
uint64_t lru_crawler_starts; /* Number of item crawlers kicked off */
uint64_t lru_maintainer_juggles; /* number of LRU bg pokes */
uint64_t time_in_listen_disabled_us; /* elapsed time in microseconds while server unable to process new connections */
@@ -593,6 +594,8 @@ struct slab_rebalance {
uint32_t evictions_nomem;
uint32_t inline_reclaim;
uint32_t chunk_rescues;
+ uint32_t busy_deletes;
+ uint32_t busy_loops;
uint8_t done;
};