- 17 Jul, 2015 5 commits
-
-
antirez authored
-
Jan-Erik Rediger authored
-
MOON_CLJ authored
-
Yongyue Sun authored
Signed-off-by:
Yongyue Sun <abioy.sun@gmail.com>
-
Tom Kiemes authored
aof_delayed_fsync was not set to 0 when calling CONFIG RESETSTAT
-
- 16 Jul, 2015 2 commits
-
-
antirez authored
The previos attempt to process each client at least once every ten seconds was not a good idea, because: 1. Usually because of the past min iterations set to 50, you get much better processing period most of the times. 2. However when there are many clients and a normal setting for server.hz, the edge case is triggered, and waiting 10 seconds for a BLPOP that asked for 1 second is not ok. 3. Moreover, because of the high min-itereations limit of 50, when HZ was set to an high value, the actual behavior was to process a lot of clients per second. Also the function checking for timeouts called gettimeofday() at each iteration which can be costly. The new implementation will try to process each client once per second, gets the current time as argument, and does not attempt to process more than 5 clients per iteration if not needed. So now: 1. The CPU usage of an idle Redis process is the same or better. 2. The CPU usage of a busy Redis process is the same or better. 3. However a non trivial amount of work may be performed per iteration when there are many many clients. In this particular case the user may want to raise the "HZ" value if needed. Btw with 4000 clients it was still not possible to noticy any actual latency created by processing 400 clients per second, since the work performed for each client is pretty small.
-
antirez authored
-
- 13 Jul, 2015 1 commit
-
-
antirez authored
The new return value is the number of keys existing, among the ones specified in the command line, counting the same key multiple times if given multiple times (and if it exists). See PR #2667.
-
- 11 Jun, 2015 5 commits
-
-
linfangrong authored
-
antirez authored
We usually want to reach the master using the address of the interface Redis is bound to (via the "bind" config option). That's useful since the master will get (and publish) the slave address getting the peer name of the incoming socket connection from the slave. However, when this is not possible, for example because the slave is bound to the loopback interface but repliaces from a master accessed via an external interface, we want to still connect with the master even from a different interface: in this case it is not really important that the master will provide any other address, while it is vital to be able to replicate correctly. Related to issues #2609 and #2612.
-
antirez authored
This performs a best effort source address binding attempt. If it is possible to bind the local address and still have a successful connect(), then this socket is returned. Otherwise the call is retried without source address binding attempt. Related to issues #2609 and #2612.
-
antirez authored
Two code paths jumped to the "ok, return the socket to the user" code path to handle error conditions. Related to issues #2609 and #2612.
-
antirez authored
Related to issues #2609 and #2612.
-
- 04 Jun, 2015 1 commit
-
-
antirez authored
-
- 03 Jun, 2015 1 commit
-
-
Ben Murphy authored
-
- 29 May, 2015 5 commits
-
-
Itamar Haber authored
DEL/INCR/DECR and others could be NTH but apparently never made it to the implementation of SORT
-
antirez authored
From Twitter: "@antirez that’s an awfully-named command :( http://en.wikipedia.org/wiki/Retching"
-
antirez authored
Normally ZADD only returns the number of elements added to a sorted set, using the RETCH option it returns the sum of elements added or for which the score was updated.
-
antirez authored
-
antirez authored
-
- 25 May, 2015 1 commit
-
-
therealbill authored
This new command triggers a config flush to save the in-memory config to disk. This is useful for cases of a configuration management system or a package manager wiping out your sentinel config while the process is still running - and has not yet been restarted. It can also be useful for scripting a backup and migrate or clone of a running sentinel.
-
- 19 May, 2015 1 commit
-
-
antirez authored
A way for monitoring systems to check that Sentinel is technically able to reach the quorum and failover, using the currently visible Sentinels.
-
- 15 May, 2015 3 commits
-
-
antirez authored
-
Glenn Nethercutt authored
uphold the smove contract to return 0 when the element is not a member of the source set, even if source=dest
-
Jungtaek Lim authored
-
- 05 May, 2015 1 commit
-
-
antirez authored
-
- 04 May, 2015 7 commits
-
-
FuGangqiang authored
-
FuGangqiang authored
-
FuGangqiang authored
-
therealbill authored
Originally, only the +slave event which occurs when a slave is reconfigured during sentinelResetMasterAndChangeAddress triggers a flush of the config to disk. However, newly discovered slaves don't apparently trigger this flush but do trigger the +slave event issuance. So if you start up a sentinel, add a master, then add a slave to the master (as a way to reproduce it) you'll see the +slave event issued, but the sentinel config won't be updated with the known-slave entry. This change makes sentinel do the flush of the config if a new slave is deteted in sentinelRefreshInstanceInfo.
-
antirez authored
To rewrite the config in the loop that adds slaves back after a master reset, in order to handle switching to another master, is useless: it just adds latency since there is an fsync call in the inner loop, without providing any additional guarantee, but the contrary, since if after the first loop iteration the server crashes we end with just a single slave entry losing all the other informations. It is wiser to rewrite the config at the end when the full new state is configured.
-
Yossi Gottlieb authored
limit.
-
clark.kang authored
-
- 27 Apr, 2015 1 commit
-
-
antirez authored
-
- 01 Apr, 2015 4 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
When we fail to setup the write handler it does not make sense to take the client around, it is missing writes: whatever is a client or a slave anyway the connection should terminated ASAP. Moreover what the function does exactly with its return value, and in which case the write handler is installed on the socket, was not clear, so the functions comment are improved to make the goals of the function more obvious. Also related to #2485.
-
Oran Agra authored
master was closing the connection if the RDB transfer took long time. and also sent PINGs to the slave before it got the initial ACK, in which case the slave wouldn't be able to find the EOF marker.
-
- 27 Mar, 2015 1 commit
-
-
antirez authored
rehashidx is always positive in the two code paths, since the only negative value it could have is -1 when there is no rehashing in progress, and the condition is explicitly checked.
-
- 24 Mar, 2015 1 commit
-
-
antirez authored
-