Developing state-machine replication protocols for practical use is a complex and labor-intensive process because of the myriad of essential tasks (e.g., deployment, communication, recovery) that need to be taken into account in an implementation. In this paper, we show how this problem can be addressed with stream-based replication, a novel approach that implements a replication protocol as application on top of a data-stream processing framework. With such framework already handling most essential tasks and furthermore providing means for debugging and monitoring, this technique has the key benefit of significantly minimizing overhead for both programmers as well as system operators. Our first stream-based protocol Tara tolerates crashes and comprises full-fledged mechanisms for request handling, checkpointing, and view changes. Still, Tara's prototype implementation, which is based on Twitter's Heron framework, consists of fewer than 1,500 lines of application-level code.
翻译:开发用于实际用途的州机器复制程序是一个复杂和劳动密集型的过程,因为执行过程中需要考虑许多基本任务(如部署、通信、恢复等),因此需要考虑到这些重要任务。在本文中,我们展示了如何通过基于流的复制来解决这个问题,这是一种在数据流处理框架之上实施复制程序作为应用的新颖方法。这种框架已经处理着最重要的任务,并且提供了调试和监测手段,因此,这一技术具有关键的好处,可以大大降低程序员和系统操作员的间接费用。我们的第一个基于流的协议Tara容忍碰撞,包括处理请求、检查和查看变化的完整机制。同样,Tara的原型实施基于Twitter的赫隆框架,由不到1 500行的应用级代码组成。