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.
翻译:各种应用程序广泛使用分布式存储系统和数据库。 这些存储系统和数据库的存取是一个重要的抽象概念,使应用程序程序程序员能够将操作区(即交易)视为原子执行。 由于性能方面的原因,现代数据库执行的一致模式比标准的序列性模式弱,而标准序列性模式与以顺序一致的记忆执行的交易的原子性抽象化相对应。例如,因果一致性就是在实践中广泛使用的一种模式。在本文件中,我们调查因果一致性的若干变异之间的具体应用关系,并处理自动核实某一交易程序是否对因果关系一致性(即交易交易)具有很强的力度的问题。在任意、因果一致的数据库执行时,其所有行为都具有连锁性。我们显示,没有写作竞赛的程序在所有这些变异的记忆中都有相同的一系列行为。我们表明,检查稳健性是一个多元时间,可以追溯到交易方案中的可达标度问题,而按顺序一致的记忆。后一个令人惊讶的结果是,因因果性一致性变化而承认的不一致性差异性差异性变化,即通过任意性程序在任意性数据库中打开可比较的、持续进行核查程序。