diff options
author | dormando <dormando@rydia.net> | 2017-11-16 18:51:44 -0800 |
---|---|---|
committer | dormando <dormando@rydia.net> | 2017-11-28 14:18:05 -0800 |
commit | 46a297cb0b6bad956793c25cc04ee208fc75a843 (patch) | |
tree | 585aeee59c1ad4a7cba82e2a44826329cdfb611d /memcached.h | |
parent | fa37474c2a98ce4f23a4c3e059d432f798b878b6 (diff) | |
download | memcached-46a297cb0b6bad956793c25cc04ee208fc75a843.tar.gz |
extstore: crawler fix and ext_low_ttl option
LRU crawler was not marking reclaimed expired items as removed from the
storage engine. This could cause fragmentation to persist much longer than it
should, but would not cause any problems once compaction started.
Adds "ext_low_ttl" option. Items with a remaining expiration age below this
value are grouped into special pages. If you have a mixed TTL workload this
would help prevent low TTL items from causing excess fragmentation/compaction.
Pages with low ttl items are excluded from compaction.
Diffstat (limited to 'memcached.h')
-rw-r--r-- | memcached.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/memcached.h b/memcached.h index 5e6f185..5a6cec8 100644 --- a/memcached.h +++ b/memcached.h @@ -408,6 +408,7 @@ struct settings { #ifdef EXTSTORE unsigned int ext_item_size; /* minimum size of items to store externally */ unsigned int ext_item_age; /* max age of tail item before storing ext. */ + unsigned int ext_low_ttl; /* remaining TTL below this uses own pages */ unsigned int ext_recache_rate; /* counter++ % recache_rate == 0 > recache */ unsigned int ext_wbuf_size; /* read only note for the engine */ double ext_max_frag; /* ideal maximum page fragmentation */ |