- 03 Feb, 2014 2 commits
- 31 Jan, 2014 5 commits
-
-
antirez authored
The Redis test uses a server-clients model in order to parallelize the execution of different tests. However in recent versions of osx not setting the channel to a binary encoding caused issues even if AFAIK no binary data is really sent via this channel. However now the channels are deliberately set to a binary encoding and this solves the issue. The exact issue was the test not terminating and giving the impression of running forever, since test clients or servers were unable to exchange the messages to continue.
-
antirez authored
-
antirez authored
This is especially important since we already have a concept of backlog (the replication backlog).
-
Nenad Merdanovic authored
In high RPS environments, the default listen backlog is not sufficient, so giving users the power to configure it is the right approach, especially since it requires only minor modifications to the code.
-
antirez authored
This fixes issue #1530.
-
- 28 Jan, 2014 2 commits
- 25 Jan, 2014 1 commit
-
-
antirez authored
-
- 22 Jan, 2014 3 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
Incremental flushing in rio.c is only used to avoid huge kernel buffers synched to slow disks creating big latency spikes, so this fix has no durability implications, however it is certainly more correct to make sure that the FILE buffers are flushed to the kernel before calling fsync on the file descriptor. Thanks to Li Shao Kai for reporting this issue in the Redis mailing list.
-
- 14 Jan, 2014 2 commits
- 13 Jan, 2014 13 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
The new command allows to change master-specific configurations at runtime. All the settable parameters can be retrivied via the SENTINEL MASTER command, so there is no equivalent "GET" command.
-
antirez authored
-
antirez authored
The command totally removes a monitored master.
-
antirez authored
The claim about unlinking the instance from the connected hash tables was the opposite of the reality. Also the current actual behavior is safer in most cases, so it is better to manually unlink when needed.
-
antirez authored
-
antirez authored
-
antirez authored
It allows to add new masters to monitor at runtime.
-
antirez authored
The new function is used when we want to normalize an IP address without performing a DNS lookup if the string to resolve is not a valid IP. This is useful every time only IPs are valid inputs or when we want to skip DNS resolution that is slow during runtime operations if we are required to block.
-
antirez authored
With SENTINEL MASTERS it was already possible to list all the configured masters, but not a specific one.
-
antirez authored
Note: the auth password with the master is voluntarily not exposed.
-
antirez authored
-
- 09 Jan, 2014 2 commits
- 08 Jan, 2014 4 commits
-
-
antirez authored
Fixes issue #1491 on Github.
-
antirez authored
-
antirez authored
Masters not understanding REPLCONF ACK will reply with errors to our requests causing a number of possible issues. This commit detects a global replication offest set to -1 at the end of the replication, and marks the client representing the master with the REDIS_PRE_PSYNC flag. Note that this flag was called REDIS_PRE_PSYNC_SLAVE but now it is just REDIS_PRE_PSYNC as it is used for both slaves and masters starting with this commit. This commit fixes issue #1488.
-
antirez authored
-
- 25 Dec, 2013 5 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
Durign a refactoring I mispelled _port for port. This is one of the reasons I never used _varname myself.
-
antirez authored
-
antirez authored
Now the socket is closed if anetNonBlock() fails, and in general the code structure makes it harder to introduce this kind of bugs in the future. Reference: pull request #1059.
-
- 23 Dec, 2013 1 commit
-
-
antirez authored
There were two problems with the implementation. 1) "save" was not correctly processed when no save point was configured, as reported in issue #1416. 2) The way the code checked if an option existed in the "processed" dictionary was wrong, as we add the element with as a key associated with a NULL value, so dictFetchValue() can't be used to check for existance, but dictFind() must be used, that returns NULL only if the entry does not exist at all.
-