Low-disruptive dynamic updating of Java applications.

Tianxiao Gu,Chun Cao,Chang Xu,Xiaoxing Ma,Linghao Zhang,Jian Lü
DOI: https://doi.org/10.1016/j.infsof.2014.04.003
IF: 3.9
2014-01-01
Information and Software Technology
Abstract:Context: In-use software systems are destined to change in order to fix bugs or add new features. Shutting down a running system before updating it is a normal practice, but the service unavailability can be annoying and sometimes unacceptable. Dynamic software updating (DSU) migrates a running software system to a new version without stopping it. State-of-the-art Java DSU systems are unsatisfactory as they may cause a non-negligible system pause during updating.Objective: In this paper we present Javelus, a Java HotSpot VM-based Java DSU system with very short pausing time.Method: Instead of updating everything at once when the running application is suspended, Javelus only updates the changed code during the suspension, and migrates stale objects on-demand after the application is resumed. With a careful design this lazy approach neither sacrifices the update flexibility nor introduces unnecessary object validity checks or access indirections.Results: Evaluation experiments show that Javelus can reduce the updating pausing time by one to two orders of magnitude without introducing observable overheads before and after the dynamic updating.Conclusion: Our experience with Javelus indicates that low-disruptive and type-safe dynamic updating of Java applications can be practically achieved with a lazy updating approach. (C) 2014 Elsevier B.V. All rights reserved.
What problem does this paper attempt to address?