Mengimplementasikan fitur MVCC pada Hekaton DBMS
Semantik program dijelaskan dalam file '_project_report.pdf'.
Cabang master
berisi program yang mengeksekusi transaksi (asli) newOrder dengan thread tunggal. Cabang lain digunakan untuk pengujian kebenaran dan kinerja:
- Cabang 'uji-visibilitas-validasi': uji stabilitas baca.
- Cabang 'test-phantom-avoidance': tes untuk deteksi hantu.
- Cabang 'test-cascaded-aborts: uji pembatalan berjenjang dalam konteks dependensi komit.
- Cabang 'test-scanning': menguji kecepatan pemindaian program dengan memindai tabel OrderLine beberapa kali.
- Cabang 'read-only': menguji kinerja transaksi read-only.
- Cabang 'hanya pembaruan': menguji kinerja transaksi hanya pembaruan.
Dalam kasus edge, transaksi berperilaku sebagai berikut:
- SELECT: jika tupel yang diperlukan tidak ada, transaksi harus dibatalkan dan dikembalikan karena variabel dari pernyataan SELECT ini akan diperlukan di bawah.
- INSERT: jika memasukkan duplikat PK ke dalam tabel, transaksi harus dibatalkan dan dikembalikan.
- UPDATE dan DELETE: jika memperbarui/menghapus tuple yang tidak ada, pernyataan tersebut diabaikan.