You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I just started. "random_do_list.py" randomly generates some test cases, which can form different POP graphs and are stored in "do_test_list.txt". "mad_generate.py" builds actual SQL statements based on the test cases. I think what we need to do is to implement a function whose parameters are the "isolation level" of the database and the test cases in "do_test_list.py". This function is used to determine whether the test case is "above" this isolation level. Is this idea correct?
类型:功能添加-隔离级别相关的测试样例生成
隔离级别是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给下一位等候者。
The text was updated successfully, but these errors were encountered: