Commits on Feb 22, 2012
  1. Redis version 2.4.8

    antirez committed Feb 22, 2012
  2. zzlIsInRange() now is capable of handling empty sorted sets that may …

    antirez committed Feb 22, 2012
    …end inside the data set when loading very old RDB files produced by early-stage versions of Redis.
Commits on Feb 21, 2012
  1. Merge pull request #346 from pietern/2.4-segv

    antirez committed Feb 21, 2012
    Force SIGSEGV without HAVE_BACKTRACE (2.4)
  2. Solaris has backtrace(3)

    pietern committed Feb 21, 2012
  3. Fix 32bit build of hiredis

    antirez committed Feb 19, 2012
  4. Applied a few modifications to hiredis to tune it for speed (redis-be…

    antirez committed Feb 19, 2012
    …nchmark) and ability to read more deeply nested replies (redis-cli).
  5. bzero -> memset

    antirez committed Feb 21, 2012
Commits on Feb 20, 2012
Commits on Feb 16, 2012
  1. Issue #330 regression test.

    antirez committed Feb 16, 2012
Commits on Feb 15, 2012
  1. Fixes to c->reply_bytes computation, and debug messages to closely st…

    antirez committed Feb 7, 2012
    …udy the behavior of memory pressure + slaves + maxmemory + blocked slaves.
  2. Precision of getClientOutputBufferMemoryUsage() greatily improved, se…

    antirez committed Feb 7, 2012
    …e issue #327 for more information.
  3. Also remove size of AOF buffers from used memory when doing the math …

    antirez committed Feb 6, 2012
    …for freeMemoryIfNeeded()
  4. This fixes issue #327, is a very complex fix (unfortunately), details:

    antirez committed Feb 4, 2012
    1) sendReplyToClient() now no longer stops transferring data to a single
    client in the case we are out of memory (maxmemory-wise).
    2) in processCommand() the idea of we being out of memory is no longer
    the naive zmalloc_used_memory() > server.maxmemory. To say if we can
    accept or not write queries is up to the return value of
    freeMemoryIfNeeded(), that has full control about that.
    3) freeMemoryIfNeeded() now does its math without considering output
    buffers size. But at the same time it can't let the output buffers to
    put us too much outside the max memory limit, so at the same time it
    makes sure there is enough effort into delivering the output buffers to
    the slaves, calling the write handler directly.
    This three changes are the result of many tests, I found (partially
    empirically) that is the best way to address the problem, but maybe
    we'll find better solutions in the future.
  5. Initial version of c->reply_bytes implementation backported from unst…

    antirez committed Feb 15, 2012
    …able to 2.4, in order to apply issue 327 patches.
Commits on Feb 14, 2012
  1. add -f flag to cp when installing, otherwise stopping the server is

    antirez committed Feb 14, 2012
    needed when installing a new Redis version. Thanks to Scott Kevill.
    Fixes issue #335.
Commits on Feb 2, 2012
  1. Redis 2.4.7

    antirez committed Feb 2, 2012
  2. Set a 3.5 GB maxmemory limit with noeviction policy if a 32 bit insta…

    antirez committed Feb 2, 2012
    …nce without user-provided memory limits is detected.
Commits on Jan 16, 2012
  1. Merge pull request #296 from pietern/2.4-expirefix

    antirez committed Jan 16, 2012
    Don't expire keys when loading an RDB after a SYNC
Commits on Jan 14, 2012
  1. Don't expire keys when loading an RDB after a SYNC

    pietern committed Jan 14, 2012
    The cron is responsible for expiring keys. When keys are expired at
    load time, it is possible that the snapshot of a master node gets
    modified. This can in turn lead to inconsistencies in the data set.
    A more concrete example of this behavior follows. A user reported a
    slave that would show an monotonically increase input buffer length,
    shortly after completing a SYNC. Also, `INFO` output showed a single
    blocked client, which could only be the master link. Investigation
    showed that indeed the `BRPOP` command was fed by the master. This
    command can only end up in the stream of write operations when it did
    NOT block, and effectively executed `RPOP`. However, when the key
    involved in the `BRPOP` is expired BEFORE the command is executed, the
    client executing it will block. The client in this case, is the master
Commits on Jan 12, 2012
  1. On crash print information about the current client (if any), command…

    antirez committed Jan 12, 2012
    … vector, and object associated to first argument assuming it is a key.