|
Revision tags: 8.0-m02, 6.2.16, 7.2.6, 7.4.1, 8.0-m01, 7.4.0, 7.4-rc2, 7.4-rc1, 7.2.5, 7.2.4, 7.0.15, 7.2.3, 7.2.2, 7.0.14, 6.2.14, 6.2.15, 7.2.1, 7.0.13, 7.2.0, 7.2-rc3, 7.0.12, 6.2.13, 6.0.20, 7.2-rc2, 6.0.19, 6.2.12, 7.0.11, 7.2-rc1, 7.0.10, 7.0.9, 6.2.11, 6.0.18, 6.2.10, 6.0.17, 6.2.9, 7.0.8, 7.0.7, 7.0.6, 6.2.8, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 7.0.0, 6.2.7, 7.0-rc3, 7.0-rc2, 7.0-rc1, 6.2.6, 6.0.16, 5.0.14, 5.0.13, 6.0.15, 6.2.5, 6.0.14, 6.2.4, 6.2.3, 6.0.13, 6.2.2, 6.2.1, 6.0.12, 5.0.12, 6.0.11, 6.2.0, 5.0.11, 6.2-rc3, 6.0.10, 6.2-rc2, 6.2-rc1, 6.0.9, 5.0.10, 6.0.8, 6.0.7, 6.0.6, 6.0.5, 6.0.4, 6.0.3, 6.0.2, 6.0.1, 6.0.0, 5.0.9, 6.0-rc4, 6.0-rc3, 5.0.8, 6.0-rc2, 6.0-rc1, 5.0.7, 5.0.6, 5.0.5, 3.2.13, 4.0.14, 5.0.4, 4.0.13, 5.0.3, 4.0.12, 5.0.2, 5.0.1, 5.0.0, 5.0-rc6, 5.0-rc5, 4.0.11, 5.0-rc4, 5.0-rc3, 5.0-rc2, 4.0.10, 3.2.12, 5.0-rc1, 4.0.9, 4.0.8, 4.0.7, 4.0.6, 4.0.5, 4.0.4, 4.0.3, 3.2.11, 4.0.2, 3.2.10, 4.0.1, 4.0.0, 3.2.9, 4.0-rc3, 3.2.8, 3.2.7, 3.2.6, 4.0-rc2, 4.0-rc1, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.2.0-rc3, 3.0.7, 3.2.0-rc2, 3.2-rc1, 3.0.6, 2.8.24, 3.0.5, 2.8.23, 2.8.22, 3.0.4 |
|
| #
32f80e2f |
| 27-Jul-2015 |
antirez <[email protected]> |
RDMF: More consistent define names.
|
| #
40eb548a |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: REDIS_OK REDIS_ERR -> C_OK C_ERR.
|
| #
2d9e3eb1 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: redisAssert -> serverAssert.
|
| #
14ff5724 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: OBJ_ macros for object related stuff.
|
| #
554bd0e7 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: use client instead of redisClient, like Disque.
|
| #
cef054e8 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF (Redis/Disque merge friendlyness) refactoring WIP 1.
|
|
Revision tags: 3.0.3, 3.0.2, 2.8.21, 2.8.20, 3.0.1, 3.0.0, 3.0.0-rc6, 3.0.0-rc5, 3.0.0-rc4, 3.0.0-rc3, 3.0.0-rc2, 2.8.19 |
|
| #
06e76bc3 |
| 10-Dec-2014 |
antirez <[email protected]> |
Better read-only behavior for expired keys in slaves.
Slaves key expire is orchestrated by the master. Sometimes the master will send the synthesized DEL to expire keys on the slave with a non trivi
Better read-only behavior for expired keys in slaves.
Slaves key expire is orchestrated by the master. Sometimes the master will send the synthesized DEL to expire keys on the slave with a non trivial delay (when the key is not accessed, only the incremental expiry algorithm will expire it in background).
During that time, a key is logically expired, but slaves still return the key if you GET (or whatever) it. This is a bad behavior.
However we can't simply trust the slave view of the key, since we need the master to be able to send write commands to update the slave data set, and DELs should only happen when the key is expired in the master in order to ensure consistency.
However 99.99% of the issues with this behavior is when a client which is not a master sends a read only command. In this case we are safe and can consider the key as non existing.
This commit does a few changes in order to make this sane:
1. lookupKeyRead() is modified in order to return NULL if the above conditions are met. 2. Calls to lookupKeyRead() in commands actually writing to the data set are repliaced with calls to lookupKeyWrite().
There are redundand checks, so for example, if in "2" something was overlooked, we should be still safe, since anyway, when the master writes the behavior is to don't care about what expireIfneeded() returns.
This commit is related to #1768, #1770, #2131.
show more ...
|
|
Revision tags: 2.8.18 |
|
| #
5bd3b9d9 |
| 02-Dec-2014 |
antirez <[email protected]> |
Over 80 chars comment trimmed in pfcountCommand().
|
|
Revision tags: 3.0.0-rc1, 2.8.17, 2.8.16, 2.8.15, 2.8.14 |
|
| #
edca2b14 |
| 13-Aug-2014 |
antirez <[email protected]> |
Remove warnings and improve integer sign correctness.
|
|
Revision tags: 3.0.0-beta8 |
|
| #
0adf4482 |
| 23-Jul-2014 |
antirez <[email protected]> |
PFSELFTEST: less false positives.
This is just a quickfix, for the nature of the test the right way to fix it is to average the error of N runs, since otherwise it is always possible to get a false
PFSELFTEST: less false positives.
This is just a quickfix, for the nature of the test the right way to fix it is to average the error of N runs, since otherwise it is always possible to get a false positive with a bad run, or to minimize too much this possibility we may end testing with too much "large" error ranges.
show more ...
|
|
Revision tags: 2.8.13, 3.0.0-beta7, 2.8.12, 2.8.11, 3.0.0-beta6, 2.8.10, 3.0.0-beta5, 3.0.0-beta4 |
|
| #
ba52cd06 |
| 18-May-2014 |
Mike Trinkala <[email protected]> |
Correct the HyperLogLog stale cache flag to prevent unnecessary computations.
Set the MSB as documented.
|
|
Revision tags: 3.0.0-beta3, 2.8.9 |
|
| #
5eb7ac0c |
| 17-Apr-2014 |
antirez <[email protected]> |
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 im
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.
show more ...
|
| #
192a2132 |
| 17-Apr-2014 |
antirez <[email protected]> |
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 regist
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.
show more ...
|
| #
0feb2aab |
| 17-Apr-2014 |
antirez <[email protected]> |
PFCOUNT support for multi-key union.
|
| #
fcd2155b |
| 17-Apr-2014 |
antirez <[email protected]> |
HyperLogLog low level merge extracted from PFMERGE.
|
| #
8e8f8189 |
| 16-Apr-2014 |
antirez <[email protected]> |
HyperLogLog invalid representation error code set to INVALIDOBJ.
|
| #
0bbdaca6 |
| 16-Apr-2014 |
antirez <[email protected]> |
PFDEBUG TODENSE added.
Converts HyperLogLogs from sparse to dense. Used for testing.
|
| #
402110f9 |
| 15-Apr-2014 |
antirez <[email protected]> |
User-defined switch point between sparse-dense HLL encodings.
|
| #
d541f65d |
| 15-Apr-2014 |
antirez <[email protected]> |
PFSELFTEST improved with sparse encoding checks.
|
| #
dde8dff7 |
| 14-Apr-2014 |
antirez <[email protected]> |
PFDEBUG ENCODING added.
|
| #
54f0156e |
| 14-Apr-2014 |
antirez <[email protected]> |
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
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.
show more ...
|
| #
848d0461 |
| 14-Apr-2014 |
antirez <[email protected]> |
Error message for invalid HLL objects unified.
|
| #
81ceef7d |
| 14-Apr-2014 |
antirez <[email protected]> |
PFMERGE fixed to work with sparse encoding.
|
| #
3bc35f9c |
| 14-Apr-2014 |
antirez <[email protected]> |
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.
|
| #
ba0afb45 |
| 14-Apr-2014 |
antirez <[email protected]> |
Added assertion in hllSparseAdd() when promotion to dense occurs.
If we converted to dense, a register must be updated in the dense representation.
|