Causal-Consistent Debugging of Distributed Erlang

Fabbretti, Giovanni (2020) Causal-Consistent Debugging of Distributed Erlang. [Laurea magistrale], Università di Bologna, Corso di Studio in Informatica [LM-DM270]
Documenti full-text disponibili:
[img] Documento PDF (Thesis)
Disponibile con Licenza: Creative Commons: Attribuzione - Condividi allo stesso modo 4.0 (CC BY-SA 4.0)

Download (1MB)


The main purpose of this work is to study the reversibility in a concurrent and distributed environment. Reversing the execution of a program in such environment is not straightforward, indeed in order to undo a step performed by one of the, potentially many, processes of the system one has to make sure that also all of its consequences, if any, have been undone beforehand. This notion is usually referred to as causal consistency. Here, we study reversibility in the context of the Erlang language. In order to reverse the execution of a concurrent and distributed erlang program we define a forward semantics which, at each step performed by the program, stores in an external device, called history, auxiliary pieces of information that later on can be used to undo the step. In addition to the forward semantics we also develop a backward semantics and a rollback semantics, the former tells how and when we can undo a step while the latter allows us to undo several steps in an automatic manner. Lastly, we present a proof-of-concept implementation of a debugger able to reverse the execution of a concurrent and distributed program written in Erlang.

Tipologia del documento
Tesi di laurea (Laurea magistrale)
Autore della tesi
Fabbretti, Giovanni
Relatore della tesi
Corso di studio
Ordinamento Cds
Parole chiave
reversibility,debugging,causal consistency,concurrent and distributed systems,erlang
Data di discussione della Tesi
17 Dicembre 2020

Altri metadati

Statistica sui download

Gestione del documento: Visualizza il documento