In distributed systems, the consensus problem is one of the most researched topics. Often, applications that require highavailability or fault-tolerance make use of consensus, replicating their state across several remote processes. To maintain consistency however, one must take into consideration that machines will, eventually, fail. The advent of data-plane programming opened new paths to executing custom applications directly at network level, by abstracting network hardware from protocol implementations. The work presented in this thesis aims at answering the question: can we offload the Raft consensus directly on network level devices, exploiting the programmable data-plane paradigm? We argue for a positive answer while displaying a new protocol and the relative implementation, proposing also a possible use case scenario. Offloading the Raft consensus algorithm on the network level, can be a possible solution to reduce its cost in terms of overhead and latency, combined with greater throughput. In order to execute Raft on programmable network devices, we use P4-16 as programming language, defining a custom new protocol on top of UDP. We demonstrate the correctness and effectiveness of our protocol implementation, by evaluating an implementation for the BMV2 software switch. We expect that more significant performance gains can be achieved using switches with programmable hardware.

Uno degli argomenti di più interesse, in ambito sistemi distribuiti, riguarda il consenso. Spesso, le applicazioni che hanno tra i requisiti quelli di resilienza ai crash, utilizzano algoritmi di consenso per replicare il loro stato su nodi distribuiti all'interno della rete. Per mantenere questi stati consistenti tra di loro, bisogna altresì considerare che i suddetti nodi, eventualmente, possano fallire. L’adozione del data-plane programmabile ha aperto svariati nuovi scenari per eseguire applicazioni direttamente al livello di rete, astraendo i dispositivi dalle varie implementazioni dei protocolli. Il lavoro presentato in questa tesi ha come obiettivo quello di rispondere alla seguente domanda: si può implementare l’algoritmo di consenso Raft direttamente sui dispositivi di rete, sfruttando il data-plane programmabile? Tramite questo lavoro siamo in grado di fornire una risposta positiva, mostrando un nuovo protocollo e la sua relativa implementazione, proponendo anche uno scenario d’uso. Applicando Raft direttamente sui dispositivi di rete potrebbe essere una soluzione per diminuire il suo impatto sulle prestazioni in termini di latenza e overhead. Per eseguire Raft su hardware programmabile, abbiamo optato per l’utilizzo di P4-16 come linguaggio di programmazione, definendo un nuovo protocollo sfruttando UDP. Come architettura di riferimento è stato utilizzato BMV2, un software switch sviluppato principalmente per testare nuove applicazioni P4, fornendo allo sviluppatore grande flessibilità a discapito di prestazioni elevate.

Data-plane consensus : applying Raft consensus at network level

GALLONE, EMANUELE
2019/2020

Abstract

In distributed systems, the consensus problem is one of the most researched topics. Often, applications that require highavailability or fault-tolerance make use of consensus, replicating their state across several remote processes. To maintain consistency however, one must take into consideration that machines will, eventually, fail. The advent of data-plane programming opened new paths to executing custom applications directly at network level, by abstracting network hardware from protocol implementations. The work presented in this thesis aims at answering the question: can we offload the Raft consensus directly on network level devices, exploiting the programmable data-plane paradigm? We argue for a positive answer while displaying a new protocol and the relative implementation, proposing also a possible use case scenario. Offloading the Raft consensus algorithm on the network level, can be a possible solution to reduce its cost in terms of overhead and latency, combined with greater throughput. In order to execute Raft on programmable network devices, we use P4-16 as programming language, defining a custom new protocol on top of UDP. We demonstrate the correctness and effectiveness of our protocol implementation, by evaluating an implementation for the BMV2 software switch. We expect that more significant performance gains can be achieved using switches with programmable hardware.
MORO, DANIELE
ING - Scuola di Ingegneria Industriale e dell'Informazione
15-dic-2020
2019/2020
Uno degli argomenti di più interesse, in ambito sistemi distribuiti, riguarda il consenso. Spesso, le applicazioni che hanno tra i requisiti quelli di resilienza ai crash, utilizzano algoritmi di consenso per replicare il loro stato su nodi distribuiti all'interno della rete. Per mantenere questi stati consistenti tra di loro, bisogna altresì considerare che i suddetti nodi, eventualmente, possano fallire. L’adozione del data-plane programmabile ha aperto svariati nuovi scenari per eseguire applicazioni direttamente al livello di rete, astraendo i dispositivi dalle varie implementazioni dei protocolli. Il lavoro presentato in questa tesi ha come obiettivo quello di rispondere alla seguente domanda: si può implementare l’algoritmo di consenso Raft direttamente sui dispositivi di rete, sfruttando il data-plane programmabile? Tramite questo lavoro siamo in grado di fornire una risposta positiva, mostrando un nuovo protocollo e la sua relativa implementazione, proponendo anche uno scenario d’uso. Applicando Raft direttamente sui dispositivi di rete potrebbe essere una soluzione per diminuire il suo impatto sulle prestazioni in termini di latenza e overhead. Per eseguire Raft su hardware programmabile, abbiamo optato per l’utilizzo di P4-16 come linguaggio di programmazione, definendo un nuovo protocollo sfruttando UDP. Come architettura di riferimento è stato utilizzato BMV2, un software switch sviluppato principalmente per testare nuove applicazioni P4, fornendo allo sviluppatore grande flessibilità a discapito di prestazioni elevate.
File allegati
File Dimensione Formato  
tesi.pdf

accessibile in internet per tutti

Dimensione 1.2 MB
Formato Adobe PDF
1.2 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/171114