Consensus Impossibility
Dennis Shasha (following Lynch, Fischer, Patterson)
Failure Model
• Processes can fail-stop (but that is all; no fail traitorous).
• Communication is two-way.• Messages can be dropped or take an
arbitrarily long time.• To show: no algorithm can guarantee to solve
consensus in the face of fail-stop processes and unlimited message delays.
Bald Man’s Paradox
• Man with a full head of hair is not bald.• Man with no hair is bald.• Suppose you tell me that a man with x number
of hairs or more is not bald.• Suppose the man has an opaque patch on his
head• Outside of patch, man has less than x number of
hairs. • What’s under patch determines status!
Consensus Problem Simplified
• Every input process has either a 0 or 1.• If all working processes have 1 initially, then all
should conclude 1.• If all working processes have 0 initially, then all
should conclude 0• In any other case, all should conclude either 0
or 1 but they must all agree.
Terminology
• State is just set of states of individual processes.
• State is univalent for 1 (respectively 0), if, regardless of failures, the conclusion will be 1 (respectively 0).
• State is bivalent if could go either to 0 or to 1.
There must be some bivalent initial states
• Suppose that every initial state having at least x% of 1s is univalent for 1 and any less is univalent for 0.
• If one process is not communicating, then maybe that would make the difference.
• So others can’t decide.• Therefore that state is bivalent.
From Every Bivalent State, another bivalent state is reachable
• Suppose some message sent and received changes the state from bivalent to univalent.
• If that message can be lost, then state is still bivalent.
• Conclusion: we can be bivalent forever.• Nota Bene: might be very unlikely to remain in
such a state (e.g. two phase commit).
Top Related