Consensus Flashcards
What are the types of unreliability in distributed systems?
Link failures, processor crashes, and Byzantine failures.
What is a link failure?
A link failure occurs when a communication link becomes inactive, potentially disconnecting the network and causing messages to not be delivered.
What is a processor crash?
A processor crash happens when a processor stops functioning and disappears from the network, ceasing to send or receive messages.
What are Byzantine failures?
Byzantine failures involve processors sending arbitrary or misleading messages, making consensus difficult. Named after the Byzantine Generals problem.
What is the Byzantine Generals problem?
A problem illustrating the difficulty of reaching consensus with unreliable communication, where generals must agree to attack but messages may fail to deliver.
What are the properties of the consensus problem?
Validity, Agreement, Termination, and Integrity.
What is the Validity property in consensus?
Any value decided must be a value proposed. If all processes start with the same value, that value must be the one decided.
What is the Agreement property in consensus?
No two correct processes decide differently. All non-faulty processes must agree on the same value.
What is the Termination property in consensus?
Every correct process eventually decides. The algorithm must ensure that all processes reach a decision in a finite amount of time.
What is the Integrity property in consensus?
No process decides twice. Once a process decides on a value, it cannot change its decision.
Is consensus possible in asynchronous systems with failures?
No, it is impossible to reach consensus in asynchronous systems with even a single failure (link, crash, or Byzantine).
Is consensus possible in synchronous systems with failures?
Yes, in synchronous systems, consensus can tolerate crash and Byzantine failures, but not link failures.
What is a simple algorithm for consensus?
Each processor broadcasts its input to all processors and decides on the minimum value. Works in a single round if there are no failures.
Why does the simple consensus algorithm fail with crash or link failures?
If a processor crashes or a link fails, not all values are broadcast, leading to inconsistent decisions.
Why does the simple consensus algorithm fail with Byzantine failures?
Faulty processors may send arbitrary values, violating the validity property.