PLSEJan 14, 2020

Atomicity Checking in Linear Time using Vector Clocks

arXiv:2001.04961v328 citations
Originality Incremental advance
AI Analysis

This addresses scalability issues for developers debugging multi-threaded software, though it is incremental as it builds on existing conflict serializability methods.

The paper tackles the problem of efficiently checking atomicity in multi-threaded programs by introducing AeroDrome, a novel algorithm that uses vector clocks to detect violations of conflict serializability in linear time, achieving significant speedup in experiments with large traces.

Multi-threaded programs are challenging to write. Developers often need to reason about a prohibitively large number of thread interleavings to reason about the behavior of software. A non-interference property like atomicity can reduce this interleaving space by ensuring that any execution is equivalent to an execution where all atomic blocks are executed serially. We consider the well studied notion of conflict serializability for dynamically checking atomicity. Existing algorithms detect violations of conflict serializability by detecting cycles in a graph of transactions observed in a given execution. The number of edges in such a graph can grow quadratically with the length of the trace making the analysis not scalable. In this paper, we present AeroDrome, a novel single pass linear time algorithm that uses vector clocks to detect violations of conflict serializability in an online setting. Experiments show that AeroDrome scales to traces with a large number of events with significant speedup.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes