- 20 Mar, 2013 1 commit
-
-
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 4 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.
-
antirez authored
-
- 15 Mar, 2013 11 commits
-
-
antirez authored
-
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 5 commits
- 13 Mar, 2013 8 commits
-
-
antirez authored
-
antirez authored
However currently the control is passed to a function doing nothing at all.
-
antirez authored
-
antirez authored
-
antirez authored
This message is sent by a slave that is ready to failover its master to other nodes to get the authorization from the majority of masters.
-
antirez authored
-
antirez authored
server.repl_down_since used to be initialized to the current time at startup. This is wrong since the replication never started. Clients testing this filed to check if data is uptodate should never believe data is recent if we never ever connected to our master.
-
antirez authored
-
- 12 Mar, 2013 4 commits
-
-
antirez authored
-
Damian Janowski authored
This fixes cases where the RDB file does exist but can't be accessed for any reason. For instance, when the Redis process doesn't have enough permissions on the file.
-
antirez authored
It was placed for error in initServer() that's called after the configuation is already loaded, causing issue #1000.
-
antirez authored
-
- 11 Mar, 2013 3 commits
-
-
antirez authored
activeExpireCycle() tries to test just a few DBs per iteration so that it scales if there are many configured DBs in the Redis instance. However this commit makes it a bit smarter when one a few of those DBs are under expiration pressure and there are many many keys to expire. What we do is to remember if in the last iteration had to return because we ran out of time. In that case the next iteration we'll test all the configured DBs so that we are sure we'll test again the DB under pressure. Before of this commit after some mass-expire in a given DB the function tested just a few of the next DBs, possibly empty, a few per iteration, so it took a long time for the function to reach again the DB under pressure. This resulted in a lot of memory being used by already expired keys and never accessed by clients.
-
antirez authored
-
antirez authored
-
- 09 Mar, 2013 2 commits
- 08 Mar, 2013 2 commits
-
-
antirez authored
This small number of DBs is set to 16 so actually in the default configuraiton Redis should behave exactly like in the past. However the difference is that when the user configures a very large number of DBs we don't do an O(N) operation, consuming a non trivial amount of CPU per serverCron() iteration.
-
antirez authored
-