1. 02 May, 2016 1 commit
    • antirez's avatar
      BITFIELD command initial implementation. · 761a7728
      antirez authored
      The new bitfield command is an extension to the Redis bit operations,
      where not just single bit operations are performed, but the array of
      bits composing a string, can be addressed at random, not aligned
      offsets, with any width unsigned and signed integers like u8, s5, u10
      (up to 64 bit signed integers and 63 bit unsigned integers).
      
      The BITFIELD command supports subcommands that can SET, GET, or INCRBY
      those arbitrary bit counters, with multiple overflow semantics.
      
      Trivial and credits:
      
      A similar command was imagined a few times in the past, but for
      some reason looked a bit far fetched or not well specified.
      Finally the command was proposed again in a clear form by
      Yoav Steinberg from Redis Labs, that proposed a set of commands on
      arbitrary sized integers stored at bit offsets.
      
      Starting from this proposal I wrote an initial specification of a single
      command with sub-commands similar to what Yoav envisioned, using short
      names for types definitions, and adding control on the overflow.
      
      This commit is the resulting implementation.
      
      Examples:
      
          BITFIELD mykey OVERFLOW wrap INCRBY i2 10 -1 GET i2 10
      761a7728
  2. 19 Feb, 2016 3 commits
  3. 18 Feb, 2016 4 commits
  4. 15 Feb, 2016 1 commit
  5. 10 Feb, 2016 2 commits
  6. 05 Feb, 2016 2 commits
  7. 29 Jan, 2016 2 commits
    • antirez's avatar
      Typo ASII -> ASCII fixed in comment. · 0c7c7631
      antirez authored
      0c7c7631
    • antirez's avatar
      Cluster: include node IDs in SLOTS output. · 0f3fb009
      antirez authored
      CLUSTER SLOTS now includes IDs in the nodes description associated with
      a given slot range. Certain client libraries implementations need a way
      to reference a node in an unique way, so they were relying on CLUSTER
      NODES, that is not a stable API and may change frequently depending on
      Redis Cluster future requirements.
      0f3fb009
  8. 28 Jan, 2016 2 commits
  9. 27 Jan, 2016 1 commit
    • antirez's avatar
      Sentinel: improve handling of known Sentinel instances. · 6bd409d0
      antirez authored
      1. Bug #3035 is fixed (NULL pointer access). This was happening with the
         folling set of conditions:
      
      * For some reason one of the Sentinels, let's call it Sentinel_A, changed ID (reconfigured from scratch), but is as the same address at which it used to be.
      
      * Sentinel_A performs a failover and/or has a newer configuration compared to another Sentinel, that we call, Sentinel_B.
      
      * Sentinel_B receives an HELLO message from Sentinel_A, where the address and/or ID is mismatched, but it is reporting a newer configuration for the master they are both monitoring.
      
      2. Sentinels now must have an ID otherwise they are not loaded nor persisted in the configuration. This allows to have conflicting Sentinels with the same address since now the master->sentinels dictionary is indexed by Sentinel ID.
      
      3. The code now detects if a Sentinel is annoucing itself with an IP/port pair already busy (of another Sentinel). The old Sentinel that had the same port/pair is set as having port 0, that means, the address is invalid. We may discover the right address later via HELLO messages.
      6bd409d0
  10. 26 Jan, 2016 6 commits
  11. 25 Jan, 2016 16 commits