Efficient and deterministic record & replay for actor languages
Sprache des Titels:
Proceeding ManLang´18 Proceedings of the 15th International Conference on Managed Languages & Runtimes Article No. 15
With the ubiquity of parallel commodity hardware, developers
turn to high-level concurrency models such as the actor model to
lower the complexity of concurrent software. However, debugging
concurrent software is hard, especially for concurrency models with
a limited set of supporting tools. Such tools often deal only with
the underlying threads and locks, which obscures the view on e.g.
actors and messages and thereby introduces additional complexity.
To improve on this situation, we present a low-overhead record
& replay approach for actor languages. It allows one to debug
concurrency issues deterministically based on a previously recorded
trace. Our evaluation shows that the average run-time overhead for
tracing on benchmarks from the Savina suite is 10% (min. 0%, max.
20%). For Acme-Air, a modern web application, we see a maximum
increase of 1% in latency for HTTP requests and about 1.4 MB/s
of trace data. These results are a first step towards deterministic
replay debugging of actor systems in production.