提笔忘字

数据库事务测试工具

参考资料:TiDB-事务前沿研究

分类名称描述
事务一致性测试Bank银行测试是模拟一个银行系统中的转账流程。

在这个测试中,我们创建一系列模拟银行账户,并随时选择两个账户使用事务进行相互转账,一个账户减去一定的金额,另一个账户增加对应的金额,这样的交易不断的并发执行着。在快照隔离下,所有的转账都必须保证每一个时刻所有的账户的总金额是相同的。
事务一致性测试PorcupinePorcupine 一个用 Go 实现的线性一致性验证工具。

是基于 P-compositionality 算法,P-compositionality 算法利用了线性一致性的 Locality 原理,即如果一个调用历史的所有子历史都满足线性一致性,那么这个历史本身也满足线性一致性。因此,可以将一些不相关的历史划分开来,形成多个规模更小的子历史,转而验证这些子历史的线性一致性。
事务隔离级别测试ElleElle 是用来验证数据库事务隔离级别的检查工具。

Elle 是一个纯黑盒的测试工具,巧妙的构造了一个测试场景,通过客户端生成的历史构造出依赖关系图,通过判断依赖图中是否有环以及分析环来确定事务的出现的异常类型,来确定事务的隔离级别。
事务隔离级别测试pg_isolation_regress包含一组针对 PostgreSQL 中并发行为的测试。

这些测试需要运行多个交互事务,这需要管理多个并发连接,因此无法使用常规 pg_regress 程序进行测试。主要测试可序列化隔离级别,也添加了针对其他类型并发行为的测试。

#Database #Transaction