Techniques for data-race detection and fault tolerance: A survey

Yasir Hafeez, Muhammad Azeem Abbas, Ghulam Mustafa · 2012

There are two primary methods for interactions among processes in concurrent software, i.e., shared memory and message passing. Both of these methods require synchronization routines implicitly or explicitly for concurrency control. Explicit synchronization techniques are language independent, while implicit techniques depend on the programming language. Synchronization techniques are prone to various types of faults which may cause the software to fail. Fault tolerance techniques have been effectively employed to tolerate such failures. In this paper, we present a critical analysis of the existing fault tolerance techniques designed to tolerate a particular type of synchronization failure that is caused by data race condition. Previous work shows that synchronization faults occur primarily due to large communication between processes. We provide an overview of techniques used for reducing communication and concurrency control faults. To analyze the existing fault tolerance techniques for synchronization failures, we have identified a set of criteria. The results of our evaluation have been summarized in a table at the end.

Read the paper · More papers on PaperTik