首页 > 代码库 > why is agreement hard in a distributed system?

why is agreement hard in a distributed system?

same question as:

why is PAXOS necessary?

 

1, what if >1 nodes become leaders simultaneously?

that‘s why we need phase#1 (prepare) to select a leader.

2, what if there is a netwrok partition?

that‘s why we need a majority to make some nodes progress. if less than majority, just fails.

3, what if a leader crashes in the middle of solicitation?

4, what if a leader crashes after deciding but before announcing results?

5, what if the new leader proposes different values than already decided value?

that‘s why we need ballot number (made up of a unique increasing number and the processor id) so that any processor is likely to be a new leader.

why is agreement hard in a distributed system?