@article {18648,
	title = {A global-state-triggered fault injector for distributed system evaluation},
	journal = {Parallel and Distributed Systems, IEEE Transactions on},
	volume = {15},
	year = {2004},
	month = {2004/07//},
	pages = {593 - 605},
	abstract = {Validation of the dependability of distributed systems via fault injection is gaining importance because distributed systems are being increasingly used in environments with high dependability requirements. The fact that distributed systems can fail in subtle ways that depend on the state of multiple parts of the system suggests that a global-state-based fault injection mechanism should be used to validate them. However, global-state-based fault injection is challenging since it is very difficult in practice to maintain the global state of a distributed system at runtime with minimal intrusion into the system execution. We present Loki, a global-state-based fault injector, which has been designed with the goals of low intrusion, high precision, and high flexibility. Loki achieves these goals by utilizing the ideas of partial view of global state, optimistic synchronization, and offline analysis. In Loki, faults are injected based on a partial, view of the global state of the system, and a post-runtime analysis is performed to place events and injections into a single global timeline and to discard experiments with incorrect fault injections. Finally, the experiments with correct fault injections are used to estimate user-specified performance and dependability measures. A flexible measure language has been designed that facilitates the specification of a wide range of measures.},
	keywords = {distributed processing, distributed system evaluation, fault tolerant computing, global-state-based fault injection mechanism, Loki, offline clock synchronization, performance evaluation, post-runtime analysis, Synchronisation, system recovery, user-specified performance},
	isbn = {1045-9219},
	doi = {10.1109/TPDS.2004.14},
	author = {Chandra,Ramesh and Lefever,R.M. and Joshi,K.R. and Michel Cukier and Sanders,W. H.}
}
@conference {19501,
	title = {On-chip stochastic communication [SoC applications]},
	booktitle = {Design, Automation and Test in Europe Conference and Exhibition, 2003},
	year = {2003},
	month = {2003///},
	pages = {790 - 795},
	abstract = {As CMOS technology scales down into the deep-submicron (DSM) domain, the costs of design and verification for systems-on-chip (SoCs) are rapidly increasing due to the inefficiency of traditional CAD tools. Relaxing the requirement of 100\% correctness for devices and interconnects drastically reduces the costs of design but, at the same time, requires that SoCs be designed with some system-level fault-tolerance. In this paper, we introduce a new communication paradigm for SoCs, namely stochastic communication. The newly proposed scheme not only separates communication from computation, but also provides the required built-in fault-tolerance to DSM failures, is scalable and cheap to implement. For a generic tile-based architecture, we show how a ubiquitous multimedia application (an MP3 encoder) can be implemented using stochastic communication in an efficient and robust manner. More precisely, up to 70\% data upsets, 80\% packet drops because of buffer overflow, and severe levels of synchronization failures can be tolerated while maintaining a low latency.},
	keywords = {buffer overflow, CMOS technology, CMOS technology scaling, Costs, data upsets, Design automation, Digital audio players, Fault tolerance, Fault tolerant systems, generic tile-based architecture, integrated circuit design, integrated circuit interconnections, interconnect correctness requirements, Logic Design, logic simulation, MP3 encoder, Multiprocessor interconnection networks, on-chip fault-tolerance, on-chip stochastic communication, packet drops, Pervasive computing, Robustness, SoC design, SoC verification, Stochastic processes, Synchronisation, synchronization failures, system latency, system-level fault-tolerance, system-on-chip, systems-on-chip, video coding},
	author = {Tudor Dumitras and Marculescu, R.}
}
@conference {18678,
	title = {Loki: a state-driven fault injector for distributed systems},
	year = {2000},
	month = {2000///},
	pages = {237 - 242},
	abstract = {Distributed applications can fail in subtle ways that depend on the state of multiple parts of a system. This complicates the validation of such systems via fault injection, since it suggests that faults should be injected based on the global state of the system. In Loki, fault injection is performed based on a partial view of the global state of a distributed system, i.e. faults injected in one node of the system can depend on the state of other nodes. Once faults are injected, a post-runtime analysis, using off-line clock synchronization, is used to place events and injections on a single global timeline and to determine whether the intended faults were properly injected. Finally, experiments containing successful fault injections are used to estimate the specified measures. In addition to briefly reviewing the concepts behind Loki and its organization, we detail Loki{\textquoteright}s user interface. In particular, we describe the graphical user interfaces for specifying state machines and faults, for executing a campaign and for verifying whether the faults were properly injected},
	keywords = {campaign execution, computer testing, distributed applications failure, distributed processing, distributed system validation, Fault diagnosis, fault event placement, fault specification, global system state, global timeline, Graphical user interfaces, Loki, off-line clock synchronization, post-runtime analysis, specified measures estimation, state machine specification, state-driven fault injection, Synchronisation},
	doi = {10.1109/ICDSN.2000.857544},
	author = {Chandra,R. and Lefever,R.M. and Michel Cukier and Sanders,W. H.}
}
@conference {18672,
	title = {Fault injection based on a partial view of the global state of a distributed system},
	year = {1999},
	month = {1999///},
	pages = {168 - 177},
	abstract = {This paper describes the basis for and preliminary implementation of a new fault injector, called Loki, developed specifically for distributed systems. Loki addresses issues related to injecting correlated faults in distributed systems. In Loki, fault injection is performed based on a partial view of the global state of an application. In particular, facilities are provided to pass user-specified state information between nodes to provide a partial view of the global state in order to try to inject complex faults successfully. A post-runtime analysis, using an off-line clock synchronization and a bounding technique, is used to place events and injections on a single global time-line and determine whether the intended faults were properly injected. Finally, observations containing successful fault injections are used to estimate specified dependability measures. In addition to describing the details of our new approach, we present experimental results obtained from a preliminary implementation in order to illustrate Loki{\textquoteright}s ability to inject complex faults predictably},
	keywords = {bounding technique, clock synchronization, distributed programming, distributed software systems, fault injection, Loki, post-runtime analysis, program testing, program verification, software reliability, Synchronisation},
	doi = {10.1109/RELDIS.1999.805093},
	author = {Michel Cukier and Chandra,R. and Henke,D. and Pistole,J. and Sanders,W. H.}
}
