kirancodes.me
To Proof Maintenance & Beyond!

Line-up: a complete and automatic linearizability checker

Sebastian Burckhardt, Chris Dern, Madanlal Musuvathi, Roy Tan

Abstract

Modular development of concurrent applications requires thread-safe components that behave correctly when called concurrently by multiple client threads. This paper focuses on linearizability, a specific formalization of thread safety, where all operations of a concurrent component appear to take effect instantaneously at some point between their call and return. The key insight of this paper is that if a component is intended to be deterministic, then it is possible to build an automatic linearizability checker by systematically enumerating the sequential behaviors of the component and then checking if each its concurrent behavior is equivalent to some sequential behavior.

Related papers