summaryrefslogtreecommitdiff
path: root/doc/new_lru.txt
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2017-01-29 13:15:22 -0800
committerdormando <dormando@rydia.net>2017-01-30 16:32:24 -0800
commit23b880c57753bbf74f6483afce480d1ff34e0a89 (patch)
tree4a3184dcf0870bfc26b30d438b0bb517c2d0a2b9 /doc/new_lru.txt
parent695879257436a8e79ab5205f9f4f267578eabc38 (diff)
downloadmemcached-23b880c57753bbf74f6483afce480d1ff34e0a89.tar.gz
use LRU thread for COLD -> WARM bumps
Previous tree fixed a problem; active items needed to be processed from the tail of COLD, which makes evictions harder without evicting active items. COLD bumps were modified to be immediate (old style). This uses a per-worker-thread mostly-nonblocking queue that the LRU thread consumes for COLD bumps. In most cases, hits to COLD are 1/10th or less than the other classes. On high rates of access where the buffers fill, those items simply don't get their ACTIVE bit set. If they get hit again with free space, they will be processed then. This prevents regressions from high speed keyspace scans.
Diffstat (limited to 'doc/new_lru.txt')
-rw-r--r--doc/new_lru.txt2
1 files changed, 1 insertions, 1 deletions
diff --git a/doc/new_lru.txt b/doc/new_lru.txt
index 38f6ff3..a944671 100644
--- a/doc/new_lru.txt
+++ b/doc/new_lru.txt
@@ -18,7 +18,7 @@ Now, enabling `-o lru_maintainer` changes all of the behavior below:
is uncapped (by default, as of this writing).
* Items flow from HOT/WARM into COLD.
* A background thread exists which shuffles items between/within the LRU's as
- limits are reached.
+ limits are reached. This includes moves from COLD to WARM.
* The background thread can also control the lru_crawler, if enabled.
The primary goal is to better protect active items from "scanning". Items