ML4PL 2018
Mon 16 - Sat 21 July 2018 Amsterdam, Netherlands
co-located with ECOOP and ISSTA 2018
Fri 20 Jul 2018 14:15 - 14:40 at Zurich II - Runtime Systems Chair(s): Christian Hammer

Checkpoint/rollback (CR) mechanisms create snapshots of the state of a running application, allowing it to later be restored to that checkpointed snapshot. Support for checkpoint/rollback enables many program analyses and software engineering techniques, including test generation, fault tolerance, and speculative execution. Fully automatic CR support is built-in to some modern operating systems. However, such systems perform checkpoints at the coarse granularity of whole pages of virtual memory, which imposes relatively high overhead to incrementally capture the changing state of a process, and make it difficult for applications to checkpoint only some logical portions of their state. CR systems implemented at the application level and with a finer granularity typically require complex developer support to identify: (1) where checkpoints can take place, and (2) which program state needs to be copied. A popular compromise is to implement CR support in managed runtime environments, eg the Java Virtual Machine (JVM), but this typically requires specialized, non-standard runtime environments, limiting portability and adoption of this approach.

In this paper, we present a novel approach for Checkpoint ROllbaCk via lightweight HEap Traversal (CROCHET), which enables fully automatic fine-grained lightweight checkpoints within unmodified commodity JVMs (specifically Oracle’s HotSpot and OpenJDK). Leveraging key insights about the internal design common to modern state-of-the-art JVMs, CROCHET works entirely through bytecode rewriting and standard debug APIs, utilizing special proxy objects to perform a lazy heap traversal that starts at the root references and traverses the heap as objects are accessed, copying or restoring state as needed and removing each proxy immediately after it is used. We evaluated CROCHET on the DaCapo benchmark suite, finding it to have very low runtime overhead in steady state (ranging from no overhead to 1.13x slowdown), and that it often outperforms a state-of-the-art system-level checkpoint tool when creating checkpoints.

Fri 20 Jul

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:50 - 15:30
Runtime SystemsECOOP Research Papers at Zurich II
Chair(s): Christian Hammer University of Potsdam
13:50
25m
Research paper
Accelerating Dynamically-Typed Languages on Heterogeneous Platforms Using Guards Optimization
ECOOP Research Papers
Mohaned Qunaibit University of California, Irvine, Stefan Brunthaler Bundeswehr University Munich, Yeoul Na , Stijn Volckaert University of California, Irvine, Michael Franz University of California, Irvine
DOI
14:15
25m
Research paper
CROCHET: Checkpoint and Rollback via Lightweight Heap Traversal on Stock JVMs
ECOOP Research Papers
Jonathan Bell George Mason University, Luís Pina George Mason University
DOI Pre-print Media Attached
14:40
25m
Research paper
ThingsMigrate: Platform-Independent Migration of Stateful JavaScript IoT Applications
ECOOP Research Papers
Julien Gascon-Samson , Kumseok Jung University of British Columbia, Shivanshu Goyal University of British Columbia, Armin Rezaiean-Asel University of British Columbia, Karthik Pattabiraman University of British Columbia
DOI
15:05
25m
Research paper
Automating Object Transformations for Dynamic Software Updating via Online Execution Synthesis
ECOOP Research Papers
Tianxiao Gu , Xiaoxing Ma Nanjing University, Chang Xu Nanjing University, Yanyan Jiang Nanjing University, Chun Cao Nanjing University, Jian Lu Nanjing University
DOI