{'fraction_non_alphanumeric': 0.03745819397993311, 'fraction_numerical': 0.0026755852842809363, 'mean_word_length': 5.106122448979592, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
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.