实现 Hekaton DBMS 的 MVCC 功能
该程序的语义在文件“_project_report.pdf”中描述。
master
分支包含使用单线程执行(原始)事务 newOrder 的程序。其他分支用于正确性和性能测试:
- 分支“test-visibility-validation”:测试读取稳定性。
- 分支“test-phantom-avoidance”:测试幻像检测。
- 分支“test-cascaded-aborts”:在提交依赖项的上下文中测试级联中止。
- 分支“test-scanning”:通过多次扫描OrderLine表来测试程序的扫描速度。
- 分支“只读”:测试只读事务的性能。
- 分支“仅更新”:测试仅更新事务的性能。
在边缘情况下,事务的行为如下:
- SELECT:如果所需的元组不存在,则事务必须中止并回滚,因为下面将需要此 SELECT 语句中的变量。
- INSERT:如果将重复的 PK 插入表中,则事务必须中止并回滚。
- UPDATE 和 DELETE:如果更新/删除不存在的元组,则该语句将被忽略。