Ditto – Deterministic Execution Replayability-as-a-Service for Java VM on Multiprocessors - Middleware 2013
Conference Papers Year : 2013

Ditto – Deterministic Execution Replayability-as-a-Service for Java VM on Multiprocessors

Abstract

Alongside the rise of multi-processor machines, concurrent programming models have grown to near ubiquity. Programs built on these models are prone to bugs with rare pre-conditions, arising from unanticipated interactions between parallel tasks. Replayers can be efficient on uni-processor machines, but struggle with unreasonable overhead on multi-processors, both concerning slowdown of the execution time and size of the replay log. We present Ditto, a deterministic replayer for concurrent JVM applications executed on multi-processor machines, using both state-of-the-art and novel techniques. The main contribution of Ditto is a novel pair of recording and replaying algorithms that: (a) serialize memory accesses at the instance field level, (b) employ partial transitive reduction and program-order pruning on-the-fly, (c) take advantage of TLO static analysis, escape analysis and JVM compiler optimizations to identify thread-local accesses, and (d) take advantage of a lightweight checkpoint mechanism to avoid large logs in long running applications with fine granularity interactions, and for faster replay to any point in execution. The results show that Ditto out-performs previous deterministic replayers targeted at Java programs.
Fichier principal
Vignette du fichier
978-3-642-45065-5_21_Chapter.pdf (732.01 Ko) Télécharger le fichier
Origin Files produced by the author(s)

Dates and versions

hal-01480786 , version 1 (01-03-2017)

Licence

Identifiers

Cite

João M. Silva, José Simão, Luís Veiga. Ditto – Deterministic Execution Replayability-as-a-Service for Java VM on Multiprocessors. 14th International Middleware Conference (Middleware), Dec 2013, Beijing, China. pp.405-424, ⟨10.1007/978-3-642-45065-5_21⟩. ⟨hal-01480786⟩
73 View
107 Download

Altmetric

Share

More