- 11 Sep, 2018 16 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
All the occurrences translated, but the ones referring to SLAVEOF must be intact because that describe the actual Sentinel -> Redis protocol. In theory we could send REPLICAOF to Redis instances, but actually this would prevent Sentinel to be compatible with older Redis instances.
-
antirez authored
SENTINEL REPLICAS was added as an alias, in the configuration rewriting now it uses known-replica, however all the rest is basically at API level of logged events and messages having to do with the protocol, so there is very little to do here compared to the Redis core itself, to preserve compatibility.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
Aliases added for all the commands mentioning slave. Moreover CONFIG REWRITE will use the new names, and will be able to reuse the old lines mentioning the old options.
-
antirez authored
-
antirez authored
--slave alias remains but is undocumented, just for backward compatibiltiy.
-
antirez authored
-
- 07 Sep, 2018 4 commits
-
-
Salvatore Sanfilippo authored
Use geohash limit defines in constraint check
-
Salvatore Sanfilippo authored
CLI Help text loop verifies arg count
-
Salvatore Sanfilippo authored
sentinel: fix randomized sentinelTimer.
-
Salvatore Sanfilippo authored
bio: fix bioWaitStepOfType.
-
- 06 Sep, 2018 2 commits
-
-
Salvatore Sanfilippo authored
fix usage typo in redis-cli
-
Weiliang Li authored
-
- 05 Sep, 2018 7 commits
-
-
antirez authored
-
antirez authored
See issue #5250 and issue #5292 for more info.
-
antirez authored
Here the idea is that we do not want freeMemoryIfNeeded() to propagate a DEL command before the script and change what happens in the script execution once it reaches the slave. For example see this potential issue (in the words of @soloestoy): On master, we run the following script: if redis.call('get','key') then redis.call('set','xxx','yyy') end redis.call('set','c','d') Then when redis attempts to execute redis.call('set','xxx','yyy'), we call freeMemoryIfNeeded(), and the key may get deleted, and because redis.call('set','xxx','yyy') has already been executed on master, this script will be replicated to slave. But the slave received "DEL key" before the script, and will ignore maxmemory, so after that master has xxx and c, slave has only one key c. Note that this patch (and other related work) was authored collaboratively in issue #5250 with the help of @soloestoy and @oranagra. Related to issue #5250.
-
antirez authored
See issue #5250 and the new comments added to the code in this commit for details.
-
antirez authored
Related to #5250.
-
youjiali1995 authored
-
youjiali1995 authored
-
- 04 Sep, 2018 7 commits
-
-
antirez authored
See #5304.
-
antirez authored
-
Salvatore Sanfilippo authored
networking: fix unexpected negative or zero readlen
-
Sascha Roland authored
The conclusion, that a xread request can be answered syncronously in case that the stream's last_id is larger than the passed last-received-id parameter, assumes, that there must be entries present, which could be returned immediately. This assumption fails for empty streams that actually contained some entries which got removed by xdel, ... . As result, the client is answered synchronously with an empty result, instead of blocking for new entries to arrive. An additional check for a non-empty stream is required.
-
Salvatore Sanfilippo authored
Fix typo
-
Salvatore Sanfilippo authored
networking: optimize parsing large bulk greater than 32k
-
maya-rv authored
-
- 03 Sep, 2018 4 commits
-
-
antirez authored
-
Salvatore Sanfilippo authored
fix multiple unblock for clientsArePaused()
-
antirez authored
Related to #5305.
-
zhaozhao.zz authored
If we are going to read a large object from network try to make it likely that it will start at c->querybuf boundary so that we can optimize object creation avoiding a large copy of data. But only when the data we have not parsed is less than or equal to ll+2. If the data length is greater than ll+2, trimming querybuf is just a waste of time, because at this time the querybuf contains not only our bulk. It's easy to reproduce the that: Time1: call `client pause 10000` on slave. Time2: redis-benchmark -t set -r 10000 -d 33000 -n 10000. Then slave hung after 10 seconds.
-