Omar Ferro
Design ed Implementazione di una Libreria ad Alte Prestazioni per Data Pipeline in Go = Design and Implementation of a High-Performance Data Pipeline Library in Go.
Rel. Fulvio Giovanni Ottavio Risso. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2026
|
Preview |
PDF (Tesi_di_laurea)
- Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives. Download (4MB) | Preview |
Abstract
Il presente lavoro di tesi si concentra sul design e l'implementazione di Goccia, una libreria ad alte prestazioni per la costruzione di data pipeline nel linguaggio Go, progettata per contesti cloud-native e sistemi di elaborazione dati concorrenti. La libreria nasce dall'esigenza di superare i limiti delle primitive di concorrenza native di Go (goroutine e channel) in scenari con requisiti stringenti di throughput e latenza, fornendo un'infrastruttura modulare e riusabile per il processing di flussi di dati ad alto volume. L'architettura di Goccia si fonda su due componenti essenziali: Stage e Connector. Gli stage implementano un lifecycle ben definito (Init, Run, Close) e sono categorizzati in tre gruppi principali: Ingress Stage (punti di ingresso dati: UDP, TCP, Kafka, eBPF, File), Processor Stage (trasformazioni modulari: decodifica CAN, Cannelloni, CSV, Filter, Tee, Reorder Buffer, Custom) ed Egress Stage (persistenza verso destinazioni esterne: QuestDB, Kafka, File, UDP/TCP).
I Connector utilizzano ring buffer lock-free nelle varianti SPSC (Single Producer Single Consumer), SPMC (Single Producer Multiple Consumer) e MPSC (Multiple Producer Single Consumer), sostituendo i channel nativi di Go per massimizzare il throughput
Relatori
Anno Accademico
Tipo di pubblicazione
Numero di pagine
Corso di laurea
Classe di laurea
URI
![]() |
Modifica (riservato agli operatori) |
