Software Open Access

On the Complexity of Checking Transactional Consistency

Ranadeep Biswas; Constantin Enea

Abstract

Transactions simplify concurrent programming by enabling computations on shared data that are isolated from other concurrent computations and resilient to failures. Modern databases provide different consistency models for transactions corresponding to different tradeoffs between consistency and availability. In this work, we investigate the problem of checking whether a given execution of a transactional database adheres to some consistency model. We show that consistency models like read committed, read atomic, and causal consistency are polynomial time checkable while prefix consistency and snapshot isolation are NP-complete in general. These results complement a previous NP-completeness result concerning serializability. Moreover, in the context of NP-complete consistency models, we devise algorithms which are polynomial time assuming that certain parameters in the input executions, e.g., the number of sessions, are fixed. We evaluate the scalability of these algorithms in the context of several production databases.

Files (755.2 MB)
Name Size
LICENSE
md5:10a16b49416ed7dd5a24ca7673e97244
1.1 kB Download
paper_214.tar.bz
md5:e43b47006d2b8a64bac8c51370682aa8
755.2 MB Download
README.md
md5:483600db4f57e8a12349d057f3353cde
6.0 kB Download
26
28
views
downloads
All versions This version
Views 2615
Downloads 2812
Data volume 4.5 GB1.5 GB
Unique views 1511
Unique downloads 105

Share

Cite as