Affiliation:
1. The University of Texas at Austin, Austin, TX, USA
2. University of Maryland, College Park, MD, USA
Abstract
Software evolves to fix bugs and add features. Stopping and restarting programs to apply changes is inconvenient and often costly. Dynamic software updating (DSU) addresses this problem by updating programs while they execute, but existing DSU systems for managed languages do not support many updates that occur in practice and are inefficient. This paper presents the design and implementation of J
volve
, a DSU-enhanced Java VM. Updated programs may add, delete, and replace fields and methods anywhere within the class hierarchy. Jvolve implements these updates by adding to and coordinating VM classloading, just-in-time compilation, scheduling, return barriers, on-stack replacement, and garbage collection. J
volve
, is
safe
: its use of bytecode verification and VM thread synchronization ensures that an update will always produce type-correct executions. Jvolve is
flexible
: it can support 20 of 22 updates to three open-source programs--Jetty web server, JavaEmailServer, and CrossFTP server--based on actual releases occurring over 1 to 2 years. Jvolve is
efficient
: performance experiments show that incurs
no overhead
during steady-state execution. These results demonstrate that this work is a significant step towards practical support for dynamic updates in virtual machines for managed languages.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
26 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. RUSPATCH: Towards Timely and Effectively Patching Rust Applications;2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS);2023-10-22
2. Deep Semantic Versioning for Evolution and Variability;23rd International Symposium on Principles and Practice of Declarative Programming;2021-09-06
3. Preserving instance state during refactorings in live environments;Future Generation Computer Systems;2020-09
4. Cetratus: A framework for zero downtime secure software updates in safety‐critical systems;Software: Practice and Experience;2020-03-20
5. Software Evolution with a Typeful Version Control System;Software Engineering and Formal Methods;2019