- 12 Feb, 2013 6 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
SELECT was still transmitted to slaves using the inline protocol, that is conceived mostly for humans to type into telnet sessions, and is notably not understood by redis-cli --slave. Now the new protocol is used instead.
-
antirez authored
A Redis master sends PING commands to slaves from time to time: doing this ensures that even if absence of writes, the master->slave channel remains active and the slave can feel the master presence, instead of closing the connection for timeout. This commit changes the way PINGs are sent to slaves in order to use the standard interface used to replicate all the other commands, that is, the function replicationFeedSlaves(). With this change the stream of commands sent to every slave is exactly the same regardless of their exact state (Transferring RDB for first synchronization or slave already online). With the previous implementation the PING was only sent to online slaves, with the result that the output stream from master to slaves was not identical for all the slaves: this is a problem if we want to implement partial resyncs in the future using a global replication stream offset. TL;DR: this commit should not change the behaviour in practical terms, but is just something in preparation for partial resynchronization support.
-
antirez authored
Before this commit every Redis slave had its own selected database ID state. This was not actually useful as the emitted stream of commands is identical for all the slaves. Now the the currently selected database is a global state that is set to -1 when a new slave is attached, in order to force the SELECT command to be re-emitted for all the slaves. This change is useful in order to implement replication partial resynchronization in the future, as makes sure that the stream of commands received by slaves, including SELECT commands, are exactly the same for every slave connected, at any time. In this way we could have a global offset that can identify a specific piece of the master -> slaves stream of commands.
-
- 11 Feb, 2013 1 commit
-
-
antirez authored
-
- 09 Feb, 2013 1 commit
-
-
antirez authored
-
- 08 Feb, 2013 5 commits
- 07 Feb, 2013 1 commit
-
-
antirez authored
-
- 05 Feb, 2013 6 commits
-
-
antirez authored
-
charsyam authored
Further details from @antirez: It was reported by @StopForumSpam on Twitter that the Redis replication link was strangely using multiple TCP packets for multiple commands. This wastes a lot of bandwidth and is due to the TCP_NODELAY option we enable on the socket after accepting a new connection. However the master -> slave channel is a one-way channel since Redis replication is asynchronous, so there is no point in trying to reduce the latency, we should aim to reduce the bandwidth. For this reason this commit introduces the ability to disable the nagle algorithm on the socket after a successful SYNC. This feature is off by default because the delay can be up to 40 milliseconds with normally configured Linux kernels.
-
antirez authored
-
Salvatore Sanfilippo authored
Make redis test suite tcl version agnostic, v2
-
Salvatore Sanfilippo authored
retval doesn't initalized
-
Rock Li authored
If each if conditions are all fail, variable retval will under uninitlized
-
- 04 Feb, 2013 3 commits
-
-
Salvatore Sanfilippo authored
Fix a few typos and improve grammar of redis.conf
-
Salvatore Sanfilippo authored
Fix a bug in srandmemberWithCountCommand()
-
Gengliang Wang authored
In CASE 2, the call sunionDiffGenericCommand will involve the string "srandmember" > sadd foo one (integer 1) > sadd srandmember two (integer 2) > srandmember foo 3 1)"one" 2)"two"
-
- 03 Feb, 2013 1 commit
-
-
David Celis authored
Make several edits to the example redis.conf configuration file for improved flow and grammar. Signed-off-by:
David Celis <me@davidcel.is>
-
- 31 Jan, 2013 2 commits
-
-
antirez authored
-
Salvatore Sanfilippo authored
fix comments forgotten in #285 (zipmap -> ziplist)
-
- 29 Jan, 2013 2 commits
- 28 Jan, 2013 12 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
When keyspace events are enabled, the overhead is not sever but noticeable, so this commit introduces the ability to select subclasses of events in order to avoid to generate events the user is not interested in. The events can be selected using redis.conf or CONFIG SET / GET.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
decrRefCount used to get its argument as a void* pointer in order to be used as destructor where a 'void free_object(void*)' prototype is expected. However this made simpler to introduce bugs by freeing the wrong pointer. This commit fixes the argument type and introduces a new wrapper called decrRefCountVoid() that can be used when the void* argument is needed.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-