Main Content
Acceleration Of Raft Consensus Algorithm Using P4 Switches
Author: Pouya Hashemi
Supervisors: Prof. Dr. Boris Koldehofe, M.Sc. Ahmad Baghdadi
Format: Master's thesis, TU Ilmenau
Achieving high availability and fault tolerance is a primary priority for large-scale data centers, which is often accomplished using State Machine Replication. To ensure consistency between replicas, a consensus algorithm is required. However, implementing consensus protocols can negatively impact performance due to increased communication rounds and network overhead, leading to higher latency and reduced throughput and scalability. Numerous studies have focused on optimizing consensus algorithms such as Paxos and Raft. Recent efforts and works such as P4xos, NetPaxos, and HovercRaft++ have concentrated on implementing Consensus In A Box for these algorithms, aimed to offload certain consensus protocol functionalities to network devices like programmable switches, thereby reducing communication overhead and enhancing system performance. This work extends these efforts by integrating Consensus In A Box into the Raft consensus protocol. By offloading the majority of Raft functionalities to programmable switches, significantly improves system latency and scalability. Additionally, this work utilizes NetCache into the Raft consensus algorithm to cache frequently used information in the programmable switch, enabling faster updates for failed nodes upon recovery. As a result, this approach reduces the number of requests each machine processes to one per Raft request type, effectively halving the number of packets traversing the network for most Raft actions. This leads to reduced latency, improved throughput, and enhanced scalability, supporting up to nine nodes without performance degradation. This work is particularly beneficial for data centers, as it enhances their ability to maintain high availability and fault tolerance while optimizing performance.
Completed: 5.11.2024
References: https://bibliographie.tu-ilmenau.de/servlets/DozBibEntryServlet?mode=show&id=ilm_mods_00030665