Babel: A Framework for Developing Performant and Dependable Distributed Protocols

05/04/2022
by   Pedro Fouto, et al.
0

Prototyping and implementing distributed algorithms, particularly those that address challenges related with fault-tolerance and dependability, is a time consuming task. This is, in part, due to the need of addressing low level aspects such as management of communication channels, controlling timeouts or periodic tasks, and dealing with concurrency issues. This has a significant impact for researchers that want to build prototypes for conducting experimental evaluation; practitioners that want to compare different design alternatives/solutions; and even for practical teaching activities on distributed algorithms courses. In this paper we present Babel, a novel framework to develop, implement, and execute distributed protocols and systems. Babel promotes an event driven programming and execution model that simplifies the task of translating typical specifications or descriptions of algorithms into performant prototypes, while allowing the programmer to focus on the relevant challenges of these algorithms by transparently handling time consuming low level aspects. Furthermore, Babel provides, and allows the definition of, networking components that can capture different network capabilities (e.g., P2P, Client/Server, phi-accrual Failure Detector), making the code mostly independent from the underlying communication aspects. Babel was built to be generic and can be used to implement a wide variety of different classes of distributed protocols. We conduct our experimental work with two relevant case studies, a Peer-to-Peer application and a State Machine Replication application, that show the generality and ease of use of Babel and present competitive performance when compared with significantly more complex implementations.

READ FULL TEXT
research
02/27/2023

Architecting Peer-to-Peer Serverless Distributed Machine Learning Training for Improved Fault Tolerance

Distributed Machine Learning refers to the practice of training a model ...
research
06/30/2022

Stochastic Bilevel Distributed Optimization over a Network

Bilevel optimization has been applied to a wide variety of machine learn...
research
02/14/2020

Implementing a Language for Distributed Systems: Choices and Experiences with Type Level and Macro Programming in Scala

Multitier programming languages reduce the complexity of developing dist...
research
06/24/2021

Stream-based State-Machine Replication

Developing state-machine replication protocols for practical use is a co...
research
04/05/2019

VIVoNet: Visually-represented, Intent-based, Voice-assisted Networking

Networks have become considerably large, complex and dynamic. The config...
research
12/18/2022

Efficient RDMA Communication Protocols

Developers of networked systems often work with low-level RDMA libraries...
research
07/14/2021

Simulation of Dissemination Strategies on Temporal Networks

In distributed environments, such as distributed ledgers technologies an...

Please sign up or login with your details

Forgot password? Click here to reset