TY - GEN
T1 - Babel
T2 - 41st International Symposium on Reliable Distributed Systems, SRDS 2022
AU - Fouto, Pedro
AU - Costa, Pedro Akos
AU - Preguica, Nuno
AU - Leitão, João
N1 - info:eu-repo/grantAgreement/FCT/Concurso para Financiamento de Projetos de Investigação Científica e Desenvolvimento Tecnológico em Todos os Domínios Científicos - 2017/PTDC%2FCCI-INF%2F32038%2F2017/PT#
info:eu-repo/grantAgreement/FCT/6817 - DCRRNI ID/UIDB%2F04516%2F2020/PT#
info:eu-repo/grantAgreement/FCT/OE/SFRH%2FBD%2F143668%2F2019/PT#
info:eu-repo/grantAgreement/FCT/OE/SFRH%2FBD%2F144023%2F2019/PT#
Funding Information:
Experiments presented in this paper were carried out using the Grid’5000 testbed, supported by a scientific interest group hosted by Inria and including CNRS, RENATER and several Universities as well as other organizations (see https://www.grid5000.fr/).
Publisher Copyright:
© 2022 IEEE.
PY - 2022
Y1 - 2022
N2 - 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, p-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.
AB - 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, p-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.
KW - Consensus
KW - Distributed Protocols
KW - Framework
KW - P2P
UR - http://www.scopus.com/inward/record.url?scp=85146343049&partnerID=8YFLogxK
U2 - 10.1109/SRDS55811.2022.00022
DO - 10.1109/SRDS55811.2022.00022
M3 - Conference contribution
AN - SCOPUS:85146343049
SN - 978-1-6654-9754-1
T3 - Proceedings of the IEEE Symposium on Reliable Distributed Systems
SP - 146
EP - 155
BT - Proceedings
PB - IEEE Computer Society Press
CY - New Jersey
Y2 - 19 September 2022 through 22 September 2022
ER -