Speculative execution in a distributed file system

Speculative execution in a distributed file system
复制标题

DOI:
10.1145/1095810.1095829
复制
发表时间:
2005-10
期刊:
--
影响因子:
--
通讯作者:
Edmund B. Nightingale;Peter M. Chen;J. Flinn
Edmund B. Nightingale;Peter M. Chen;J. Flinn
中科院分区:
其他
文献类型:
--
作者:
Edmund B. Nightingale;Peter M. Chen;J. Flinn

文献摘要

被引文献

相似文献

投机器为投机执行提供Linux内核支持。它允许多个过程通过跟踪通过过程间通信传播的因果关系来共享投机状态。它通过防止投机过程外部化输出(例如,将网络消息或写入向屏幕发送)保证正确执行,直到该输出所依赖的推测已被证明是正确的。投机器通过掩盖I/O延迟并增加I/O吞吐量来提高分布式文件系统的性能。文件系统没有在远程操作期间阻止,而是预测操作的结果,而是使用投机器检查调用过程的状态,并根据预测的结果推测执行。如果预测正确,则将检查点丢弃;如果不正确,则将调用过程恢复到检查点,然后重新操作。我们已经修改了两个分布式文件系统的客户,服务器和网络协议以使用投机器。对于邮戳和安德鲁风格的基准,投机性执行可导致NFS比本地区域网络的2个性能提高,并且比广域网络的数量级改进。对于相同的基准测试器,投机器使蓝色文件系统能够提供单拷贝文件语义和同步I/O的安全性,但仍然优于较弱的一致性和安全性的当前分布式文件系统。
Speculator provides Linux kernel support for speculative execution. 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 file systems by masking I/O latency and increasing I/O throughput. Rather than block during a remote operation, a file 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 result. If the prediction is correct, the checkpoint is discarded; if it is incorrect, the calling process is restored to the checkpoint, and the operation is retried. We have modified the client, server, and network protocol of two distributed file 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 networks. For the same benchmarks, Speculator enables the Blue File System to provide the consistency of single-copy file semantics and the safety of synchronous I/O, yet still outperform current distributed file systems with weaker consistency and safety.