summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2017-01-08 01:48:39 -0800
committerdormando <dormando@rydia.net>2017-01-22 19:57:15 -0800
commitfa8b42560aa948822514ed6560d8448623049297 (patch)
treea8bab256803f79b2cb8f53bd579ff2469dd885fd /doc
parente1d9af2bcf853e1179a9ee2ac526bea435c50930 (diff)
downloadmemcached-fa8b42560aa948822514ed6560d8448623049297.tar.gz
NOEXP_LRU is now TEMP_LRU
Confident the other feature was never used; and if someone wants it, it's easy to restore by allowing exptime of 0 to go into TEMP_LRU. This could possibly become a default, or at least recommended.
Diffstat (limited to 'doc')
-rw-r--r--doc/new_lru.txt12
-rw-r--r--doc/protocol.txt6
2 files changed, 11 insertions, 7 deletions
diff --git a/doc/new_lru.txt b/doc/new_lru.txt
index 43b7f4b..96329c0 100644
--- a/doc/new_lru.txt
+++ b/doc/new_lru.txt
@@ -12,6 +12,7 @@ Now, enabling `-o lru_maintainer` changes all of the behavior below:
* LRU updates only happen as items reach the bottom of an LRU. If active in
HOT, stay in HOT, if active in WARM, stay in WARM. If active in COLD, move
to WARM.
+ The exception is that items hit in COLD are immediately moved to WARM.
* HOT/WARM each capped at 32% of memory available for that slab class. COLD
is uncapped (by default, as of this writing).
* Items flow from HOT/WARM into COLD.
@@ -25,7 +26,7 @@ bottom. Items occasionally active (reaching COLD, but being hit before
eviction), move to WARM. There they can stay relatively protected.
A secondary goal is to improve latency. The LRU locks are no longer used on
-item reads, only during sets and from the background thread. Also the
+most item reads, largely during sets and from the background thread. Also the
background thread is likely to find expired items and release them back to the
slab class asynchronously, which speeds up new allocations.
@@ -34,6 +35,9 @@ It is recommended to use this feature with the lru crawler as well:
slab classes for items with expired TTL's. If your items are always set to
never expire, you can omit this option safely.
-An extra option: `-o expirezero_does_not_evict` (when used with
-lru_maintainer) will make items with an expiration time of 0 unevictable. Take
-caution as this will crowd out memory available for other items.
+An extra option: `-o temporary_ttl=N` (when used with lru_maintainer) will make
+items with a TTL less than or equal to this value use a fourth TEMP LRU. Items
+stored in TEMP are never bumped within its LRU or moved to other LRU's. They
+also cannot be evicted. This can help reduce holes and load on the LRU crawler.
+
+Do not set temporary_ttl too high or memory could become exhausted.
diff --git a/doc/protocol.txt b/doc/protocol.txt
index 6e3655c..c6aebc0 100644
--- a/doc/protocol.txt
+++ b/doc/protocol.txt
@@ -747,8 +747,8 @@ other stats command.
| | bool | Split LRU mode and background threads |
| hot_lru_pct | 32 | Pct of slab memory reserved for HOT LRU |
| warm_lru_pct | 32 | Pct of slab memory reserved for WARM LRU |
-| expirezero_does_not_evict |
-| | bool | If yes, items with 0 exptime cannot evict |
+| temp_lru | bool | If yes, items < temporary_ttl use TEMP_LRU |
+| temporary_ttl | 32u | Items with TTL < this are marked temporary |
| idle_time | 0 | Drop connections that are idle this many |
| | | seconds (0 disables) |
| watcher_logbuf_size |
@@ -792,7 +792,7 @@ number Number of items presently stored in this class. Expired
number_hot Number of items presently stored in the HOT LRU.
number_warm Number of items presently stored in the WARM LRU.
number_cold Number of items presently stored in the COLD LRU.
-number_noexp Number of items presently stored in the NOEXP class.
+number_temp Number of items presently stored in the TEMPORARY LRU.
age Age of the oldest item in the LRU.
evicted Number of times an item had to be evicted from the LRU
before it expired.