首页> 外文期刊>LIPIcs : Leibniz International Proceedings in Informatics >CROCHET: Checkpoint and Rollback via Lightweight Heap Traversal on Stock JVMs
【24h】

CROCHET: Checkpoint and Rollback via Lightweight Heap Traversal on Stock JVMs

机译:CROCHET:在库存JVM上通过轻量堆遍历进行检查点和回滚

获取原文
获取外文期刊封面目录资料

摘要

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 into 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 makes 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, e.g. 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 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.29x slowdown), and that it often outperforms a state-of-the-art system-level checkpoint tool when creating large checkpoints.
机译:检查点/回滚(CR)机制可为正在运行的应用程序的状态创建快照,以便稍后将其还原到该检查点快照。支持检查点/回滚支持许多程序分析和软件工程技术,包括测试生成,容错和推测性执行。某些现代操作系统内置了全自动CR支持。但是,这样的系统在虚拟内存的整个页面的粗粒度上执行检查点,这会产生相对较高的开销,以增量方式捕获进程的变化状态,并使应用程序仅检查其状态的某些逻辑部分变得困难。在应用程序级别实现且粒度更细的CR系统通常需要复杂的开发人员支持才能确定:(1)可以在哪里进行检查点,以及(2)需要复制哪个程序状态。一个流行的折衷方案是在托管运行时环境中实现CR支持,例如Java虚拟机(JVM),但这通常需要专门的非标准运行时环境,从而限制了此方法的可移植性和采用性。未经修改的商品JVM(特别是Oracle的HotSpot和OpenJDK)中的全自动细粒度轻量级检查点。利用关于现代JVM常见内部设计的关键见解,Crochet完全通过字节码重写和标准调试API进行工作,利用特殊的代理对象执行从根引用开始的惰性堆遍历,并在访问,复制或复制对象时遍历堆。根据需要还原状态,并在使用每个代理后立即将其删除。我们在DaCapo基准套件上评估了Crochet,发现它在稳定状态下的运行时开销非常低(从无开销到慢1.29倍的减速范围),并且在运行时其性能通常超过了最新的系统级检查点工具。创建大型检查点。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号