








Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The challenges and solutions for replicating state machines to ensure consistency and fault-tolerance in distributed systems. Topics include making servers deterministic, replica coordination, and reliable broadcast. The document also explores different failure models and their implications on consensus and termination.
Typology: Study notes
1 / 14
This page cannot be seen from the preview
Don't miss anything!









Clients Server
State machine
State machine
Clients Voter State machine
... A: voter and client share fate!
Ahhh, Java… simpl e obje c t-o r ien t e d p o r at bl e dis tr ib u te d in te r p re te d h ig h-p e rf o r manc e m u tl i-thr ea de d se cu re Semantic Characterization of a State Machine Outputs of a state machine are completely determined by the sequence of requests it processes, independent of time and any other activity in a system
If a process sends a message , then every process eventually delivers m m
If a process sends a message , then every process eventually delivers p 0 p 1 p 2 p 3 m m
If a process sends a message , then every process eventually delivers How can we adapt the spec for an environment where processes can fail? And what does “fail” mean? p 0 p 1 p 2 p 3 m m
Crash
Crash Send Omission General Omission Receive Omission benign failures Fail-stop
Crash Arbitrary failures with message authentication Send Omission General Omission Receive Omission benign failures Fail-stop
Crash Arbitrary failures with message authentication Arbitrary (Byzantine) failures Send Omission General Omission Receive Omission benign failures Fail-stop
Validity!! If the sender is correct and broadcasts a !! message , then all correct processes !! eventually deliver Agreement!! If a correct process delivers a message , !! then all correct processes eventually !! deliver Integrity!! Every correct process delivers at most one !! message, and if it delivers , then some !! process must have broadcast m m m m m m
Benign failures: Validity If sends to , and , , and the link between them are correct, then eventually receives Uniform* Integrity For any message , receives at most once from , and only if sent to
Arbitrary failures: Integrity For any message , if and are correct then receives at most once from , and only if sent to m p q q q (^) m p p m
Are these problems solvable at all? Can they be solved independent of the failure model? Does solvability depend on the ratio between faulty and correct processes? Does solvability depend on assumptions about the reliability of the network? Are the problems solvable in both synchronous and asynchronous systems? If a solution exists, how expensive is it?