1. 24 Mar, 2014 17 commits
  2. 21 Mar, 2014 3 commits
  3. 20 Mar, 2014 12 commits
    • Jan-Erik Rediger's avatar
      Fixed a few typos. · 4fdd7a05
      Jan-Erik Rediger authored
      4fdd7a05
    • antirez's avatar
      Use 24 bits for the lru object field and improve resolution. · a9836992
      antirez authored
      There were 2 spare bits inside the Redis object structure that are now
      used in order to enlarge 4x the range of the LRU field.
      
      At the same time the resolution was improved from 10 to 1 second: this
      still provides 194 days before the LRU counter overflows (restarting from
      zero).
      
      This is not a problem since it only causes lack of eviction precision for
      objects not touched for a very long time, and the lack of precision is
      only temporary.
      a9836992
    • antirez's avatar
      Default LRU samples is now 5. · f4da796c
      antirez authored
      f4da796c
    • antirez's avatar
      Use new dictGetRandomKeys() API to get samples for eviction. · c641b670
      antirez authored
      The eviction quality degradates a bit in my tests, but since the API is
      faster, it allows to raise the number of samples, and overall is a win.
      c641b670
    • antirez's avatar
      struct dictEntry -> dictEntry. · 82b53c65
      antirez authored
      82b53c65
    • antirez's avatar
      Added dictGetRandomKeys() to dict.c: mass get random entries. · 5317f5e9
      antirez authored
      This new function is useful to get a number of random entries from an
      hash table when we just need to do some sampling without particularly
      good distribution.
      
      It just jumps at a random place of the hash table and returns the first
      N items encountered by scanning linearly.
      
      The main usefulness of this function is to speedup Redis internal
      sampling of the key space, for example for key eviction or expiry.
      5317f5e9
    • antirez's avatar
      LRU eviction pool implementation. · 22c9cfaf
      antirez authored
      This is an improvement over the previous eviction algorithm where we use
      an eviction pool that is persistent across evictions of keys, and gets
      populated with the best candidates for evictions found so far.
      
      It allows to approximate LRU eviction at a given number of samples
      better than the previous algorithm used.
      22c9cfaf
    • antirez's avatar
      Fix OBJECT IDLETIME return value converting to seconds. · 6d5790d6
      antirez authored
      estimateObjectIdleTime() returns a value in milliseconds now, so we need
      to scale the output of OBJECT IDLETIME to seconds.
      6d5790d6
    • antirez's avatar
      Obtain LRU clock in a resolution dependent way. · ad6b0f70
      antirez authored
      For testing purposes it is handy to have a very high resolution of the
      LRU clock, so that it is possible to experiment with scripts running in
      just a few seconds how the eviction algorithms works.
      
      This commit allows Redis to use the cached LRU clock, or a value
      computed on demand, depending on the resolution. So normally we have the
      good performance of a precomputed value, and a clock that wraps in many
      days using the normal resolution, but if needed, changing a define will
      switch behavior to an high resolution LRU clock.
      ad6b0f70
    • antirez's avatar
      Specify lruclock in redisServer structure via REDIS_LRU_BITS. · 1faf8266
      antirez authored
      The padding field was totally useless: removed.
      1faf8266
    • antirez's avatar
      Specify LRU resolution in milliseconds. · d77e2316
      antirez authored
      d77e2316
    • antirez's avatar
      Set LRU parameters via REDIS_LRU_BITS define. · fe308470
      antirez authored
      fe308470
  4. 19 Mar, 2014 1 commit
  5. 18 Mar, 2014 7 commits