Permalink
Commits on Apr 23, 2014
  1. Read bulk reply length in one pass.

    See issue #1699.
    committed Apr 22, 2014
Commits on Apr 22, 2014
  1. redis-cli help.h updated.

    committed Apr 22, 2014
Commits on Apr 18, 2014
  1. PFCOUNT multi-key test added.

    committed Apr 18, 2014
Commits on Apr 17, 2014
  1. Speedup hllRawSum() processing 8 bytes per iteration.

    The internal HLL raw encoding used by PFCOUNT when merging multiple keys
    is aligned to 8 bits (1 byte per register) so we can exploit this to
    improve performances by processing multiple bytes per iteration.
    
    In benchmarks the new code was several times faster with HLLs with many
    registers set to zero, while no slowdown was observed with populated
    HLLs.
    committed Apr 17, 2014
  2. Speedup SUM(2^-reg[m]) in HyperLogLog computation.

    When the register is set to zero, we need to add 2^-0 to E, which is 1,
    but it is faster to just add 'ez' at the end, which is the number of
    registers set to zero, a value we need to compute anyway.
    committed Apr 17, 2014
  3. ZREMRANGEBYLEX implemented.

    committed Apr 17, 2014
Commits on Apr 16, 2014
  1. Pass by pointer and release of lex ranges.

    Given that the code was written with a 2 years pause... something
    strange happened in the middle. So there was no function to free a
    lex range min/max objects, and in some places the range was passed by
    value.
    committed Apr 16, 2014
  2. ZLEXCOUNT implemented.

    Like ZCOUNT for lexicographical ranges.
    committed Apr 16, 2014
  3. More HyperLogLog tests.

    committed Apr 16, 2014
  4. PFDEBUG TODENSE added.

    Converts HyperLogLogs from sparse to dense. Used for testing.
    committed Apr 16, 2014
Commits on Apr 15, 2014
Commits on Apr 14, 2014
  1. PFDEBUG ENCODING added.

    committed Apr 14, 2014
  2. Set HLL_SPARSE_MAX to 3000.

    After running a few benchmarks, 3000 looks like a reasonable value to
    keep HLLs with a few thousand elements small while the CPU cost is
    still not huge.
    
    This covers all the cases where the dense representation would use N
    orders of magnitude more space, like in the case of many HLLs with
    carinality of a few tens or hundreds.
    
    It is not impossible that in the future this gets user configurable,
    however it is easy to pick an unreasoable value just looking at savings
    in the space dimension without checking what happens in the time
    dimension.
    committed Apr 14, 2014
  3. Mark PFDEBUG as write command in the commands table.

    It is safer since it is able to have side effects.
    committed Apr 14, 2014
  4. Correctly replicate PFDEBUG GETREG.

    Even if it is a debugging command, make sure that when it forces a
    change in encoding, the command is propagated.
    committed Apr 14, 2014
  5. Added assertion in hllSparseAdd() when promotion to dense occurs.

    If we converted to dense, a register must be updated in the dense
    representation.
    committed Apr 14, 2014
  6. hllSparseAdd(): speed optimization.

    Mostly by reordering opcodes check conditional by frequency of opcodes
    in larger sparse-encoded HLLs.
    committed Apr 14, 2014
  7. hllSparseAdd(): faster code removing conditional.

    Bottleneck found profiling. Big run time improvement found when testing
    after the change.
    committed Apr 14, 2014
  8. Merge adjacent VAL opcodes in hllSparseAdd().

    As more values are added splitting ZERO or XZERO opcodes, try to merge
    adjacent VAL opcodes if they have the same value.
    committed Apr 14, 2014
  9. More robust HLL_SPARSE macros protecting 'p' with parens.

    Now the macros will work with arguments such as "ptr+1".
    committed Apr 14, 2014