Luís Pina
and
Luís Veiga
and
Michael Hicks
In Proceedings of the ACM 2014 International Conference on Object-Oriented Programming Languages, Systems, and Applications (OOPSLA)
October, 2014
This paper presents Rubah, the first dynamic software updating system for Java that: is portable, implemented via libraries and bytecode rewriting on top of a standard JVM; is efficient, imposing essentially no overhead on normal, steady-state execution; is flexible, allowing nearly arbitrary changes to classes between updates; and is non-disruptive employing either a novel eager algorithm that transforms the program state with multiple threads, or a novel lazy algorithm that transforms objects as they are demanded, post-update. Requiring little programmer effort, Rubah has been used to dynamically update five long-running applications: the H2 database, the Voldemort key-value store, the Jake2 implementation of the Quake 2 shooter game, the CrossFTP server, and the JavaEmailServer.
@inproceedings{pina14oopsla, title = {Rubah: {DSU} for Java on a Stock {JVM}}, author = {Pina, Lu\'{\i}s and Veiga, Lu\'{\i}s and Hicks, Michael}, booktitle = {Proceedings of the {ACM} 2014 International Conference on Object-Oriented Programming Languages, Systems, and Applications}, year = {2014}, month = OCT, series = {OOPSLA '14}, location = {Portland, OR, USA}, publisher = {ACM}, }