1. 30 Nov, 2017 8 commits
    • antirez's avatar
      Prevent corruption of server.executable after DEBUG RESTART. · ab3d3aca
      antirez authored
      Doing the following ended with a broken server.executable:
      
      1. Start Redis with src/redis-server
      2. Send CONFIG SET DIR /tmp/
      3. Send DEBUG RESTART
      
      At this point we called execve with an argv[0] that is no longer related
      to the new path. So after the restart the absolute path of the
      executable is recomputed in the wrong way. With this fix we pass the
      absolute path already computed as argv[0].
      ab3d3aca
    • antirez's avatar
      Be more verbose when DEBUG RESTART fails. · b7c7edf9
      antirez authored
      b7c7edf9
    • antirez's avatar
      Redis 4.0.3. · cbb6f457
      antirez authored
      cbb6f457
    • antirez's avatar
      LFU: Fix LFUDecrAndReturn() to just decrement. · d766322e
      antirez authored
      Splitting the popularity in half actually just needs decrementing the
      counter because the counter is logarithmic.
      d766322e
    • zhaozhao.zz's avatar
      LFU: add hotkeys option to redis-cli · 6544796a
      zhaozhao.zz authored
      6544796a
    • zhaozhao.zz's avatar
      LFU: do some changes about LFU to find hotkeys · e2355c19
      zhaozhao.zz authored
      Firstly, use access time to replace the decreas time of LFU.
      For function LFUDecrAndReturn,
      it should only try to get decremented counter,
      not update LFU fields, we will update it in an explicit way.
      And we will times halve the counter according to the times of
      elapsed time than server.lfu_decay_time.
      Everytime a key is accessed, we should update the LFU
      including update access time, and increment the counter after
      call function LFUDecrAndReturn.
      If a key is overwritten, the LFU should be also updated.
      Then we can use `OBJECT freq` command to get a key's frequence,
      and LFUDecrAndReturn should be called in `OBJECT freq` command
      in case of the key has not been accessed for a long time,
      because we update the access time only when the key is read or
      overwritten.
      e2355c19
    • zhaozhao.zz's avatar
      LFU: change lfu* parameters to int · 22969a13
      zhaozhao.zz authored
      22969a13
    • zhaozhao.zz's avatar
      6b71f714
  2. 28 Nov, 2017 12 commits
  3. 27 Nov, 2017 4 commits
  4. 24 Nov, 2017 10 commits
  5. 23 Nov, 2017 2 commits
  6. 21 Nov, 2017 1 commit
  7. 08 Nov, 2017 3 commits
    • kmiku7's avatar
      fix boundary case for _dictNextPower · 7675b00a
      kmiku7 authored
      7675b00a
    • Itamar Haber's avatar
      Fixes an off-by-one in argument handling of `MEMORY USAGE` · f31d9b12
      Itamar Haber authored
      Fixes #4430
      f31d9b12
    • antirez's avatar
      SDS: improve sdsRemoveFreeSpace() to avoid useless data copy. · 897d8571
      antirez authored
      Since SDS v2, we no longer have a single header, so the function to
      rewrite the SDS in terms of the minimum space required, instead of just
      using realloc() and let the underlying allocator decide what to do,
      was doing an allocation + copy every time the minimum possible header
      needed to represent the string was different than the current one.
      This could be often a bit wasteful, because if we go, for instance, from
      the 32 bit fields header to the 16 bit fields header, the overhead of
      the header is normally very small. With this commit we call realloc
      instead, unless the change in header size is very significant in relation
      to the string length.
      897d8571