A study of the internal and external effects of concurrency bugs
2010 IEEE/IFIP International Conference on Dependable Systems …, 2010•ieeexplore.ieee.org
Concurrent programming is increasingly important for achieving performance gains in the
multi-core era, but it is also a difficult and error-prone task. Concurrency bugs are particularly
difficult to avoid and diagnose, and therefore in order to improve methods for handling such
bugs, we need a better understanding of their characteristics. In this paper we present a
study of concurrency bugs in MySQL, a widely used database server. While previous studies
of real-world concurrency bugs exist, they have centered their attention on the causes of …
multi-core era, but it is also a difficult and error-prone task. Concurrency bugs are particularly
difficult to avoid and diagnose, and therefore in order to improve methods for handling such
bugs, we need a better understanding of their characteristics. In this paper we present a
study of concurrency bugs in MySQL, a widely used database server. While previous studies
of real-world concurrency bugs exist, they have centered their attention on the causes of …
Concurrent programming is increasingly important for achieving performance gains in the multi-core era, but it is also a difficult and error-prone task. Concurrency bugs are particularly difficult to avoid and diagnose, and therefore in order to improve methods for handling such bugs, we need a better understanding of their characteristics. In this paper we present a study of concurrency bugs in MySQL, a widely used database server. While previous studies of real-world concurrency bugs exist, they have centered their attention on the causes of these bugs. In this paper we provide a complementary focus on their effects, which is important for understanding how to detect or tolerate such bugs at run-time. Our study uncovered several interesting facts, such as the existence of a significant number of latent concurrency bugs, which silently corrupt data structures and are exposed to the user potentially much later. We also highlight several implications of our findings for the design of reliable concurrent systems.
ieeexplore.ieee.org