Commit 44c92f5a authored by antirez's avatar antirez
Browse files

Cluster: slave failover implemented.

parent 1d8f302e
...@@ -1390,8 +1390,20 @@ void clusterHandleSlaveFailover(void) { ...@@ -1390,8 +1390,20 @@ void clusterHandleSlaveFailover(void) {
if (server.cluster->failover_auth_count >= needed_quorum) { if (server.cluster->failover_auth_count >= needed_quorum) {
redisLog(REDIS_WARNING, redisLog(REDIS_WARNING,
"Masters quorum reached: failing over my (failing) master."); "Masters quorum reached: failing over my (failing) master.");
/* TODO: Perform promotion. */ /* We have the quorum, perform all the steps to correctly promote
/* TODO: Broadcast update to cluster. */ * this slave to a master.
*
* 1) Turn this node into a master. */
clusterNodeRemoveSlave(server.cluster->myself->slaveof,
server.cluster->myself);
server.cluster->myself->flags &= ~REDIS_NODE_SLAVE;
server.cluster->myself->flags |= REDIS_NODE_MASTER;
server.cluster->myself->slaveof = NULL;
replicationUnsetMaster();
/* 2) Ping all the other nodes so that they can update the state
* accordingly and detect that we switched to master role. */
clusterBroadcastPing();
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment