• Jim Brunner's avatar
    Incremental eviction processing (#7653) · 810e28a3
    Jim Brunner authored
    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.
    810e28a3
evict.c 28.4 KB