1. 14 Apr, 2014 3 commits
    • antirez's avatar
      hllSparseAdd(): more correct dense conversion conditional. · 3b200035
      antirez authored
      We want to promote if the total string size exceeds the resulting size
      after the upgrade.
      3b200035
    • antirez's avatar
      hllSparseToDense(): sanity check added. · b7571b74
      antirez authored
      The function checks if all the HLL_REGISTERS were processed during the
      convertion from sparse to dense encoding, returning REDIS_OK or
      REDIS_ERR to signal a corruption problem.
      
      A bug in PFDEBUG GETREG was fixed: when the object is converted to the
      dense representation we need to reassign the new pointer to the header
      structure pointer.
      b7571b74
    • antirez's avatar
      PFDEBUG DECODE added. · f9dc3cb0
      antirez authored
      Provides a human readable description of the opcodes composing a
      run-length encoded HLL (sparse encoding).
      The command is only useful for debugging / development tasks.
      f9dc3cb0
  2. 13 Apr, 2014 3 commits
  3. 12 Apr, 2014 10 commits
  4. 11 Apr, 2014 4 commits
  5. 10 Apr, 2014 1 commit
    • antirez's avatar
      HyperLogLog sparse representation slightly modified. · 9c037ba8
      antirez authored
      After running a few simulations with different alternative encodings,
      it was found that the VAL opcode performs better using 5 bits for the
      value and 2 bits for the run length, at least for cardinalities in the
      range of interest.
      9c037ba8
  6. 09 Apr, 2014 1 commit
  7. 04 Apr, 2014 2 commits
    • antirez's avatar
      PFCOUNT: always unshare/decode the object. · d5be696d
      antirez authored
      This will be a non-op most of the times since the object will be
      unshared / decoded, however it is more technically correct to start this
      way since the object may be decoded even in the read-only code path.
      d5be696d
    • antirez's avatar
      Changed HyperLogLog hash seed to a non-zero value. · 433ce7f8
      antirez authored
      Using a seed of zero has the side effect of having the empty string
      hashing to what is a very special case in the context of HyperLogLog: a
      very long run of zeroes.
      
      This did not influenced the correctness of the result with 16k registers
      because of the harmonic mean, but still it is inconvenient that a so
      obvious value maps to a so special hash.
      
      The seed 0xadc83b19 is used instead, which is the first 64 bits of the
      SHA1 of the empty string.
      
      Reference: issue #1657.
      433ce7f8
  8. 03 Apr, 2014 6 commits
  9. 02 Apr, 2014 1 commit
    • antirez's avatar
      HyperLogLog: added magic / version. · 096b5e92
      antirez authored
      This will allow future changes like compressed representations.
      Currently the magic is not checked for performance reasons but this may
      change in the future, for example if we add new types encoded in strings
      that may have the same size of HyperLogLogs.
      096b5e92
  10. 01 Apr, 2014 3 commits
  11. 31 Mar, 2014 6 commits