The CAP Theorem shows that (strong) Consistency, Availability, and Partition tolerance are impossible to be ensured together. Causal consistency is one of the 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.
翻译:CAP 理论显示,(强)一致性、可获性和分割性容忍是无法共同确保的。原因一致性是可加以执行的薄弱一致性模式之一,以确保分布式系统中的可获性和分隔性容忍性。在这项工作中,我们提出了一个工具,自动检查分布式/流动式系统处决是否符合因果一致性模式。我们的方法是减少检查处决是否因果一致解决数据查询的问题。这种减少是基于对处决的完整定性,这种定性违反了处决行动之间在适当界定的关系中存在周期的因果关系。我们已经对分布式数据库测试工具进行了削减,并对实际案例研究进行了若干试验,显示了所建议的方法的效率。