Article Preview
Top1. Introduction
Recent advances in the computing power of mobile devices has made it feasible to generate a true mobile grid (MG) (Savyanavar et al., 2013) consisting of only mobile devices for high performance computations. Collaborative computing using MG involves a number of mobile devices like laptop, cell phones, PDA, wearable computing devices and mobile robotic systems. MG provides a framework for numerous real-life applications in the areas of healthcare, disaster management and military applications. Addressing failure of nodes is more critical in MG than conventional wired grids due to host mobility, dynamicity, less reliable wireless links and frequent disconnections in mobile systems. Mobility (Savyanavar et al., 2015) of the nodes aggravates the reliability issue in MG. MG follows peer-to-peer computing architecture (Tung et al., 2012). Due to peer volatility, peer failure is a critical issue in peer-to-peer computing. In such networks, a peer may leave unpredictably. This peer may be executing a subtask, which would fail abruptly and hence affect the overall execution of the application. An efficient fault tolerance mechanism is pivotal for successful execution of the application. Replication and rollback (Treaster et al., 2005) are two failure handling techniques, which can be deployed to achieve robustness. Replication creates a copy called replica at one or multiple sites by storing on a stable storage. If original copy fails, replica can be used by the application to progress. In the case of a rollback recovery technique, when a failure occurs the system is restored to a previous stable state which was preserved.
MG should ideally self-heal (H. Viswanathan et al., 2012) itself from failures without any manual intervention and resume its computations. One viable solution to recover from failure is via checkpointing (Alshareef et al., 2017). It is a method or practice of saving a process state to a stable storage periodically. So, whenever a fault occurs, we don't have to restart the failed task. Rather we use the last saved state to recover from the failure occurrence. These saved states are called checkpoints. Checkpointing approach is a fault tolerance approach that incorporates two aspects, i.e., checkpoint storage and rollback recovery. The modus operandi of checkpointing strategy is as shown in Figure 1. It depicts that the periodically saved state can be used to rollback and resume the execution of the failed task from the last checkpoint.
Figure 1. Concept of checkpointing (Rajwinder Singh et al., 2013)
Traditionally available checkpointing approaches cannot be directly applied to MG. There are different categories (Nandhini et al., 2017) of checkpointing which are based on the requirements of the application. Following attributes can aid in deciding the kind of checkpointing required: abstraction level, message coordination, initiator, granularity, scope and storage space. Checkpointing in MG involves identifying an appropriate node where intermediate computed data can be stored for recovery if failure occurs. A challenging issue is the identification of a node which can potentially be paired for storing the checkpointed data and the ability to resume execution if required. This is termed as checkpointing arrangement. Static arrangement is possible when we have a wired grid but for MGs dynamic arrangement is the only option because of the dynamicity involved. A node which has less mobility, high storage space, strong connectivity and high battery level is an ideal candidate for pairing. These aspects will help improve the stability of the determined arrangement.
Due to limited storage space on mobile nodes, a decentralized checkpointing approach is to be adopted where each node participates in the pairing arrangement. A centralized or coordinated approach is futile since failure of mobile nodes is common and also it will result in an increased communication cost. Each node will initiate the search for its partner based on the choices that it has in its locality. The approach must concentrate on finding a local optima instead of a global one.
An application with computationally intensive tasks is a good candidate for checkpointing since these tasks require substantial time and resources for execution. Trivial tasks need not be checkpointed rather a better option would be to re-execute them.
Checkpointing issues in resource constrained mobile devices pose serious challenges like: