1: \begin{abstract}
2: %Causal consistency is one of the strongest models that can be implemented to ensure availability and partition tolerance and one of the most implemented models for distributed systems. In this paper, we propose a tool to check automatically the conformance of distributed/concurrent systems executions to causal consistency models. The idea is to reduce the problem of checking if an execution is causally consistent to Datalog queries solving using the notion of bad-patterns. Our approach was tested on several real executions of distributed databases and have shown its efficiency.
3: The \texttt{CAP Theorem} shows that (strong) Consistency, Availability, and Partition tolerance are impossible to be ensured together. Causal consistency is one of the %strongest
4: weak consistency models that can be implemented to ensure availability and partition tolerance in distributed systems. In this work, we propose a tool to check automatically the conformance of distributed/concurrent systems executions to causal consistency models. Our approach consists in reducing the problem of checking if an execution is causally consistent to solving Datalog queries. The reduction is based on complete characterizations of the executions violating causal consistency in terms of the existence of cycles in suitably defined relations between the operations occurring in these executions. We have implemented the reduction in a testing tool for distributed databases, and carried out several experiments on real case studies, showing the efficiency of the suggested approach.
5: \keywords{Causal Consistency \and Causal Memory \and Causal Convergence \and Distributed Databases \and Formal verification \and Testing}
6:
7:
8:
9:
10:
11: \end{abstract}
12: