CS 494/594 -- Distributed Systems Semester Project
Part 1: Simulation (due Nov 13)
This part of the project requires that you simulate the marker-based
distributed solution to taking snapshots.
Your simulation will read a list of events and simulated physical times
from standard input:
nodes
time1 event1
time2 event2
...
timen eventn
The first line of the input file is the number of nodes to be simulated.
Physical times are expressed as increasing integer values.
Events take one of these forms: either
-
m,p,n,t
meaning "send a message from process f to process n, taking physical time t to
arrive."
-
l,p,t
meaning "perform a local event at process p, taking physical time t to complete."
-
s,p
meaning "initiate a snapshot on process p."
The output of the program should be the physical and logical time that the snapshot is taken on each node and the latest message received at each node before the snapshot is taken, identified by the node number at time at which it was sent.
nodenumber,ptime,ltime,sender,stime
Input and output for a sample execution of the algorithm is available here.
Part 2 (due end of semester - exact date TBA)
This part of the project will require you to implement snapshots on actual concurrent processes. The choice of language and and message passing mechanism are up to each student.