Commits on Mar 29, 2013
  1. Redis 2.6.12

    antirez committed Mar 29, 2013
Commits on Mar 28, 2013
  1. Test: Extended SET tests.

    antirez committed Mar 28, 2013
  2. DEBUG set-active-expire added.

    antirez committed Mar 27, 2013
    We need the ability to disable the activeExpireCycle() (active
    expired key collection) call for testing purposes.
Commits on Mar 27, 2013
  1. Transactions: propagate MULTI/EXEC only when needed.

    antirez committed Mar 26, 2013
    MULTI/EXEC is now propagated to the AOF / Slaves only once we encounter
    the first command that is not a read-only one inside the transaction.
    The old behavior was to always propagate an empty MULTI/EXEC block when
    the transaction was composed just of read only commands, or even
    completely empty. This created two problems:
    1) It's a bandwidth waste in the replication link and a space waste
       inside the AOF file.
    2) We used to always increment server.dirty to force the propagation of
       the EXEC command, resulting into triggering RDB saves more often
       than needed.
    Note: even read-only commands may also trigger writes that will be
    propagated, when we access a key that is found expired and Redis will
    synthesize a DEL operation. However there is no need for this to stay
    inside the transaction itself, but only to be ordered.
    So for instance something like:
        GET foo
        SET key zap
    May be propagated into:
        DEL foo
        SET key zap
    While the DEL is outside the transaction, the commands are delivered in
    the right order and it is not possible for other commands to be inserted
    between DEL and MULTI.
  2. Transactions: use the propagate() API to propagate MULTI.

    antirez committed Mar 26, 2013
    The behavior is the same, but the code is now cleaner and uses the
    proper interface instead of dealing directly with AOF/replication
Commits on Mar 26, 2013
  1. Allow SELECT while loading the DB.

    antirez committed Mar 26, 2013
    Fixes issue #1024.
Commits on Mar 25, 2013
  1. Update config.c

    NanXiao authored and antirez committed Mar 14, 2013
    Fix bug in configGetCommand function: get correct masterauth value.
  2. redis-cli --stat, stolen from redis-tools.

    antirez committed Mar 22, 2013
    Redis-tools is a connection of tools no longer mantained that was
    intented as a way to economically make sense of Redis in the pre-vmware
    sponsorship era. However there was a nice redis-stat utility, this
    commit imports one of the functionalities of this tool here in redis-cli
    as it seems to be pretty useful.
    Usage: redis-cli --stat
    The output is similar to vmstat in the format, but with Redis specific
    stuff of course.
    From the point of view of the monitored instance, only INFO is used in
    order to grab data.
Commits on Mar 13, 2013
  1. Replication: master_link_down_since_seconds initial value should be h…

    antirez committed Mar 13, 2013
    server.repl_down_since used to be initialized to the current time at
    startup. This is wrong since the replication never started. Clients
    testing this filed to check if data is uptodate should never believe
    data is recent if we never ever connected to our master.
  2. Test: more RDB loading checks.

    antirez committed Mar 13, 2013
    A test for issue #1001 is included.
  3. Abort when opening the RDB file results in an error other than ENOENT.

    djanowski authored and antirez committed Mar 12, 2013
    This fixes cases where the RDB file does exist but can't be accessed for
    any reason. For instance, when the Redis process doesn't have enough
    permissions on the file.
Commits on Mar 12, 2013
  1. Set default for stop_writes_on_bgsave_err in initServerConfig().

    antirez committed Mar 12, 2013
    It was placed for error in initServer() that's called after the
    configuation is already loaded, causing issue #1000.
Commits on Mar 11, 2013
  1. Redis 2.6.11

    antirez committed Mar 11, 2013
  2. activeExpireCycle() smarter with many DBs and under expire pressure.

    antirez committed Mar 11, 2013
    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
    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.