CLOTHO: directed test generation for weakly consistent database systems

CLOTHO: directed test generation for weakly consistent database systems
复制标题

DOI:
10.1145/3360543
复制
发表时间:
2019-08
影响因子:
--
通讯作者:
Kia Rahmani;Kartik Nagar;Benjamin Delaware;S. Jagannathan
Kia Rahmani;Kartik Nagar;Benjamin Delaware;S. Jagannathan
中科院分区:
--
文献类型:
--
作者:
Kia Rahmani;Kartik Nagar;Benjamin Delaware;S. Jagannathan

文献摘要

被引文献

相似文献

众所周知,关系数据库应用程序很难测试和调试。数据库事务的并发执行可能会违反复杂的结构不变量,这些结构不变量约束了对一个(共享)表的内容的更改如何影响另一个表的内容。简化底层并发模型是减轻理解并发访问和更新如何影响与这些复杂属性相关的数据库状态的困难的一种方法。强制所有事务的可序列化执行实现了这种简化,但它在性能方面付出了很大的代价,特别是在大规模中,数据库状态经常被复制以改善延迟和可用性。为了解决这些挑战,本文提出了一个新的测试框架,用于检测在弱一致性存储系统上执行的(SQL)数据库支持的Java应用程序中的串行性违规。我们在CLOTHO工具中展示了我们的方法,CLOTHO结合了静态分析器和模型检查器来生成抽象执行,发现这些执行中的序列化违例,并将它们转换回适合在测试环境中部署的具体测试输入。据我们所知,CLOTHO是第一个用于识别在地理复制分布式环境中运行的Java应用程序的序列化异常的自动化测试生成工具。对一组行业标准基准的实验评估证明了我们的方法的实用性。
Relational database applications are notoriously difficult to test and debug. Concurrent execution of database transactions may violate complex structural invariants that constraint how changes to the contents of one (shared) table affect the contents of another. Simplifying the underlying concurrency model is one way to ameliorate the difficulty of understanding how concurrent accesses and updates can affect database state with respect to these sophisticated properties. Enforcing serializable execution of all transactions achieves this simplification, but it comes at a significant price in performance, especially at scale, where database state is often replicated to improve latency and availability. To address these challenges, this paper presents a novel testing framework for detecting serializability violations in (SQL) database-backed Java applications executing on weakly-consistent storage systems. We manifest our approach in a tool, CLOTHO, that combines a static analyzer and model checker to generate abstract executions, discover serializability violations in these executions, and translate them back into concrete test inputs suitable for deployment in a test environment. To the best of our knowledge, CLOTHO, is the first automated test generation facility for identifying serializability anomalies of Java applications intended to operate in geo-replicated distributed environments. An experimental evaluation on a set of industry-standard benchmarks demonstrates the utility of our approach.