SOSP PRACTICE TALK-Speculative Execution in a Distributed File System
Add to Google Calendar
Speculator provides Linux kernel support for speculative exe- cution. It allows multiple processes to share speculative state by tracking causal dependencies propagated through inter- process communication. It guarantees correct execution by preventing speculative processes from externalizing output, e.g., sending a network message or writing to the screen, until the speculations on which that output depends have proven to be correct. Speculator improves the performance of distributed le systems by masking I/O latency and increas- ing I/O throughput. Rather than block during a remote oper- ation, a le system predicts the operation's result, then uses Speculator to checkpoint the state of the calling process and speculatively continue its execution based on the predicted re- sult. If the prediction is correct, the checkpoint is discarded; if it is incorrect, the calling process is restored to the check- point, and the operation is retried. We have modied the client, server, and network protocol of two distributed le systems to use Speculator. For PostMark and Andrew-style benchmarks, speculative execution results in a factor of 2 performance improvement for NFS over local-area networks and an order of magnitude improvement over wide-area net- works. For the same benchmarks, Speculator enables the Blue File System to provide the consistency of single-copy le semantics and the safety of synchronous I/O, yet still outperform current distributed le systems with weaker con- sistency and safety.
Ed Nightingale is a Ph.D. candidate at the University of Michigan.