- 09 Dec, 2015 1 commit
-
-
antirez authored
-
- 27 Nov, 2015 1 commit
-
-
antirez authored
-
- 09 Nov, 2015 2 commits
-
-
antirez authored
-
antirez authored
The old version only flushed data to slaves if there were strings pending in the client->reply list. Now also static buffers are flushed. Does not help to free memory (which is the only use we have right now in the fuction), but is more correct conceptually, and may be used in other contexts.
-
- 21 Oct, 2015 1 commit
-
-
antirez authored
Sometimes it can be useful for clients to completely disable replies from the Redis server. For example when the client sends fire and forget commands or performs a mass loading of data, or in caching contexts where new data is streamed constantly. In such contexts to use server time and bandwidth in order to send back replies to clients, which are going to be ignored, is a shame. Multiple mechanisms are possible to implement such a feature. For example it could be a feature of MULTI/EXEC, or a command prefix such as "NOREPLY SADD myset foo", or a different mechanism that allows to switch on/off requests using the CLIENT command. The MULTI/EXEC approach has the problem that transactions are not strictly part of the no-reply semantics, and if we want to insert a lot of data in a bulk way, creating a huge MULTI/EXEC transaction in the server memory is bad. The prefix is the best in this specific use case since it does not allow desynchronizations, and is pretty clear semantically. However Redis internals and client libraries are not prepared to handle this currently. So the implementation uses the CLIENT command, providing a new REPLY subcommand with three options: CLIENT REPLY OFF disables the replies, and does not reply itself. CLIENT REPLY ON re-enables the replies, replying +OK. CLIENT REPLY SKIP only discards the reply of the next command, and like OFF does not reply anything itself. The reason to add the SKIP command is that it allows to have an easy way to send conceptually "single" commands that don't need a reply as the sum of two pipelined commands: CLIENT REPLY SKIP SET key value Note that CLIENT REPLY ON replies with +OK so it should be used when sending multiple commands that don't need a reply. However since it replies with +OK the client can check that the connection is still active and all the previous commands were received. This is currently just into Redis "unstable" so the proposal can be modified or abandoned based on users inputs.
-
- 01 Oct, 2015 2 commits
- 30 Sep, 2015 9 commits
-
-
antirez authored
-
antirez authored
After the introduction of the list with clients with pending writes, to process clients incrementally outside of the event loop we also need to process the pending writes list.
-
antirez authored
-
antirez authored
-
antirez authored
May potentially improve locality... not exactly clear if this makes a difference or not. But for sure is harmless.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
- 06 Aug, 2015 2 commits
-
-
antirez authored
Talking with @oranagra we had to reason a little bit to understand if this function could ever flush the output buffers of the wrong slaves, having online state but actually not being ready to receive writes before the first ACK is received from them (this happens with diskless replication). Next time we'll just read this comment.
-
antirez authored
Add the concept of slaves capabilities to Redis, the slave now presents to the Redis master with a set of capabilities in the form: REPLCONF capa SOMECAPA capa OTHERCAPA ... This has the effect of setting slave->slave_capa with the corresponding SLAVE_CAPA macros that the master can test later to understand if it the slave will understand certain formats and protocols of the replication process. This makes it much simpler to introduce new replication capabilities in the future in a way that don't break old slaves or masters. This patch was designed and implemented together with Oran Agra (@oranagra).
-
- 28 Jul, 2015 3 commits
- 27 Jul, 2015 1 commit
-
-
antirez authored
-
- 26 Jul, 2015 6 commits
- 25 Jul, 2015 1 commit
-
-
antirez authored
-
- 14 Jul, 2015 1 commit
-
-
Oran Agra authored
-
- 23 Jun, 2015 1 commit
-
-
antirez authored
1. We no longer use a fake client but just rewriting. 2. We group all the inserts into a single ZADD dispatch (big speed win). 3. As a side effect of the correct implementation, replication works. 4. The return value of the command is now correct.
-
- 12 May, 2015 1 commit
-
-
Jungtaek Lim authored
-
- 26 Apr, 2015 1 commit
-
-
Yossi Gottlieb authored
limit.
-
- 01 Apr, 2015 1 commit
-
-
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.
-
- 31 Mar, 2015 1 commit
-
-
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.
-
- 30 Mar, 2015 1 commit
-
-
antirez authored
Change done in order to remove a warning and improve code robustness. No actual bug here.
-
- 21 Mar, 2015 2 commits
-
-
antirez authored
1. No need to set btype in processUnblockedClients(), since clients flagged REDIS_UNBLOCKED should have it already cleared. 2. When putting clients in the unblocked clients list, clientsArePaused() should flag them with REDIS_UNBLOCKED. Not strictly needed with the current code but is more coherent.
-
antirez authored
When the list of unblocked clients were processed, btype was set to blocking type none, but the client remained flagged with REDIS_BLOCKED. When timeout is reached (or when the client disconnects), unblocking it will trigger an assertion. There is no need to process pending requests from blocked clients, so now clientsArePaused() just avoid touching blocked clients. Close #2467.
-
- 11 Mar, 2015 1 commit
-
-
antirez authored
Still many things to convert inside config.c in the next commits. Some const safety in String objects creation and addReply() family functions.
-
- 27 Feb, 2015 1 commit
-
-
antirez authored
Thanks to @codeslinger (Toby DiPasquale) for identifying the issue. Related to issue #2409.
-