论文标题
Babel:开发性能和可靠的分布式协议的框架
Babel: A Framework for Developing Performant and Dependable Distributed Protocols
论文作者
论文摘要
原型和实施分布式算法,尤其是解决与故障容忍和可靠性相关的挑战的算法,这是一项耗时的任务。这部分是由于需要解决诸如通信渠道管理,控制超时或定期任务以及处理并发问题之类的低级别方面。这对想要建立原型进行实验评估的研究人员产生了重大影响。想比较不同的设计替代方案/解决方案的从业者;甚至用于分布式算法课程的实践教学活动。 在本文中,我们介绍了Babel,这是一个新颖的框架,用于开发,实施和执行分布式协议和系统。 Babel推广了事件驱动的编程和执行模型,该模型简化了将算法或描述的典型规格或描述的任务转化为性能的原型,同时允许程序员通过透明地处理时间消耗低水平方面来专注于这些算法的相关挑战。此外,Babel提供并允许定义网络组件,这些组件可以捕获不同的网络功能(例如P2P,客户端/服务器,Phi-Accrual故障检测器),从而使代码大多远离基础通信方面独立。 Babel建造为通用,可用于实施各种不同类别的分布式协议。 我们通过两个相关的案例研究,点对点的应用和一个状态机器复制应用进行了实验性工作,这些应用程序表明,与更复杂的实现相比,Babel的一般性和易用性和竞争性能。
Prototyping and implementing distributed algorithms, particularly those that address challenges related with fault-tolerance and dependability, is a time consuming task. This is, in part, due to the need of addressing low level aspects such as management of communication channels, controlling timeouts or periodic tasks, and dealing with concurrency issues. This has a significant impact for researchers that want to build prototypes for conducting experimental evaluation; practitioners that want to compare different design alternatives/solutions; and even for practical teaching activities on distributed algorithms courses. In this paper we present Babel, a novel framework to develop, implement, and execute distributed protocols and systems. Babel promotes an event driven programming and execution model that simplifies the task of translating typical specifications or descriptions of algorithms into performant prototypes, while allowing the programmer to focus on the relevant challenges of these algorithms by transparently handling time consuming low level aspects. Furthermore, Babel provides, and allows the definition of, networking components that can capture different network capabilities (e.g., P2P, Client/Server, phi-accrual Failure Detector), making the code mostly independent from the underlying communication aspects. Babel was built to be generic and can be used to implement a wide variety of different classes of distributed protocols. We conduct our experimental work with two relevant case studies, a Peer-to-Peer application and a State Machine Replication application, that show the generality and ease of use of Babel and present competitive performance when compared with significantly more complex implementations.