Skip to main content
Log in

Recoverable Class Loaders for a Fast Restart of Java Applications

  • Published:
Mobile Networks and Applications Aims and scope Submit manuscript

Abstract

We present recoverable class loaders to enable a fast start-up and recovery of Java applications. This is achieved by snapshooting the static state of Java applications namely the class loaders and their associated class objects, which are then recovered during subsequent restarts. Recoverable class loaders are especially useful in the context of mobile applications and mobile services. First, they allow to speed up shutdown and restart of applications for power- and resource-management reasons on resource-restricted mobile devices. Second, services can be much faster rebooted to cure software faults such as memory leaks thereby improving the availability of services. We implemented recoverable class loaders inside the JamVM and the OSGi middleware Oscar. For both cases of use—Java application restart and service recovery—we provide experimental evaluations that show a substantially reduced start-up time from up to 96%.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5

Similar content being viewed by others

References

  1. Borman S, Paice S, Webster M, Trotter M, McGuire R, Stevens A, Hutchison B, Berry R. A serially reusable Java (TM) virtual machine implementation for high volume, highly reliable, transaction processing. Technical Report TR 29.3406, IBM Hursley, Hursley Park, UK

  2. Candea G, Kawamoto S, Fujiki Y, Friedman G, Fox A (2004) Microreboot—a technique for cheap recovery. In: OSDI’04, USENIX, Berkeley, 5 December 2004, pp 31–44

  3. Standard Performance Evaluation Corporation (2008) SPEC JVM98 benchmarks. http://www.spec.org/osg/jvm98/

  4. Corrie B (2006) Java technology, IBM style: class sharing. http://www.ibm.com/developerworks/java/library/j-ibmjava4/

  5. Czajkowski G, Daynès L, Nystrom N (2002) Code sharing among virtual machines. In: ECOOP ’02. Springer, London, pp 155–177

    Google Scholar 

  6. The IEEE and The Open Group (2004) mmap() the open group base specifications issue 6, IEEE Std 1003.1. http://opengroup.org/onlinepubs/009695399/functions/mmap.html

  7. Jonkers HBM (1979) A fast garbage compaction algorithm. Inf Process Lett 9(1):26–30

    Article  Google Scholar 

  8. Kawachiya K, Ogata K, Silva D, Onodera T, Komatsu H, Nakatani T (2007) Cloneable JVM: a new approach to start isolated java applications faster. In: VEE ’07. ACM, New York, pp 1–11

    Chapter  Google Scholar 

  9. Lindholm T, Yellin F (1999) The Java (TM) virtual machine specification, 2nd edn. Sun Microsystems, Espoo

    Google Scholar 

  10. Lougher R (2007) JamVM. http://jamvm.sourceforge.net/

  11. Lowell DE, Chandra S, Chen PM (2000) Exploring failure transparency and the limits of generic recovery. In: OSDI’00, USENIX, Berkeley, 22–25 October 2000, pp 289–304

  12. Sun Microsystems (2004) JDK 5.0 Documentation. http://java.sun.com/j2se/1.5.0/docs/

  13. Sun Microsystems (2007) Official Java EE website. http://java.sun.com/javaee/

  14. The OSGi Alliance (2005) OSGi service platform: core specification, release 4. Technical report

  15. Suezawa T (2000) Persistent execution state of a Java virtual machine. In: JAVA ’00: proc. of the ACM 2000 conf on Java Grande. ACM, New York, pp 160–167

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vladimir Nikolov.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Nikolov, V., Kapitza, R. & Hauck, F.J. Recoverable Class Loaders for a Fast Restart of Java Applications. Mobile Netw Appl 14, 53–64 (2009). https://doi.org/10.1007/s11036-008-0115-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11036-008-0115-8

Keywords

Navigation