vix.ing · top · new · best · stats · spec

A serializability violation detector for shared-memory server programs

2005/06/12 by Min Xu, Rastislav Bodík, Mark D. Hill
Computer Science · #Distributed systems and fault tolerance #Parallel Computing and Optimization Techniques #Software System Performance and Reliability

paper · doi:10.1145/1064978.1065013

openalex publication_date 2005/06/12 · openalex created_date 2025/10/10 · openalex updated_date 2026/06/11

Abstract

We aim to improve reliability of multithreaded programs by proposing a dynamic detector that detects potentially erroneous program executions and their causes. We design and evaluate a Serializability Violation Detector (SVD) that has two unique goals: (I) triggering automatic recovery from erroneous executions using backward error recovery (BER), or simply alerting users that a software error may have occurred; and (II) helping debug programs by revealing causes of error symptoms.Two properties of SVD help in achieving these goals. First, to detect only erroneous executions, SVD checks serializability of atomic regions, which are code regions that need to be executed atomically. Second, to improve usability, SVD does not require a priori annotations of atomic regions; instead, SVD approximates them using a heuristic. Experimental results on three widely-used multithreaded server programs show that SVD finds real bugs and reports modest false positives. The goal of this paper is to develop a detector suitable for (I) BER-based avoidance of erroneous program executions; and (II) alerting users as software errors occur. We argue that such a detector should have the following two properties.

Citations

Related