ACM Home Page
Please provide us with feedback. Feedback
Dynamic software updates: a VM-centric approach
Full text PdfPdf (470 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation table of contents
Dublin, Ireland
SESSION: Adaptation table of contents
Pages 1-12  
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
Authors
Suriya Subramanian  The University of Texas at Austin, Austin, TX, USA
Michael Hicks  University of Maryland, College Park, MD, USA
Kathryn S. McKinley  The University of Texas at Austin, Austin, TX, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 41,   Downloads (12 Months): 201,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1542476.1542478
What is a DOI?

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 Jvolve, 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. Jvolve, 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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
3
 
4
 
5
 
6
 
7
Gavin Bierman, Michael Hicks, Peter Sewell, and Gareth Stoyle. Formalizing dynamic software updating. In Proc. Second International Workshop on Unanticipated Software Evolution, 2003.
 
8
 
9
10
11
12
 
13
 
14
Microsoft Corporation. Edit and continue. http://msdn2.microsoft.com/en-us/library/bcew296c.aspx, 2008.
 
15
M. Dmitriev. Towards flexible and safe technology for runtime evolution of java language applications. In Proc. Workshop on Engineering Complex Object-Oriented Systems for Evolution, 2001.
 
16
 
17
Marc Eaddy and Steven Feiner. Multi-language edit-and-continue for the masses. Technical Report CUCS-015-05, Columbia University Department of Computer Science, April 2005.
18
 
19
Slashdot forum. Patch the kernel without reboots. http://tech.slashdot.org/article.pl?sid=08/04/24/1334234, April 2008. Consists of a lively technical debate about the benefits and drawbacks of in-place dynamic updates vs. using redundant hardware.
 
20
Stephen Gilmore, Dilsun Kirli, and Chris Walton. Dynamic ML without dynamic types. Technical Report ECS-LFCS-97-378, LFCS, University of Edinburgh, 1997.
 
21
 
22
 
23
 
24
Kristis Makris and Rida Bazzi. Multi-threaded dynamic software updates using stack reconstruction. In Proc. USENIX Annual Technical Conference, 2009.
25
 
26
 
27
Sun Microsystems. Java Platform Debugger Architecture, 2004. This supports class replacement. See http://java.sun.com/javase/6/docs/technotes/guides/jpda/.
28
29
30
31
32
33
 
34
 
35
 
36
J. W. Pratt and J. D. Gibbons. Concepts of Nonparametric Theory. Springer-Verlag, 1981.
 
37
Tobias Ritzau and Jesper Andersson. Dynamic deployment of Java applications. In Proc. Java for Embedded Systems Workshop, 2000.
 
38
D. Scott. Assessing the Costs of Application Downtime. Gartner Group, 1998.
 
39
C. Soules, J. Appavoo, K. Hui, D. Da Silva, G. Ganger, O. Krieger, M. Stumm, R. Wisniewski, M. Auslander, M. Ostrowski, B. Rosenburg, and J. Xenidis. System support for online reconfiguration. In Proc. USENIX Annual Technical Conference, June 2003.
40
41
 
42
The Jikes RVM Core Team. VM performance comparisons, 2007. http://dacapo.anu.edu.au/regression/perf/head.html.
 
43
 
44
Benjamin Zorn. Personal communication, based on experience with Microsoft Windows customers, August 2005.


Collaborative Colleagues:
Suriya Subramanian: colleagues
Michael Hicks: colleagues
Kathryn S. McKinley: colleagues