  Fog computing is an emerging computing paradigm which is mainly suitable for
time-sensitive and real-time Internet of Things (IoT) applications. Academia
and industries are focusing on the exploration of various aspects of Fog
computing for market adoption. The key idea of the Fog computing paradigm is to
use idle computation resources of various handheld, mobile, stationery and
network devices around us, to serve the application requests in the Fog-IoT
environment. The devices in the Fog environment are autonomous and not
exclusively dedicated to Fog application processing. Due to that, the
probability of device failure in the Fog environment is high compared with
other distributed computing paradigms. Solving failure issues in Fog is crucial
because successful application execution can only be ensured if failure can be
handled carefully. To handle failure, there are several techniques available in
the literature, such as checkpointing and task migration, each of which works
well in cloud based enterprise applications that mostly deals with static or
transactional data. These failure handling methods are not applicable to highly
dynamic Fog environment. In contrast, this work focuses on solving the problem
of managing application failure in the Fog environment by proposing a composite
solution (combining fuzzy logic-based task checkpointing and task migration
techniques with task replication) for failure handling and generating a robust
schedule. We evaluated the proposed methods using real failure traces in terms
of application execution time, delay and cost. Average delay and total
processing time improved by 56% and 48% respectively, on an average for the
proposed solution, compared with the existing failure handling approaches.
