270 likes | 283 Views
This research paper discusses the use of client speculation to tolerate latency in replicated state machines. It explores the implementation and benefits of speculative execution in improving the performance of RSMs. The paper also presents an application to PBFT and provides benchmarks to demonstrate the effectiveness of the proposed approach.
E N D
Tolerating Latency in Replicated State Machines through Client Speculation April 22, 2009 Benjamin Wester1, James Cowling2, Edmund B. Nightingale3, Peter M. Chen1, Jason Flinn1, Barbara Liskov2 University of Michigan1, MIT CSAIL2, Microsoft Research3
Simple Service Configuration 1 x=0 x=1 ++x Benjamin Wester University of Michigan CSE
Replicated State Machines (RSM) • Agree on request • All non-faulty replies are identical 2 x=1 x=2 ++x 2 x=1 x=2 ++x x=1 x=2 2 ++x x=1 x=2 2 ++x Benjamin Wester University of Michigan CSE
RSMs have high latency • Need many replies • Agreement • Geographic Distribution x=2 2 2 2 x=2 x=2 x=2 Benjamin Wester University of Michigan CSE
Hide the Latency • Use speculative execution inside RSM • Speculate before consensus is reached • Without faults, any reply predicts consensus value • Let client continue after receiving one reply Benjamin Wester University of Michigan CSE
Overview • Introduction • Improving RSMs with speculation • Application to PBFT • Performance • Conclusion Benjamin Wester University of Michigan CSE
Speculative Execution in RSM • Continue processing while waiting Take Checkpoint Predict: 1 Speculate! Blocked Commit Rollback x=1 x=1 x=2 Benjamin Wester University of Michigan CSE
Critical path: first reply • Completion latency less relevant • First reply latency sets critical path • Speed • Accuracy • Other desirable properties • Throughput • Stability under contention • Smaller number of replicas 1 1 Benjamin Wester University of Michigan CSE
Requests while speculative while !check_lottery(): submit_tps() buy_corvette() Predict win? = yes • Hold request • Bad performance • Distributed commit/rollback • State tracking complex yes buy win? What do we do with this? Benjamin Wester University of Michigan CSE
Explicitly encode dependencies as predicates No special request handling needed Replicas need to log past replies Local decision at replicas matches client Resolve speculations on the replicas while !check_lottery(): submit_tps() buy_corvette() Predict win? = yes win? = yes buy = keys yes keys yes buy buy if win?=yes: buy win? Benjamin Wester University of Michigan CSE
Overview • Introduction • Improving RSMs with speculation • Application to PBFT • Performance • Conclusion Benjamin Wester University of Michigan CSE
Practical BFT -CS [Castro and Liskov 1999] client primary f=1 Benjamin Wester University of Michigan CSE
Additional Details • Tentative execution • PBFT/PBFT-CS complete in 4 phases • Read-only optimization • Accurate answer from backup replica • Failure threshold • Bound worst-case failure • Correctness Benjamin Wester University of Michigan CSE
Overview • Introduction • Improving RSMs with speculation • Application to PBFT • Performance • Conclusion Benjamin Wester University of Michigan CSE
Benchmarks • Shared counter • Simple checkpoint • No computation • NFS: Apache httpd build • Complex checkpoint • Significant computation Benjamin Wester University of Michigan CSE
Topology Primary-local Primary-remote Uniform 2.5 or 15 ms Primary Benjamin Wester University of Michigan CSE
Base case: no replication Primary-local Primary-remote Uniform 2.5 or 15 ms Benjamin Wester University of Michigan CSE
Shared Counter Primary-local topology Benjamin Wester University of Michigan CSE
Shared Counter Primary-local topology [Kotla et al. 07] Benjamin Wester University of Michigan CSE
Shared Counter Uniform & Primary-remote topology Benjamin Wester University of Michigan CSE
Shared Counter Uniform & Primary-remote topology Benjamin Wester University of Michigan CSE
NFS: Apache build Primary-local topology Benjamin Wester University of Michigan CSE
NFS: Apache build Uniform topology Benjamin Wester University of Michigan CSE
NFS: Apache build Primary-remote topology Benjamin Wester University of Michigan CSE
NFS: With Failure Primary-local topology (1% fail) Benjamin Wester University of Michigan CSE
Throughput (Shared Counter) LAN topology Benjamin Wester University of Michigan CSE
Conclusion • Integrate client speculation within RSMs • Predicated requests: performance without complexity • Clients less sensitive to latency between replicas • 5x speedup over non-speculative protocol Makes WAN deployments more practical Benjamin Wester University of Michigan CSE