for a distributed algorithms class at EPFL we were asked to implement a reliable causal order broadcast algorithm in order to create a distributed data storage system across several independent processes
each process maintains its individual storage and therefore needs to coordinate its actions by broadcasting messages
a process can either write a value associated to a key or read the value of a key - hence two kind of possible messages: "put(key, value)" or "get(key)"
i chose to implement vector clock algorithm in java
to validate the correctness of the written code, one needs to analyse the plaintext output log of each running process - this task is cumbersome and error prone
this is why i created a program which takes text logs as inputs and outputs a schematic view of the execution of each process - therefore it is easier to see when and by whom messages have been broadcasted or delivered as well as the storage state of each process
each black line represents one process - alternate colored columns give time indication
a white rectangle followed by a colored circle indicates a broadcasted message - a thin colored rectangle indicates a message delivery - vector clock state is also printed
plain text log VS visual log
name | date | tech | java javascript distributed algorithms vector clocks |
DISTRIBUTED ALGORITHMS VISUALIZER | 2015 | ||
credits | Jonathan Link |