Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: 2.6
Commits on Feb 25, 2014
  1. Deprecate Redis Sentinel in 2.6.

    authored
    Everybody should use the more robust implementation shipped with 2.8.
Commits on Dec 11, 2013
  1. Redis 2.6.17.

    authored
  2. Merge pull request #847 from yossigo/repldboff-fix

    authored
    Fix wrong repldboff type which causes dropped replication in rare cases.
Commits on Dec 10, 2013
Commits on Nov 11, 2013
Commits on Nov 7, 2013
  1. Fix broken rdbWriteRaw() return value check in rdb.c.

    authored
    Thanks to @PhoneLi for reporting.
Commits on Nov 6, 2013
  1. Ryan Biesemeyer
Commits on Oct 28, 2013
Commits on Sep 17, 2013
Commits on Sep 4, 2013
  1. redis-cli: fix big keys search when the key no longer exist.

    authored
    The code freed a reply object that was never created, resulting in a
    segfault every time randomkey returned a key that was deleted before we
    queried it for size.
Commits on Aug 28, 2013
  1. Redis 2.6.16.

    authored
Commits on Aug 27, 2013
  1. yihuang

    fix lua_cmsgpack pack map as array

    yihuang authored committed
  2. tryObjectEncoding(): optimize sds strings if possible.

    authored
    When no encoding is possible, at least try to reallocate the sds string
    with one that does not waste memory (with free space at the end of the
    buffer) when the string is large enough.
  3. tryObjectEncoding(): don't call stringl2() for too big strings.

    authored
    We are sure that a string that is longer than 21 chars cannot be
    represented by a 64 bit signed integer, as -(2^64) is 21 chars:
    
    strlen(-18446744073709551616) => 21
  4. Don't over-allocate the sds string for large bulk requests.

    authored
    The call to sdsMakeRoomFor() did not accounted for the amount of data
    already present in the query buffer, resulting into over-allocation.
  5. DEBUG SDSLEN added.

    authored
    This command is only useful for low-level debugging of memory issues due
    to sds wasting memory as empty buffer at the end of the string.
Commits on Aug 21, 2013
  1. Redis 2.6.15

    authored
Commits on Aug 20, 2013
Commits on Aug 19, 2013
  1. Revert "Fixed type in dict.c comment: 265 -> 256."

    authored
    This reverts commit 19de8e4.
  2. assert.h replaced with redisassert.h when appropriate.

    authored
    Also a warning was suppressed by including unistd.h in redisassert.h
    (needed for _exit()).
  3. Added redisassert.h as drop in replacement for assert.h.

    authored
    By using redisassert.h version of assert() you get stack traces in the
    log instead of a process disappearing on assertions.
  4. dictFingerprint() fingerprinting made more robust.

    authored
    The previous hashing used the trivial algorithm of xoring the integers
    together. This is not optimal as it is very likely that different
    hash table setups will hash the same, for instance an hash table at the
    start of the rehashing process, and at the end, will have the same
    fingerprint.
    
    Now we hash N integers in a smarter way, by summing every integer to the
    previous hash, and taking the integer hashing again (see the code for
    further details). This way it is a lot less likely that we get a
    collision. Moreover this way of hashing explicitly protects from the
    same set of integers in a different order to hash to the same number.
    
    This commit is related to issue #1240.
  5. Properly init/release iterators in zunionInterGenericCommand().

    authored
    This commit does mainly two things:
    
    1) It fixes zunionInterGenericCommand() by removing mass-initialization
    of all the iterators used, so that we don't violate the unsafe iterator
    API of dictionaries. This fixes issue #1240.
    
    2) Since the zui* APIs required the allocator to be initialized in the
    zsetopsrc structure in order to use non-iterator related APIs, this
    commit fixes this strict requirement by accessing objects directly via
    the op->subject->ptr pointer we have to the object.
  6. dict.c iterator API misuse protection.

    authored
    dict.c allows the user to create unsafe iterators, that are iterators
    that will not touch the dictionary data structure in any way, preventing
    copy on write, but at the same time are limited in their usage.
    
    The limitation is that when itearting with an unsafe iterator, no call
    to other dictionary functions must be done inside the iteration loop,
    otherwise the dictionary may be incrementally rehashed resulting into
    missing elements in the set of the elements returned by the iterator.
    
    However after introducing this kind of iterators a number of bugs were
    found due to misuses of the API, and we are still finding
    bugs about this issue. The bugs are not trivial to track because the
    effect is just missing elements during the iteartion.
    
    This commit introduces auto-detection of the API misuse. The idea is
    that an unsafe iterator has a contract: from initialization to the
    release of the iterator the dictionary should not change.
    
    So we take a fingerprint of the dictionary state, xoring a few important
    dict properties when the unsafe iteartor is initialized. We later check
    when the iterator is released if the fingerprint is still the same. If it
    is not, we found a misuse of the iterator, as not allowed API calls
    changed the internal state of the dictionary.
    
    This code was checked against a real bug, issue #1240.
    
    This is what Redis prints (aborting) when a misuse is detected:
    
    Assertion failed: (iter->fingerprint == dictFingerprint(iter->d)),
    function dictReleaseIterator, file dict.c, line 587.
Commits on Aug 12, 2013
Commits on Aug 8, 2013
  1. redis-benchmark: changes to random arguments substitution.

    authored
    Before this commit redis-benchmark supported random argumetns in the
    form of :rand:000000000000. In every string of that form, the zeros were
    replaced with a random number of 12 digits at every command invocation.
    
    However this was far from perfect as did not allowed to generate simply
    random numbers as arguments, there was always the :rand: prefix.
    
    Now instead every argument in the form __rand_int__ is replaced with a
    12 digits number. Note that "__rand_int__" is 12 characters itself.
    
    In order to implement the new semantic, it was needed to change a few
    thigns in the internals of redis-benchmark, as new clients are created
    cloning old clients, so without a stable prefix such as ":rand:" the old
    way of cloning the client was no longer able to understand, from the old
    command line, what was the position of the random strings to substitute.
    
    Now instead a client structure is passed as a reference for cloning, so
    that we can directly clone the offsets inside the command line.
  2. redis-benchmark: replace snprintf()+memcpy with faster code.

    authored
    This change was profiler-driven, but the actual effect is hard to
    measure in real-world redis benchmark runs.
Commits on Aug 7, 2013
  1. Jan-Erik Rediger

    Little typo

    badboy authored committed
Something went wrong with that request. Please try again.