arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 0909.1788cs.DC
收藏

流沙上的建筑

Building on Quicksand

Pat Helland, David Campbell

摘要:

可靠的系统总是由不可靠的组件构建而成。早期,可靠的组件很小,例如镜像磁盘或核心内存中的ECC(纠错码)。这些系统的设计使得这些小组件的故障对应用程序是透明的。后来,不可靠组件的规模变得越来越大,当故障发生时,语义挑战会悄悄进入应用程序。随着不可靠组件粒度的增加,与备份通信的延迟变得令人不快。这导致了一个更宽松的容错模型。主系统将确认工作请求及其操作,而无需等待,以确保将工作通知给备份。这提高了系统的响应性。异步状态捕获有两个含义:1)主对象所承诺的一切都是概率性的。总是有这样一种可能性,即在promise之后不久,一个不合时宜的失败会导致一个备份过程,而不知道这个承诺。因此,没有什么是可以保证的!2)应用程序必须确保最终的一致性。由于工作可能会在失败后卡在主服务器中,并在以后重新出现,因此无法保证工作的处理顺序。平台设计人员正在努力使其应用程序更容易。最终一致性和概率执行的新兴模式可能很快就会为应用程序提供一种方法,以表达对“更松散”形式的一致性的需求,同时在面对更大的故障时提供可用性。本文叙述了这些趋势的演变的一部分,试图显示跨越这些变化的模式,并谈论未来的方向,因为我们继续“建立在流沙”。

英文摘要:

Reliable systems have always been built out of unreliable components. Early on, the reliable components were small such as mirrored disks or ECC (Error Correcting Codes) in core memory. These systems were designed such that failures of these small components were transparent to the application. Later, the size of the unreliable components grew larger and semantic challenges crept into the application when failures occurred. As the granularity of the unreliable component grows, the latency to communicate with a backup becomes unpalatable. This leads to a more relaxed model for fault tolerance. The primary system will acknowledge the work request and its actions without waiting to ensure that the backup is notified of the work. This improves the responsiveness of the system. There are two implications of asynchronous state capture: 1) Everything promised by the primary is probabilistic. There is always a chance that an untimely failure shortly after the promise results in a backup proceeding without knowledge of the commitment. Hence, nothing is guaranteed! 2) Applications must ensure eventual consistency. Since work may be stuck in the primary after a failure and reappear later, the processing order for work cannot be guaranteed. Platform designers are struggling to make this easier for their applications. Emerging patterns of eventual consistency and probabilistic execution may soon yield a way for applications to express requirements for a "looser" form of consistency while providing availability in the face of ever larger failures. This paper recounts portions of the evolution of these trends, attempts to show the patterns that span these changes, and talks about future directions as we continue to "build on quicksand".

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑