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: 存在しないタプルを更新または削除する場合、ステートメントは無視されます。