Deterministic replay of Java multithreaded applications
Jong-Deok Choi, Harini Srinivasan
SIGMETRICS Parallel and Distributed Tools 1998
Execution behavior of a Java application can be non-deterministic due to concurrent threads of execution, thread scheduling, and variable network delays. This non-determinism in Java makes the understanding and debugging of multi-threaded distributed Java applications a difficult and a laborious process. It is well accepted that providing deterministic replay of application execution is a key step towards programmer productivity and program understanding. Towards this goal, we developed a replay framework based on logical thread schedules and logical intervals. An application of this framework was previously published in the context of a system called DejaVu that provides deterministic replay of multi-threaded Java programs on a single Java Virtual Machine(JVM). In contrast, this paper focuses on distributed DejaVu that provides deterministic replay of distributed Java applications running on multiple JVMs. We describe the issues and present the design, implementation and preliminary performance results of distributed DejaVu that supports both multi-threaded and distributed Java applications.
Jong-Deok Choi, Harini Srinivasan
SIGMETRICS Parallel and Distributed Tools 1998
Marcel-Catalin Rosu, Karsten Schwan
IPDPS 2000
G. Sevitsky, W. De Pauw, et al.
TOOLS 2001
V.C. Sreedhar, M. Burke, et al.
PLDI 2000