Fast Consensus Ali Ghodsi UC BerkeleyKTH aligatcs berkeley
Fast Consensus Ali Ghodsi – UC Berkeley/KTH alig(at)cs. berkeley. edu
Optimizing Consensus for The Typical Case n Often all participants vote the same value q n Total Order Broadcast in which most of the time all nodes have received the same set of messages Can we optimize Consensus to be faster for that common case? 10/2/2020 Ali Ghodsi, alig(at)cs. berkeley. edu 2
Fast Consensus n Consensus with additional property q q Fast Termination If all nodes propose the same value, all correct nodes decide after 1 comm. step Termination All correct nodes eventually decide Uniform Agreement No two nodes decide differently Validity If a node decides V, then V was proposed 10/2/2020 Ali Ghodsi, alig(at)cs. berkeley. edu 3
Modular Algorithm n Fast Uniform Consensus q q q n Uses underlying Uniform Consensus Uses underlying Best Effort Broadcast Uses underlying Uniform Reliable Broadcast Properties q q Converts any Uniform Consensus to Fast Uniform Consensus Caveat: only tolerates f < N/3 failures 10/2/2020 Ali Ghodsi, alig(at)cs. berkeley. edu 4
Basic Idea n Every node broadcasts proposal and awaits N -f responses q q n If N-f identical responses V, then broadcast decision and decide value V If responses not identical, run external uniform consensus Fast decision in one step when all agree 10/2/2020 Ali Ghodsi, alig(at)cs. berkeley. edu 5
Challenge n Caveat q q q N alive nodes, N-f propose 1 and f propose 0 One node might get N-f 1’s and decides in 1 step Another doesn’t get N-f identical proposals Must decide same as the fast node! N-f (7) N=10 f=3 n Key idea q q 1 1 N-f (7) 1 1 1 0 0 0 N-2 f (4)N-f (7) If N-f identical proposals exist, then any N-f subset …must contain N-2 f identical values Adopt value whenever N-2 f identical values observed 10/2/2020 Ali Ghodsi, alig(at)cs. berkeley. edu 6
Transformation Algorithm n BEB Broadcast proposal(v) n Receive N-f proposal(v) BEB deliveries q q q n Case (b): N-2 f identical V proposals (but less than N-f) Run Uniform Consensus with adopted value consensus(v) Case (c): less than N-2 f identical proposals Run Uniform Consensus with own proposal consensus(own_proposal) If receive urb_decide(v) or consensus(v) q 10/2/2020 Case (a): get N-f identical proposal(v) for v Uniform Reliable Broadcast (URB) urb_decide(v) and fast decide Decide v and terminate algorithm Ali Ghodsi, alig(at)cs. berkeley. edu 7
Consensus in 1 Step (fast_decide) n If every node proposes V q q Every node gets N-f identical proposals Every node runs urb_decide(v) and locally decides n BEB Broadcast proposal(v) n Receive N-f proposal(v) BEB deliveries q q q n Case (b): N-2 f identical V proposals (but less than N-f) Run Uniform Consensus with adopted value consensus(v) Case (c): less than N-2 f identical proposals Run Uniform Consensus with own proposal consensus(own_proposal) If receive urb_decide(v) or consensus(v) q 10/2/2020 Case (a): get N-f identical proposal(v) for v Uniform Reliable Broadcast (URB) urb_decide(v) and fast decide Decide v and terminate algorithm Ali Ghodsi, alig(at)cs. berkeley. edu 8
Termination n All underlying algorithms terminate q q n Case (a) terminates immediately after N-f reads Case (b) & (c) read N-f and run Consensus Either Consensus terminates or reliable broadcast succeeds n BEB Broadcast proposal(v) n Receive N-f proposal(v) BEB deliveries q q q n Case (b): N-2 f identical V proposals (but less than N-f) Run Uniform Consensus with adopted value consensus(v) Case (c): less than N-2 f identical proposals Run Uniform Consensus with own proposal consensus(own_proposal) If receive urb_decide(v) or consensus(v) q 10/2/2020 Case (a): get N-f identical proposal(v) for v Uniform Reliable Broadcast (URB) urb_decide(v) and fast decide Decide v and terminate algorithm Ali Ghodsi, alig(at)cs. berkeley. edu 9
Uniform Agreement n Any two “fast” deciders decide same value q q Any two N-f values overlap (N>3 f) Must be the same value, all fast_decides same! n BEB Broadcast proposal(v) n Receive N-f proposal(v) BEB deliveries q q q n Case (b): N-2 f identical V proposals (but less than N-f) Run Uniform Consensus with adopted value consensus(v) Case (c): less than N-2 f identical proposals Run Uniform Consensus with own proposal consensus(own_proposal) If receive urb_decide(v) or consensus(v) q 10/2/2020 Case (a): get N-f identical proposal(v) for v Uniform Reliable Broadcast (URB) urb_decide(v) and fast decide Decide v and terminate algorithm Ali Ghodsi, alig(at)cs. berkeley. edu 10
Uniform Agreement (2) n All fast_decides and urb_decide values same q q q Every urb_decide is due to a fast decide Fast decide indicates N-f identical values Any two urb_decide/fast_decides overlap n BEB Broadcast proposal(v) n Receive N-f proposal(v) BEB deliveries q q q n Case (b): N-2 f identical V proposals (but less than N-f) Run Uniform Consensus with adopted value consensus(v) Case (c): less than N-2 f identical proposals Run Uniform Consensus with own proposal consensus(own_proposal) If receive urb_decide(v) or consensus(v) q 10/2/2020 Case (a): get N-f identical proposal(v) for v Uniform Reliable Broadcast (URB) urb_decide(v) and fast decide Decide v and terminate algorithm Ali Ghodsi, alig(at)cs. berkeley. edu 11
Uniform Agreement (3) n Uniform consensus outcome same as fast_decide/urb_decide q q q fast_decide/urb_decide indicates N-f identical values There must be N-2 f identical values in any N-f values Any consensus proposal has adopted fast_decide/urb_decide value N-f (7) N=10 f=3 1 1 1 1 0 0 0 N-2 f (4) n What if all proposals are different? q q No fast_decide, reduces to underlying consensus Adds 1 communication step 10/2/2020 Ali Ghodsi, alig(at)cs. berkeley. edu 12
- Slides: 12