Verifying Weakly Consistent Transactional Programs Using Symbolic Execution

Conference Paper (2020)
Author(s)

Burcu Kulahcioglu Özkan (Max Planck Institute for Software Systems)

Affiliation
External organisation
DOI related publication
https://doi.org/10.1007/978-3-030-67087-0_17
More Info
expand_more
Publication Year
2020
Language
English
Affiliation
External organisation
Pages (from-to)
261-278
ISBN (print)
9783030670863

Abstract

We present a method for verifying whether all executions of a set of transactions satisfy a given invariant when run on weakly consistent systems. Existing approaches check that all executions under weak consistency are equivalent to some serial execution of the transactions, and separately that the serial executions satisfy the invariant. While sound, this can be overly strict. Programs running on systems with weak guarantees are usually designed to tolerate some anomalies w.r.t. the serial semantics and yet maintain some expected program invariants even on executions that are not serializable. In contrast, our technique does not restrict possible executions to be serializable, but directly checks whether given program properties hold w.r.t. all executions allowed under varying consistency models. Our approach uses symbolic execution techniques and satisfiability checkers. We summarize the effects of transactions using symbolic execution and build a satisfiability formula that precisely captures all possible valuations of the data variables under a given consistency model. Then, we check whether the program invariants hold on the resulting symbolic set of behaviors. Our encoding is parameterized over the underlying consistency specification. Hence, the programmer can check the correctness of a program under several consistency models—eventual consistency, causal consistency, (parallel) snapshot isolation, serializability— and identify the level of consistency needed to satisfy the application-level invariants.

No files available

Metadata only record. There are no files for this record.