Stream-based State-Machine Replication
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.
READ FULL TEXT