- 05 Jul, 2013 2 commits
-
-
antirez authored
-
- 04 Jul, 2013 1 commit
-
-
antirez authored
-
- 12 Jun, 2013 1 commit
-
-
antirez authored
-
- 11 Jun, 2013 1 commit
-
-
antirez authored
-
- 03 May, 2013 5 commits
-
-
antirez authored
When the PONG delay is half the cluster node timeout, the link gets disconnected (and later automatically reconnected) in order to ensure that it's not just a dead connection issue. However this operation is only performed if the link is old enough, in order to avoid to disconnect the same link again and again (and among the other problems, never receive the PONG because of that). Note: when the link is reconnected, the 'ping_sent' field is not updated even if a new ping is sent using the new connection, so we can still reliably detect a node ping timeout.
-
antirez authored
-
antirez authored
-
antirez authored
Also clusterBroadcastPing() was renamed into clusterBroadcastPong() that's what the function is actually doing.
-
antirez authored
-
- 19 Apr, 2013 1 commit
-
-
xiaost7 authored
It was %40s instead of %.40s, and since the string is not null terminated it caused random garbage to be displayed, and possibly a crash.
-
- 09 Apr, 2013 3 commits
-
-
antirez authored
-
antirez authored
We used to copy this value into the server.cluster structure, however this was not necessary. The reason why we don't directly use server.cluster->node_timeout is that things that can be configured via redis.conf need to be directly available in the server structure as server.cluster is allocated later only if needed in order to reduce the memory footprint of non-cluster instances.
-
antirez authored
-
- 08 Apr, 2013 1 commit
-
-
antirez authored
In commit d728ec6d it was introduced the concept of sending a ping to every node not receiving a ping since node_timeout/2 seconds. However the code was located in a place that was not executed because of a previous conditional causing the loop to re-iterate. This caused false positives in nodes availability detection. The current code is still not perfect as a node may be detected to be in PFAIL state even if it does not reply for just node_timeout/2 seconds that is not correct. There is a plan to improve this code ASAP.
-
- 04 Apr, 2013 2 commits
- 25 Mar, 2013 2 commits
- 21 Mar, 2013 1 commit
-
-
antirez authored
-
- 20 Mar, 2013 4 commits
-
-
antirez authored
This way we make sure every time a master is turned into a replica the flag will be cleared.
-
antirez authored
When a master turns into a slave after a failover event, make sure to clear the assigned slots before setting up the replication, as a slave should never claim slots in an explicit way, but just take over the master slots when replacing its master.
-
antirez authored
A slave node set this flag for itself when, after receiving authorization from the majority of nodes, it turns itself into a master. At the same time now this flag is tested by nodes receiving a PING message before reconfiguring after a failover event. This makes the system more robust: even if currently there is no way to manually turn a slave into a master it is possible that we'll have such a feature in the future, or that simply because of misconfiguration a node joins the cluster as master while others believe it's a slave. This alone is now no longer enough to trigger reconfiguration as other nodes will check for the PROMOTED flag. The PROMOTED flag is cleared every time the node is turned back into a replica of some other node.
-
antirez authored
Sender flags were not propagated for the sender, but only for nodes in the gossip section. This is odd and in the next commits we'll need to get updated flags for the sender node, so this commit adds a new field in the cluster messages header. The message header is the same size as we reused some free space that was marked as 'unused' because of alignment concerns.
-
- 19 Mar, 2013 3 commits
-
-
antirez authored
So when the failing master node is back in touch with the cluster, instead of remaining unused it is converted into a replica of the new master, ready to perform the fail over if the new master node will fail at some point. Note that as a side effect clients with stale configuration are now not an issue as well, as the node converted into a slave will not accept queries but will redirect clients accordingly.
-
antirez authored
The code handling a master that turns into a slave or the contrary was improved in order to avoid repeating the same operations. Also the readability and conceptual simplicity was improved.
-
antirez authored
It's just a simpler way to CLUSTER DELSLOTS with all the slots as arguments, in order to obtain a node without assigned slots for reconfiguration.
-
- 15 Mar, 2013 10 commits
-
-
antirez authored
-
antirez authored
-
antirez authored
Redis Cluster can cope with a minority of nodes not informed about the failure of a master in time for some reason (netsplit or node not functioning properly, blocked, ...) however to wait a few seconds before to start the failover will make most "normal" failovers simpler as the FAIL message will propagate before the slave election happens.
-
antirez authored
-
antirez authored
Also, a few nearby comments improved.
-
antirez authored
-
antirez authored
-
antirez authored
See the function top-comment for info why this is useful sometimes.
-
antirez authored
Also don't check for NOADDR as we check that node->link is not NULL that's enough.
-
antirez authored
-
- 14 Mar, 2013 3 commits