In modern databases, transaction processing technology provides ACID (Atomicity, Consistency, Isolation, Durability) features. Consistency refers to the correctness of databases and is a crucial property for many applications, such as financial and banking services. However, there exist typical challenges for consistency. Theoretically, the current two definitions of consistency express quite different meanings, which are causal and sometimes controversial. Practically, it is notorious to check the consistency of databases, especially in terms of the verification cost. This paper proposes Coo, a framework to check the consistency of databases. Specifically, Coo has the following advancements. First, Coo proposes partial order pair (POP) graph, which has a better expressiveness on transaction conflicts in a schedule by considering stateful information like Commit and Abort. By POP graph with no cycle, Coo defines consistency completely. Secondly, Coo can construct inconsistent test cases based on POP cycles. These test cases can be used to check the consistency of databases in accurate (all types of anomalies), user-friendly (SQL-based test), and cost-effective (one-time checking in a few minutes) ways. We evaluate Coo with eleven databases, both centralized and distributed, under all supported isolation levels. The evaluation shows that databases did not completely follow the ANSI SQL standard (e.g., Oracle claimed to be serializable but appeared in some inconsistent cases), and have different implementation methods and behaviors for concurrent controls (e.g., PostgreSQL, MySQL, and SQL Server performed quite differently at Repeatable Read level). Coo aids to comprehend the gap between coarse levels, finding more detailed and complete inconsistent behaviors.
翻译:在现代数据库中,交易处理技术提供ACID(Accity、Consicity、Isolution、Durable)特征。 一致性是指数据库的正确性,是许多应用程序(如金融和银行服务)的关键属性。 但是,在一致性方面存在着典型的挑战。 从理论上讲, 目前对一致性的两个定义表达了相当不同的含义,这些含义是因果关系,有时是有争议的。 实际上,检查数据库的一致性是臭名昭著的,特别是在核查成本方面。 本文提出了Coo,这是一个检查数据库一致性的框架。 具体地说,Co有以下进步:Coo。 首先, Coo 提出部分排序对数据库的正确性(POP)图,这是对财务和银行服务等许多应用程序中交易冲突的更好表达性。用POP图, Coo 完全定义一致性。 第二, Coo可以根据持久性有机污染物周期构建不一致的测试案例。 这些测试案例可用于检查数据库在准确性(所有类型的异常)、对用户友好性(SQL基础测试)之间的一致性, 以及成本- 有效(在数分钟内进行部分的对Q-L内部行为检查), Sralalal deal deal deal deal deal deal deal deal deal deal deal deal develil develess desk) 和S develutes recustration develts develts acuilds acuild she she the she acuilds acuceal develts acumental deal develts cuceal develts)。