DocumentCode
628211
Title
Distal: A framework for implementing fault-tolerant distributed algorithms
Author
Biely, Martin ; Delgado, Pamela ; Milosevic, Zoran ; Schiper, Andre
Author_Institution
Ecole Polytech. Fed. de Lausanne (EPFL), Lausanne, Switzerland
fYear
2013
fDate
24-27 June 2013
Firstpage
1
Lastpage
8
Abstract
We introduce Distal, a new framework that simplifies turning pseudocode of fault tolerant distributed algorithms into efficient executable code. Without proper tool support, even small amounts of pseudocode normally ends up in several thousands of non-trivial lines of Java or C++. Distal is implemented as a library in Scala and consists of two main parts: a domain specific language (DSL) in which algorithms are expressed and an efficient messaging layer that deals with low level issues such as connection management, threading and (de)serialization. The DSL is designed such that implementations of distributed algorithms highly resemble the pseudocode found in research papers. By writing code that is close to the protocol description, one can be more convinced that the implemented system really reflects the protocol specification on paper. Distal does not only make it simple and intuitive to implement distributed algorithms but it also leads to efficient implementations.
Keywords
C++ language; Java; distributed algorithms; protocols; software fault tolerance; software libraries; C++; DSL; Distal; Java; Scala; domain specific language; executable code; fault tolerant distributed algorithms; protocol description; protocol specification; pseudocode turning; Algorithm design and analysis; DSL; Distributed algorithms; Fault tolerance; Fault tolerant systems; Java; Protocols; DSL; Paxos; SMR; fault-tolerant distributed algorithms;
fLanguage
English
Publisher
ieee
Conference_Titel
Dependable Systems and Networks (DSN), 2013 43rd Annual IEEE/IFIP International Conference on
Conference_Location
Budapest
ISSN
1530-0889
Print_ISBN
978-1-4673-6471-3
Type
conf
DOI
10.1109/DSN.2013.6575306
Filename
6575306
Link To Document