Incorporating the Raft consensus protocol in containers managed by Kubernetes: an evaluation. Issue 4 (3rd July 2020) - Netto, Hylson; Pereira Oliveira, Caio; Rech, Luciana de Oliveira; Alchieri, Eduardo
ABSTRACT: Replication is a technique widely used to improve the reliability of applications. State machine replication is a special approach, where a set of computers are kept synchronised in the same state despite of failures that could occur in the system. The Raft algorithm can be used to implement a total order delivery protocol, delivering requests at the same order at all replicas, which is fundamental since in this approach all replicas must execute the same sequence of requests to present the same evolution in their states. Raft is easy to understand and implement, when compared to the Paxos algorithm. On the other hand, virtualisation can be seen as a technique that helps the development of reliable applications since it maintains each virtual machine (VM) isolated from the others. Virtualisation in data centres is changing from the traditional VMs to containers. In this context, this paper proposes KRaft, an incorporation of Raft in Kubernetes, a system that manages containers. After an evaluation of performance and resource consumption of KRaft, we found that it presents performance close to Raft executing on physical machines. Moreover, KRaft demands more network transmission while Raft executed in physical machines needs more processing power and memory. GRAPHICAL ABSTRACT: