1. 05 Jul, 2013 1 commit
  2. 04 Jul, 2013 1 commit
  3. 02 Jul, 2013 1 commit
  4. 28 Jun, 2013 1 commit
  5. 27 Jun, 2013 1 commit
  6. 24 Jun, 2013 3 commits
  7. 21 Jun, 2013 1 commit
    • antirez's avatar
      New API to force propagation. · 515a26bb
      antirez authored
      The old REDIS_CMD_FORCE_REPLICATION flag was removed from the
      implementation of Redis, now there is a new API to force specific
      executions of a command to be propagated to AOF / Replication link:
      
          void forceCommandPropagation(int flags);
      
      The new API is also compatible with Lua scripting, so a script that will
      execute commands that are forced to be propagated, will also be
      propagated itself accordingly even if no change to data is operated.
      
      As a side effect, this new design fixes the issue with scripts not able
      to propagate PUBLISH to slaves (issue #873).
      515a26bb
  8. 20 Jun, 2013 1 commit
    • antirez's avatar
      PUBSUB command implemented. · 455563fa
      antirez authored
      Currently it implements three subcommands:
      
      PUBSUB CHANNELS [<pattern>]    List channels with non-zero subscribers.
      PUBSUB NUMSUB [channel_1 ...]  List number of subscribers for channels.
      PUBSUB NUMPAT                  Return number of subscribed patterns.
      455563fa
  9. 30 May, 2013 3 commits
  10. 29 May, 2013 2 commits
  11. 28 May, 2013 1 commit
  12. 27 May, 2013 2 commits
  13. 17 May, 2013 1 commit
  14. 15 May, 2013 1 commit
    • antirez's avatar
      Added a define for most configuration defaults. · 310dbba0
      antirez authored
      Also the logfile option was modified to always have an explicit value
      and to log to stdout when an empty string is used as log file.
      
      Previously there was special handling of the string "stdout" that set
      the logfile to NULL, this always required some special handling.
      310dbba0
  15. 13 May, 2013 2 commits
  16. 09 May, 2013 1 commit
  17. 24 Apr, 2013 1 commit
  18. 19 Apr, 2013 1 commit
  19. 04 Apr, 2013 1 commit
  20. 02 Apr, 2013 1 commit
    • antirez's avatar
      Throttle BGSAVE attempt on saving error. · b237de33
      antirez authored
      When a BGSAVE fails, Redis used to flood itself trying to BGSAVE at
      every next cron call, that is either 10 or 100 times per second
      depending on configuration and server version.
      
      This commit does not allow a new automatic BGSAVE attempt to be
      performed before a few seconds delay (currently 5).
      
      This avoids both the auto-flood problem and filling the disk with
      logs at a serious rate.
      
      The five seconds limit, considering a log entry of 200 bytes, will use
      less than 4 MB of disk space per day that is reasonable, the sysadmin
      should notice before of catastrofic events especially since by default
      Redis will stop serving write queries after the first failed BGSAVE.
      
      This fixes issue #849
      b237de33
  21. 28 Mar, 2013 1 commit
  22. 27 Mar, 2013 1 commit
    • antirez's avatar
      DEBUG set-active-expire added. · 32a83c82
      antirez authored
      We need the ability to disable the activeExpireCycle() (active
      expired key collection) call for testing purposes.
      32a83c82
  23. 26 Mar, 2013 2 commits
  24. 13 Mar, 2013 1 commit
  25. 12 Mar, 2013 2 commits
  26. 11 Mar, 2013 3 commits
    • antirez's avatar
      activeExpireCycle() smarter with many DBs and under expire pressure. · 2d851333
      antirez authored
      activeExpireCycle() tries to test just a few DBs per iteration so that
      it scales if there are many configured DBs in the Redis instance.
      However this commit makes it a bit smarter when one a few of those DBs
      are under expiration pressure and there are many many keys to expire.
      
      What we do is to remember if in the last iteration had to return because
      we ran out of time. In that case the next iteration we'll test all the
      configured DBs so that we are sure we'll test again the DB under
      pressure.
      
      Before of this commit after some mass-expire in a given DB the function
      tested just a few of the next DBs, possibly empty, a few per iteration,
      so it took a long time for the function to reach again the DB under
      pressure. This resulted in a lot of memory being used by already expired
      keys and never accessed by clients.
      2d851333
    • antirez's avatar
      08b107e4
    • antirez's avatar
      4b1ccdfd
  27. 09 Mar, 2013 2 commits
  28. 08 Mar, 2013 1 commit
    • antirez's avatar
      activeExpireCycle(): process only a small number of DBs per iteration. · db29d71a
      antirez authored
      This small number of DBs is set to 16 so actually in the default
      configuraiton Redis should behave exactly like in the past.
      However the difference is that when the user configures a very large
      number of DBs we don't do an O(N) operation, consuming a non trivial
      amount of CPU per serverCron() iteration.
      db29d71a