A major challenge facing grid applications is the appropriate handling of failures. In this paper we address the problem of making parallel Java applications based on Remote Method Invocation (RMI) fault tolerant in a way transparent to the programmer. We use globally consistent checkpointing to avoid having to restart long-running computations from scratch after a system crash. The application's execution state can be captured at any time also when some of the application's threads are blocked waiting for the result of a (nested) remote method call. We modify only the program's bytecode which makes our solution independent from a particular Java Virtual Machine (JVM) implementation. The bytecode transformation algorithm performs a compile time analysis to reduce the number of modifications in the application's code which has a direct impact on the application's performance. The fault tolerance extensions encompass also the RMI components such as the RMI registry. Since essential data as checkpoints are replicated, our system is resilient to simultaneous failures of multiple machines. Experimental results show negligible performance overhead of our fault-tolerance extensions. © Springer-Verlag Berlin Heidelberg 2005.
CITATION STYLE
Garbacki, P., Biskupski, B., & Bal, H. (2005). Transparent fault tolerance for grid applications. In Lecture Notes in Computer Science (Vol. 3470, pp. 671–680). Springer Verlag. https://doi.org/10.1007/11508380_68
Mendeley helps you to discover research relevant for your work.