3TS
3TS copied to clipboard
功能添加:隔离级别相关的测试样例生成
类型:功能添加-隔离级别相关的测试样例生成
隔离级别是dbms为了平衡隔离性和事务的并发效率而制定的SQL标准。主流DBMS的隔离级别,由低到高包括读未提交,读已提交,可重复读和可串行执行。低的隔离级别,不同事务会互相干扰,而高的隔离级别,每个事务都近似于单独在执行,没有其他事务并发执行。现在3TS-coo的测试样例动态生成(位于3TS/src/dbtest/src/mda_generate.py)对于所有隔离级别都生成一样的测试样例。然而同样的测试样例,在不同的隔离级别下,可能结果不同。例如在可重复读隔离级别下的异常测试样例,在读已提交隔离级别下可能是正常行为(为了保证事务的并发效率,该隔离级别允许出现这种“异常”)。
换句话说,有些测试样例,只适用于某个隔离级别,而在测试更高级的隔离级别时是无意义的。例如测试读可提交隔离级别是否有幻读现象是无意义的,因为幻读现象是该隔离级别“允许”出现的(符合隔离级别定义),不算是异常。
现在,我们希望能够对不同隔离级别,生成不同的测试样例,这种测试样例如果出现异常,则代表违背了该隔离级别的定义。 本issue不需要验证测试样例是否异常,只需要针对隔离级别的定义,生成对该隔离级别有意义的测试样例即可。
开发方式:fork分支coo-consistency-check代码到自己的仓库,clone后添加相应功能并验证再提PR合并。
本issue为2024犀牛鸟开源人才培养活动专属issue,仅供在校大学生参与领取 【认领issue】在研学基地"issue营地"对应issue行的M~R列抢滩报名,即视为认领成功。 【完成issue】已认领issue的同学,请同步在本issue评论区回复“已成功领取本issue”; 如7天内无提交任何进展包括不限于comment \ commit \ Pull Request,则将视为同学主动放弃issue,组委会将释放issue给下一位等候者。