Robustness Against Transactional Causal Consistency

06/28/2019
by   Sidi Mohamed Beillahi, et al.
0

Distributed storage systems and databases are widely used by various types of applications. Transactional access to these storage systems is an important abstraction allowing application programmers to consider blocks of actions (i.e., transactions) as executing atomically. For performance reasons, the consistency models implemented by modern databases are weaker than the standard serializability model, which corresponds to the atomicity abstraction of transactions executing over a sequentially consistent memory. Causal consistency for instance is one such model that is widely used in practice. In this paper, we investigate application-specific relationships between several variations of causal consistency and we address the issue of verifying automatically if a given transactional program is robust against causal consistency, i.e., all its behaviors when executed over an arbitrary causally consistent database are serializable. We show that programs without write-write races have the same set of behaviors under all these variations, and we show that checking robustness is polynomial time reducible to a state reachability problem in transactional programs over a sequentially consistent shared memory. A surprising corollary of the latter result is that causal consistency variations which admit incomparable sets of behaviors admit comparable sets of robust programs. This reduction also opens the door to leveraging existing methods and tools for the verification of concurrent programs (assuming sequential consistency) for reasoning about programs running over causally consistent databases. Furthermore, it allows to establish that the problem of checking robustness is decidable when the programs executed at different sites are finite-state.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/21/2019

Checking Robustness Against Snapshot Isolation

Transactional access to databases is an important abstraction allowing p...
research
01/22/2021

Checking Robustness Between Weak Transactional Consistency Models

Concurrent accesses to databases are typically encapsulated in transacti...
research
08/13/2019

On the Complexity of Checking Transactional Consistency

Transactions simplify concurrent programming by enabling computations on...
research
03/22/2023

Dynamic Partial Order Reduction for Checking Correctness against Transaction Isolation Levels

Modern applications, such as social networking systems and e-commerce pl...
research
11/16/2022

Optimal Stateless Model Checking of Transactional Programs under Causal Consistency

We present a framework for efficient stateless model checking (SMC) of c...
research
03/09/2021

Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring

Serializability is a well-understood concurrency control mechanism that ...
research
07/22/2023

As if Time Had Stopped – Checking Memory Dumps for Quasi-Instantaneous Consistency

Memory dumps that are acquired while the system is running often contain...

Please sign up or login with your details

Forgot password? Click here to reset