Back to Latihan UAS IF3140
Problem Set: Concurrency Control (Paket B)
Mata Pelajaran: Sistem Basis Data
Estimasi Waktu: 120 Menit
Total Nilai: 100 Poin
Tujuan Pembelajaran
Setelah menyelesaikan paket soal ini, mahasiswa diharapkan dapat:
-
Melakukan tracing perolehan kunci dan manajemen antrian (Blocking Queue) pada protokol Two-Phase Locking.
-
Menerapkan mekanisme perolehan kunci top-down pada struktur pohon data yang kompleks.
-
Menganalisis interaksi kunci niat (Intention Locks) pada hirarki data Multiple Granularity.
-
Mengevaluasi jadwal transaksi menggunakan Timestamp Ordering dan Thomas’ Write Rule.
-
Memahami fase eksekusi pada protokol berbasis validasi dan multiversion.
SOAL 1: 2PL & Transaction Manager Logic (25 Poin)
Diberikan urutan kedatangan operasi dari 3 transaksi () sebagai berikut:
Urutan:
Aturan Transaction Manager:
-
Gunakan Rigorous Two-Phase Locking.
-
Operasi diproses berdasarkan urutan kedatangan.
-
Jika transaksi terblokir (menunggu lock), semua operasi berikutnya dari transaksi tersebut masuk ke Blocking Queue.
-
Saat transaksi yang terblokir aktif kembali, operasi di antriannya mendapat prioritas utama sebelum melayani urutan kedatangan baru.
Pertanyaan:
Tuliskan schedule eksekusi yang dihasilkan, mencakup perolehan lock (), pelepasan lock (), dan status Blocking Queue. Berikan penjelasan untuk setiap langkahnya.
SOAL 2: Tree Protocol - University System (15 Poin)
Perhatikan struktur data hirarkis berikut yang merepresentasikan data universitas:
graph TD UNIV[Universitas] --> FAK[Fakultas_Teknik] UNIV --> ADM[Administrasi_Pusat] FAK --> PRODI[Prodi_Informatika] FAK --> LAB[Lab_Riset] PRODI --> MHS[Data_Mahasiswa] PRODI --> KUR[Kurikulum] LAB --> ALAT[Inventaris_Alat]
i. Prosedur Lock:
Tuliskan urutan instruksi dan yang valid sesuai Tree Protocol untuk transaksi berikut:
-
T4: Memperbarui
KurikulumdanInventaris_Alat. -
T5: Membaca data pada
Data_Mahasiswadan memperbaruiInventaris_Alat.
ii. Karakteristik:
Jelaskan perbedaan mendasar antara cara pelepasan kunci (unlock) pada Tree Protocol dibandingkan dengan protokol 2PL standar.
SOAL 3: Multiple Granularity - E-Commerce (20 Poin)
Hirarki data: Database (DB) → Store (S) → Category (C) → Product (P).
Terdapat Toko “Elektronik-X” yang memiliki kategori “Smartphone”. Kategori ini memiliki ribuan produk.
Skenario:
-
Transaksi T6 sedang melakukan update harga pada seluruh produk di kategori “Smartphone”.
-
Transaksi T7 ingin membaca spesifikasi satu produk spesifik (misal: P-001) yang berada di bawah kategori “Smartphone”.
-
Transaksi T8 ingin melakukan pengecekan stok pada seluruh produk di Toko “Elektronik-X”.
Pertanyaan:
i. Tentukan jenis kunci () paling efisien yang harus dimiliki pada level Category dan Product.
ii. Tuliskan daftar perolehan kunci lengkap untuk T7 dan T8.
iii. Berdasarkan matriks kompatibilitas, apakah T7 harus menunggu T6? Bagaimana dengan T8 terhadap T6? Jelaskan.
SOAL 4: Timestamp Ordering & Thomas’ Write Rule (20 Poin)
Diberikan schedule sebagai berikut:
Schedule S:
Asumsikan . Nilai awal dan adalah 0.
Pertanyaan:
i. Lakukan tracing eksekusi menggunakan Basic Timestamp Ordering. Transaksi mana yang mengalami abort?
ii. Jika sistem menerapkan Thomas’ Write Rule, apakah ada perbedaan nasib transaksi? Jelaskan mekanismenya pada operasi jika sudah dilakukan lebih dulu.
SOAL 5: Validation & Multiversion Schemes (20 Poin)
i. Validation-Based Protocol:
Lakukan tracing untuk schedule: .
Tentukan apakah lolos fase validasi jika . Gunakan kriteria irisan Read Set dan Write Set.
ii. Multiversion 2PL:
Jelaskan keuntungan mekanisme pembacaan pada Multiversion 2PL untuk transaksi yang bersifat Read-Only. Mengapa transaksi Read-Only pada protokol ini dijamin tidak akan pernah menunggu lock dari transaksi Update?
# Kunci Jawaban & Pembahasan Paket B
Bagian 1: 2PL dengan Blocking Queue
: dapat S-lock A.
: dapat S-lock A (kompatibel).
: dapat X-lock B.
: minta . Konflik dengan . WAIT. Antrian .
: minta . Konflik dengan . WAIT. Antrian .
: commit. Semua lock dilepas ().
Prioritas Eksekusi: Karena lebih dulu mengantri untuk B, bangun.
Pelepasan Lock : Membangunkan .
Bagian 2: Tree Protocol
i. Urutan Lock:
T4: .
T5: .
ii. Pembahasan: Pada 2PL, unlock hanya boleh di fase shrinking. Pada Tree Protocol, unlock bisa dilakukan kapan saja setelah proses pada node tersebut selesai, asal tidak melanggar aturan bahwa node yang sudah di-unlock tidak boleh di-lock kembali.
Bagian 3: Multiple Granularity
i. T6: Pada level Category butuh , pada level Product butuh (untuk setiap produk). Namun, karena mencakup seluruh produk, lebih efisien menggunakan langsung pada level Category.
ii. Daftar Lock:
T7: .
T8: .
iii. Analisis: butuh , sedangkan memegang . T7 WAIT. butuh , sedangkan punya (via ancestor). Berdasarkan matriks, dan konflik, maka T8 WAIT.
Bagian 4: Timestamp Ordering
i. Tracing TO:
.
.
.
. Abort T1.
ii. Thomas’ Write Rule: Jika datang setelah , dan , maka operasi cukup diabaikan (ignored) tanpa melakukan abort pada , asalkan tidak melanggar . Namun, karena , tetap harus Abort.
Bagian 5: Validation & MVCC
i. Validation:
Saat validasi: . Karena ada irisan, melanggar kondisi validasi. T2 Abort.
ii. MV-2PL: Karena transaksi Read-Only membaca versi data yang sudah di-commit sebelum transaksi tersebut dimulai. Versi tersebut tidak akan berubah oleh transaksi Update yang sedang berjalan, sehingga tidak perlu meminta lock.
Tips Strategi:
- Fokus pada Blocking Queue di Soal 1, karena urutan eksekusi berubah total setelah pelepasan kunci.
- Pada Soal 3, perhatikan bahwa mengunci level yang terlalu tinggi bisa mematikan konkurensi, tapi level terlalu rendah meningkatkan overhead.