Thursday, January 28, 2010

Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs

Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs
by Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson

Important Points --
* Provides a tool to detect race conditions simpler, more efficiently and more thorughly than previous tools.
* Provides a tool based on locking displine being satisfied, which are more commonly used for synchronization of multi-threaded programs of the time.
* Even catches race of dynamically allocated data, which was not possible easily by prior dynamic race detection tools.
* It handles cases that could have caused false alarms in a naive implementation like memory reuse, private locks, benign races.

---
Deficiencies --
* Since it is a testing tool, it cannot guarantee that programs are free from races. The ideal solution is still to be found.
* It would not be used for systems that deploy other synchronization primitives.
* Slows down the performance of the system.
* It's implementation is OS specific, the paper does not provide a standard tool that could be used with different operating systems and different synchronization mechanisms.
--
Conclusion--
I think the paper does provide an effective way to test dynamic race conditions on certain programs that follow the lock discipline, and their implementation tries to cover a lot of different use cases. Though, they have not been able to provide a generic framework that could be used for different operating systems, and different synchronization mechanisms.

No comments: