summaryrefslogtreecommitdiff
path: root/items.h
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2015-01-02 21:25:18 -0800
committerdormando <dormando@rydia.net>2015-01-02 21:55:44 -0800
commit9bce42f27c88a88f94c5e5345ced205a0ab36e89 (patch)
treef1d909003a1373b607beb41e1cd867b3dc7e0fd0 /items.h
parent2c0e04af97d7b66d20494a6ddc9c237cd124c501 (diff)
downloadmemcached-9bce42f27c88a88f94c5e5345ced205a0ab36e89.tar.gz
Beginning work for LRU rework
Primarily splitting cache_lock into a lock-per LRU, and making the it->slab_clsid lookup indirect. cache_lock is now more or less gone. Stats are still wrong. they need to internally summarize over each sub-class.
Diffstat (limited to 'items.h')
-rw-r--r--items.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/items.h b/items.h
index b6ae612..88d7c21 100644
--- a/items.h
+++ b/items.h
@@ -2,6 +2,7 @@
uint64_t get_cas_id(void);
/*@null@*/
+item *do_item_alloc_old(char *key, const size_t nkey, const int flags, const rel_time_t exptime, const int nbytes, const uint32_t cur_hv);
item *do_item_alloc(char *key, const size_t nkey, const int flags, const rel_time_t exptime, const int nbytes, const uint32_t cur_hv);
void item_free(item *it);
bool item_size_ok(const size_t nkey, const int flags, const int nbytes);
@@ -15,16 +16,17 @@ void do_item_update_nolock(item *it);
int do_item_replace(item *it, item *new_it, const uint32_t hv);
/*@null@*/
-char *do_item_cachedump(const unsigned int slabs_clsid, const unsigned int limit, unsigned int *bytes);
-void do_item_stats(ADD_STAT add_stats, void *c);
-void do_item_stats_totals(ADD_STAT add_stats, void *c);
+char *item_cachedump(const unsigned int slabs_clsid, const unsigned int limit, unsigned int *bytes);
+void item_stats(ADD_STAT add_stats, void *c);
+void item_stats_totals(ADD_STAT add_stats, void *c);
/*@null@*/
-void do_item_stats_sizes(ADD_STAT add_stats, void *c);
+void item_stats_sizes(ADD_STAT add_stats, void *c);
item *do_item_get(const char *key, const size_t nkey, const uint32_t hv);
item *do_item_touch(const char *key, const size_t nkey, uint32_t exptime, const uint32_t hv);
void item_stats_reset(void);
extern pthread_mutex_t cache_lock;
+extern pthread_mutex_t lru_locks[POWER_LARGEST];
void item_stats_evictions(uint64_t *evicted);
enum crawler_result_type {