Hacker News new | ask | show | jobs
by sbhat7 4300 days ago
> To give an example, say I have n machines in datacenter A, and n*.99 in datacenter B. datacenter A gets destroyed, permanently. Does datacenter B now reject all (EDIT: where reject = not commit) requests until a human comes along to tell it that datacenter A isn't coming back?

Of CAP, you are now choosing CP with Raft. So yes, the system is unavailable until an external agent fixes it. In other words, the system needs to have a majority of nodes online to be "available".

1 comments

What would happen if nodes were to be added to each side of a network partition (unknown to the other side), so that each side believed they had a majority? Or is the "writing" side of the partition determined at partition time, and not changed until they are restored?
To add a new node to the network, it

* needs to have the same data as the other nodes

* needs a round of Raft to notify its presence to other nodes

So you can only add new nodes (automatically) when you have a 'live' system.

majority = ceil((2n + 1)/2) : so by getting the number of available nodes in the partition, nodes can figure out if they are in the majority or minority cluster.

See section 6 in the paper for details of its implementation.