A Checkpointing-enabled and Resource-Aware Java VM for Efficient and Robust e-Science Applications in Grid Environments

Object-oriented programming languages presently are the dominant paradigm of application development (e.g., Java and .NET). Lately, increasingly more Java applications have long (or very long) execution times and manipulate large amounts of data/information, gaining relevance in fields related with e-Science (with Grid and Cloud computing). Significant examples include chemistry, computational biology and bioinformatics, with many available Java-based APIs (e.g., Neobio). Often, when the execution of such an application is terminated abruptly due to a failure (regardless of the cause being a hardware of software fault, lack of available resources,...), all of its work already performed is simply lost and, when the application is later re-initiated, it has to restart all its work from scratch, wasting resources and time, while also being prone to another failure, and may delay its completion with no deadline guarantees. Our proposed solution to address these issues is through incorporating mechanisms for checkpointing and migration in a Java VM. These make applications more robust and flexible by being able to move to other nodes, without any intervention from the programmer. This article provides a solution to Java applications with long execution times, by extending a Java VM (Jikes RVM) with such mechanisms. Copyright c ⃝ 2011 John Wiley & Sons, Ltd.

[1]  Andreas Prlic,et al.  Sequence analysis , 2003 .

[2]  René Bañares-Alcántara,et al.  A hierarchical approach for the redesign of chemical processes , 2007, Knowledge and Information Systems.

[3]  Cho-Li Wang,et al.  JESSICA2: a distributed Java Virtual Machine with transparent thread migration support , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[4]  Niranjan Suri,et al.  State Capture and Resource Control for Java: The Design and Implementation of the Aroma Virtual Machine , 2001, Java Virtual Machine Research and Technology Symposium.

[5]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[6]  E. Fama,et al.  Migration , 2007 .

[7]  Sara Bouchenak,et al.  Pickling threads state in the Java system , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[8]  Luís Veiga,et al.  Service and resource discovery in cycle-sharing environments with a utility algebra , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[9]  Matthias Hauswirth,et al.  Using Hardware Performance Monitors to Understand the Behavior of Java Applications , 2004, Virtual Machine Research and Technology Symposium.

[10]  Grzegorz Czajkowski,et al.  A resource management interface for the Java™ platform , 2005, Softw. Pract. Exp..

[11]  Wilson C. Hsieh,et al.  Processes in KaffeOS: isolation, resource management, and sharing in java , 2000, OSDI.

[12]  Jeffrey M. Bradshaw,et al.  Strong Mobility and Fine-Grained Resource Control in NOMADS , 2000, ASA/MA.

[13]  Stephen A. Rago,et al.  Advanced Programming in the UNIX(R) Environment (2nd Edition) , 2005 .

[14]  Stephen J. Fink,et al.  Design, implementation and evaluation of adaptive recompilation with on-stack replacement , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[15]  Takashi Suezawa,et al.  Persistent execution state of a Java virtual machine , 2000, JAVA '00.

[16]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[17]  Stephen J. Fink,et al.  The Jalapeño virtual machine , 2000, IBM Syst. J..

[18]  Wouter Joosen,et al.  Portable Support for Transparent Thread Migration in Java , 2000, ASA/MA.

[19]  Luís Veiga,et al.  OBIWAN: Design and Implementation of a Middleware Platform , 2003, IEEE Trans. Parallel Distributed Syst..

[20]  Roy Friedman,et al.  Virtual machine based heterogeneous checkpointing , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

[21]  Yue-Li Wang,et al.  Sequence Alignment Algorithms for Run-Length-Encoded Strings , 2008, COCOON.

[22]  Anja Feldmann,et al.  Live wide-area migration of virtual machines including local persistent state , 2007, VEE '07.

[23]  Akinori Yonezawa,et al.  Bytecode Transformation for Portable Thread Migration in Java , 2000, ASA/MA.

[24]  Joel H. Saltz,et al.  Sumatra: A Language for Resource-Aware Mobile Programs , 1996, Mobile Object Systems.

[25]  Cho-Li Wang,et al.  M-JavaMPI: A Java-MPI Binding with Process Migration Support , 2002, 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02).

[26]  Walter Binder,et al.  Platform-independent profiling in a virtual execution environment , 2009 .

[27]  Akinori Yonezawa,et al.  A Simple Extension of Java Language for Controllable Transparent Migration and Its Portable Implementation , 1999, COORDINATION.

[28]  Letizia Leonardi,et al.  Enabling Java mobile computing on the IBM Jikes research virtual machine , 2006, PPPJ '06.

[29]  Stefan Fünfrocken Transparent Migration of Java-Based Mobile Agents , 1998, Mobile Agents.

[30]  Dominik Gront,et al.  Utility library for structural bioinformatics , 2008, Bioinform..

[31]  Sacha Krakowiak,et al.  Experiences implementing efficient Java thread serialization, mobility and persistence , 2004, Softw. Pract. Exp..

[32]  Dejan S. Milojicic,et al.  Process migration , 1999, ACM Comput. Surv..

[33]  Michael Weber,et al.  Transparent Migration of Mobile Agents Using the Java Platform Debugger Architecture , 2001, Mobile Agents.