# Design and Analysis of an Efficient Energy Algorithm in Wireless Social Sensor Networks
### Related Works  
Checkpoint technologies were first proposed for improving the fault tolerance ability of distributed systems. According to the relations between checkpoints, the checkpoint technologies can be divided to synchronous checkpointing [3; 9; 10; 11; 12] and asynchronous checkpointing [13; 14]. Synchronous checkpointing, also called coordinated checkpointing, is the method where all processes stay coordinated and store their states in some stable storage. This kind of checkpoints requires that the processes taking part in checkpointing do the checkpoints synchronously. Its advantages are a lack of cascade rollback and low recovery overhead, whereas it will require a lot of coordination messages and its checkpoint time is longer. On the basis of the interruption of the basic operations of processes, the synchronous checkpointing strategies could be further classified into two kinds: unblocking [3; 9] and blocking checkpointing [10; 11; 12]. According to the triggering occasion of checkpoints, they can be divided to checkpointing based on time [3] and checkpointing induced by communication [15; 16; 17; 18]. Asynchronous checkpointing, or independent checkpointing, is the method where every process takes its own checkpoint independently. This could avoid sending the coordination messages for checkpointing, but it has the disadvantages such as cascade rollback, higher storage space and longer recovery time. Mobile computing environments are typical wireless network applications. They have features such as mobility, limited resources and high failure probability, so the traditional distributed checkpointing algorithms can't be applied to this environment very well. [PERSON] et al. [19] put forward an adaptive algorithm which considers the quality of a wireless network. This algorithm proposed the concept of soft checkpoints and hard checkpoints. Soft checkpoints are stored in the MH\({}_{\text{s}}\), while hard checkpoints are stored in the stable storage of fixed network hosts (such as MSSs). After taking the number of maxSoft soft checkpoints every time, the process takes one hard checkpoint. The advantage of this method is that the value of maxSoft changes adaptively with the server quality of the network, but the MH\({}_{\text{s}}\) will store too many soft checkpoints and thus occupy a lot of storage space when the server quality of network in this method is worse. Some papers [20; 21; 22] adopted mobile agents to partake in the tasks of MSSs, but the existence of agents will cause increments in the message retransmissions and communication delays. Taking the mobility of wireless terminals into consideration, [PERSON] et al. [18; 23] proposed a checkpointing algorithm based on movement and logs. Namely, MH\({}_{\text{s}}\) take checkpoints independently when they pass a certain number of handoffs. However, this method has longer recovery time when the handoff rate of MH\({}_{\text{s}}\) is low. [PERSON] et al. [18; 24] came up with the mutable checkpoint which is stored in MH\({}_{\text{s}}\). The shortcoming of this strategy is that the number of mutable checkpoints induced by messages is large and most of these mutable checkpoints may become useless checkpoints. Recently, the related researches for ad hoc network are mainly focused on aspects such as the technologies of channel switching, network architecture, routing protocols, strategies for assuring Quality of Service (QoS), multicast protocols, energy conservation and security [25; 26; 27; 28; 29; 30; 31], but studies about the fault tolerance and reliability of ad hoc networks are relatively few. [PERSON] et al. [32] proposed an asynchronous checkpointing strategy which was applied to an ad hoc network, namely MH\({}_{\text{s}}\) could take checkpoints independently. In order to reduce the occupation of storage space in MH\({}_{\text{s}}\), the cluster heads store the message logs for MH\({}_{\text{s}}\).