Simulating Distributed Executions in Kompact

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Abstract: Distributed systems are complex systems that offer highly scalable and reliable services. With that complexity comes the difficulty of developing and testing such systems as they are highly non-deterministic. Approaches like model checking are used to verify models of distributed systems formally, but the insufficient correlation between model and implementation, as well as the state-explosion problem, makes this approach sub-optimal. In real-world systems, transient sequences of events could result in failures, but these events can be both difficult to detect and reproduce. This thesis addresses the problem of testing distributed systems by proposing a way to test these systems through a discrete event simulator that is integrated into the distributed runtime Kompact. The simulator can run on real message-passing implementations and provides precise control over a simulation through what is referred to as fine-grained sequences of events. The flexibility of the simulator is demonstrated by using it to simulate and reproduce faulty behavior in the Raft consensus algorithm. Through state monitoring, the state transitions of such a simulation allow us to analyze and suspect the occurrence of liveness issues.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)