Program ini dibuat untuk memenuhi tugas besar 2 Manajemen Basis Data IF3140 yang mensimulasikan beberapa concurrency protocol antara lain:
- Simple Locking (Exclusive Locks Only)
- Serial Optimistic Concurrency Control (OCC)
- Multiversion Timestamp Ordering Concurrency Control (MVCC)
13519039 Rayhan Alghifari Fauzta
13519087 Hizkia Raditya Pratama Roosadi
13519111 Febriawan Ghally Ar Rahman
13519163 Alvin Wilta
13519179 Akifa Nabil Ufairah
- python 3
- Buka terminal atau command prompt pada folder
database-concurrency-control
- Jalankan
python simpleLocking.py
(ataupython3 simpleLocking.py
) - Masukkan input operasi, mulai dari yang operasi paling awal hingga yang paling baru, sesuai panduan pada program. Penerimaan input akan berhenti setelah semua transaksi telah menerima input untuk commit.
- Pilih algoritma yang akan digunakan dengan memasukkan input
1
untuk menggunakan simple locking protocol (exclusive-only) dan2
untuk menggunakan two-phase locking protocol (With exclusive and shared lock) - Output akan diterima berdasarkan urutan proses yang akan dilakukan oleh program concurrency control tergantung pilihan algoritma. Algoritma diimplementasikan dengan menggunakan sistem wound-wait untuk deadlock prevention.
- Buka terminal atau command prompt pada folder
database-concurrency-control
- Masukan input yang diinginkan untuk OCC pada file input_occ.txt. Sesuaikan dengan format yang ada pada contoh.
- Jalankan
python occ.py
(ataupython3 occ.py
) - Program akan otomatis berjalan secara verbose atau menjabarkan tiap langkah dari awal hingga akhir sesuai dengan prinsip OCC.
- Hasil schedule akhir akan ditampilkan setelah program selesai berjalan.
- Buka terminal atau command prompt pada folder
database-concurrency-control
- Jalankan
python mvcc.py
(ataupython3 mvcc.py
) - Masukkan input operasi, mulai dari yang operasi paling awal hingga yang paling baru, sesuai panduan pada program. Penerimaan input akan berhenti setelah semua transaksi telah menerima input untuk commit.
- Masukkan input timestamp dari masing-masing transaksi yang sudah dimasukkan, ketik enter jika timestamp dari transaksi sama dengan id dari transaksi terkait
- Output akan diterima dengan urutan berupa perubahan dan penambahan versi yang terjadi dalam protokol, kemudian diikuti dengan versi-versi yang telah dibuat dan hasil operasi akhir yang dilakukan dalam schedule ini.