diff options
author | Jim Brunner <brunnerj@amazon.com> | 2020-09-15 23:16:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-16 09:16:01 +0300 |
commit | 810e28a397b77fa16037354477370b564474d9be (patch) | |
tree | 8a82cf2b83bbf051e18a5357697d0f6425525e7f /README.md | |
parent | 6ff741b5cf4d1cf7e23610aa9eef7ed485bd3113 (diff) | |
download | redis-810e28a397b77fa16037354477370b564474d9be.tar.gz |
Incremental eviction processing (#7653)
Rather than blindly evicting until maxmemory limit is achieved, this
update adds a time limit to eviction. While over the maxmemory limit,
eviction will process before each command AND as a timeProc when no
commands are running.
This will reduce the latency impact on many cases, especially pathological
cases like massive used memory increase during dict rehashing.
There is a risk that some other edge cases (like massive pipelined use
of MGET) could cause Redis memory usage to keep growing despite the
eviction attempts, so a new maxmemory-eviction-tenacity config is
introduced to let users mitigate that.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -354,7 +354,7 @@ Inside server.c you can find code that handles other vital things of the Redis s * `call()` is used in order to call a given command in the context of a given client. * `activeExpireCycle()` handles eviction of keys with a time to live set via the `EXPIRE` command. -* `freeMemoryIfNeeded()` is called when a new write command should be performed but Redis is out of memory according to the `maxmemory` directive. +* `performEvictions()` is called when a new write command should be performed but Redis is out of memory according to the `maxmemory` directive. * The global variable `redisCommandTable` defines all the Redis commands, specifying the name of the command, the function implementing the command, the number of arguments required, and other properties of each command. networking.c |