Back to IF3140 Sistem Basis Data

Problem Set: Penanganan Deadlock

Mata Pelajaran: Sistem Basis Data (Concurrency Control Lanjutan)

Estimasi Waktu: 90-120 menit

Total Nilai: 100 poin (Bobot terdistribusi)

Tujuan Pembelajaran

Setelah menyelesaikan problem set ini, mahasiswa diharapkan dapat:

  1. Mengidentifikasi dan membedakan empat kondisi perlu deadlock.

  2. Menganalisis secara kritis trade-off antara strategi Deadlock Prevention, Avoidance, dan Detection.

  3. Menguasai mekanisme skema Deadlock Avoidance (Wait-Die, Wound-Wait) dan konsekuensinya (termasuk starvation).

  4. Mampu membangun dan menginterpretasi Wait-for Graph (WFG) untuk mendeteksi siklus deadlock.

  5. Mengevaluasi faktor-faktor dalam Victim Selection dan proses Deadlock Recovery.

  6. Mensintesis dan merekomendasikan strategi penanganan deadlock yang tepat untuk skenario dunia nyata.

Petunjuk Umum

  • Bacalah setiap bagian soal dengan teliti.

  • Bagian I & II: Jawablah langsung pada tabel yang disediakan.

  • Bagian III: Jawablah pertanyaan secara analitis dan berikan justifikasi yang kuat untuk setiap poin. Gunakan terminologi yang presisi.

BAGIAN I: Matriks Analisis Strategi & Mekanisme (Total 20 Poin)

Fokus: Pemahaman komparatif dan konseptual tingkat tinggi.

Soal 1. Matriks Perbandingan Strategi Deadlock (10 poin)

Instruksi: Tentukan strategi penanganan deadlock (Prevention, Avoidance, Detection) yang paling sesuai dengan setiap pernyataan.

NoPernyataanPreventionAvoidanceDetection
1Paling optimis; mengasumsikan deadlock jarang terjadi.
2Paling pesimis; merancang sistem agar deadlock mustahil terjadi.
3Melakukan pemeriksaan safe state secara dinamis saat ada permintaan lock.
4Membutuhkan mekanisme recovery (misal: Victim Selection).
5Menyerang salah satu dari 4 kondisi perlu (misal: Circular Wait).
6Menggunakan skema berbasis timestamp (Wait-Die / Wound-Wait).
7Menggunakan Wait-for Graph untuk menemukan siklus.
8Cenderung memiliki tingkat konkurensi tertinggi (mengabaikan biaya recovery).
9Cenderung memiliki tingkat konkurensi terendah (karena aturan kaku).
10Memiliki overhead pada setiap permintaan lock untuk memeriksa timestamp.

Soal 2. Matriks Konsep & Mekanisme Deadlock (10 poin)

Instruksi: Tentukan konsep atau mekanisme yang paling tepat untuk setiap deskripsi.

Pilihan:

A. Mutual Exclusion

B. Hold and Wait

C. No Preemption

D. Circular Wait

E. Pre-declaration

F. Total Order

G. Wait-Die

H. Wound-Wait

I. Wait-for Graph (WFG)

J. Victim Selection

NoDeskripsiKonsep (A-J)
1Kondisi: Sebuah transaksi memegang lock-A sambil meminta lock-B.
2Kondisi: T1 -> T2 -> T3 -> T1.
3Metode Pencegahan: Mengharuskan T meminta semua lock di awal.
4Metode Pencegahan: Menetapkan A=1, B=2, C=3, dan memaksa T minta lock A sebelum B.
5Skema: Ti(Tua) meminta ke Tj(Muda) Ti MENUNGGU.
6Skema: Ti(Tua) meminta ke Tj(Muda) Tj di-ROLLBACK.
7Skema: Ti(Muda) meminta ke Tj(Tua) Ti MENUNGGU.
8Alat Deteksi: Sebuah graf di mana siklus menandakan deadlock.
9Proses Pemulihan: Memilih transaksi mana yang akan di-abort untuk memutus siklus.
10Kondisi: lock yang dipegang T tidak bisa diambil paksa oleh sistem.

BAGIAN II: Analisis Konseptual Benar/Salah (Total 20 Poin)

Fokus: Menguji pemahaman mendalam dan nuansa antar konsep.

Instruksi: Tentukan apakah setiap pernyataan berikut BENAR (B) atau SALAH (S).

NoPernyataanB / S
1Deadlock hanya dapat terjadi jika keempat kondisi perlu (Mutex, H&W, No Preemption, Circular Wait) terpenuhi secara bersamaan.
2Mutual Exclusion adalah kondisi yang paling ideal untuk dihilangkan guna mencegah deadlock.
3Skenario klasik T1: XL(A), req(B); T2: XL(B), req(A) adalah contoh terpenuhinya kondisi Hold and Wait dan Circular Wait.
4Deadlock Prevention (pencegahan) adalah strategi yang lebih dinamis daripada Deadlock Avoidance (penghindaran).
5Metode Pre-declaration (minta semua lock di awal) menyerang kondisi Circular Wait.
6Kelemahan utama metode Total Order adalah sulitnya transaksi memprediksi semua lock yang dibutuhkan di awal.
7Deadlock Avoidance tidak menjamin deadlock tidak akan pernah terjadi, tetapi hanya menguranginya.
8Dalam skema timestamp, asumsi TS(Ti) < TS(Tj) berarti Ti lebih TUA dari Tj.
9Dalam skema Wait-Die, jika Ti(Tua) meminta lock yang dipegang Tj(Muda), Ti akan rollback (Mati).
10Dalam skema Wound-Wait, jika Ti(Muda) meminta lock yang dipegang Tj(Tua), Tj akan rollback (Terluka).
11Wait-Die adalah skema non-preemptive.
12Wound-Wait cenderung menghasilkan lebih sedikit rollback daripada Wait-Die karena transaksi muda diizinkan menunggu transaksi tua.
13Solusi untuk starvation di skema timestamp adalah memberikan timestamp baru yang lebih muda setiap kali transaksi di-restart.
14Di Wait-for Graph (WFG), panah Ti -> Tj berarti Ti sedang memegang lock yang ditunggu oleh Tj.
15Jika sebuah WFG tidak memiliki siklus, sistem dijamin bebas dari deadlock.
16Menjalankan deadlock detection setiap kali ada transaksi yang menunggu adalah strategi dengan overhead pemeriksaan terendah.
17Victim Selection yang baik akan selalu memilih transaksi yang paling muda (TS terbesar) untuk di-rollback.
18Starvation dapat terjadi dalam Deadlock Recovery jika sebuah transaksi yang sama terus-menerus dipilih sebagai victim.
19Partial Rollback (menggunakan savepoint) lebih kompleks untuk diimplementasikan tetapi lebih efisien daripada Total Rollback.
20DBMS komersial modern (seperti PostgreSQL) cenderung menggunakan Deadlock Avoidance (Wait-Die) karena lebih efisien.

BAGIAN III: Studi Kasus, Analisis, & Sintesis (Total 60 Poin)

Fokus: Aplikasi, analisis, dan sintesis konsep penanganan deadlock.

Soal 3. Analisis Deadlock Detection & Recovery (20 poin)

Tipe: Analisis

Kasus: Sebuah sistem DBMS menggunakan Deadlock Detection. Pada suatu waktu (T), Lock Manager mencatat status berikut:

  • T1: Memegang lock-X pada Data-A; Menunggu lock-S pada Data-B.

  • T2: Memegang lock-S pada Data-B; Menunggu lock-X pada Data-C.

  • T3: Memegang lock-X pada Data-C; Menunggu lock-X pada Data-B.

  • T4: Memegang lock-X pada Data-E; Menunggu lock-X pada Data-A.

  • T5: Memegang lock-S pada Data-F; Menunggu lock-X pada Data-E.

Pertanyaan:

a. (5 poin) Gambarkan Wait-for Graph (WFG) yang lengkap berdasarkan status sistem di atas.

b. (5 poin) Analisislah WFG tersebut. Apakah terjadi deadlock? Jika ya, sebutkan semua siklus (cycle) yang terbentuk dan transaksi mana saja yang terlibat.

c. (5 poin) Sistem memutuskan melakukan Deadlock Recovery dengan memilih T2 sebagai victim dan melakukan Total Rollback. Jelaskan bagaimana WFG berubah dan siklus mana yang terputus.

d. (5 poin) Sebutkan dua faktor (berdasarkan materi Victim Selection) yang mungkin menjadi alasan sistem TIDAK memilih T1 sebagai victim.

Soal 4. Studi Kasus Deadlock Avoidance (20 poin)

Tipe: Studi Kasus

Kasus: Sebuah sistem menggunakan skema Deadlock Avoidance berbasis timestamp. Semakin kecil timestamp, semakin TUA transaksi. Diberikan 4 transaksi:

  • TS(T1) = 10

  • TS(T2) = 20

  • TS(T3) = 30

  • TS(T4) = 40

Berikut adalah urutan kejadian yang terjadi secara sekuensial:

  1. T2: XL(A) (Diberikan)

  2. T3: XL(B) (Diberikan)

  3. T1: XL(B) (Meminta lock yang dipegang T3)

  4. T4: XL(A) (Meminta lock yang dipegang T2)

  5. T3: XL(A) (Meminta lock yang dipegang T2)

Pertanyaan:

Analisislah secara rinci apa yang terjadi pada Langkah 3, Langkah 4, dan Langkah 5 jika sistem menerapkan:

a. (8 poin) Skema Wait-Die (Non-preemptive).

b. (8 poin) Skema Wound-Wait (Preemptive).

c. (4 poin) Jelaskan mengapa T4 sangat rentan mengalami starvation dalam skema Wait-Die, dan bagaimana solusi yang tepat untuk mengatasinya?

Soal 5. Esai Sintesis: Strategi Prevention vs. Detection (20 poin)

Tipe: Esai Sintesis

Skenario: Anda sedang merancang sistem manajemen inventaris gudang. Ada dua operasi utama:

  1. T_Order (Order Fulfillment): Transaksi singkat, sangat sering terjadi. Harus mengunci (lock-X) ItemStok dan LokasiRak untuk mengurangi stok.

  2. T_Audit (Audit Gudang): Transaksi analitik, sangat lama (berjam-jam). Harus mengunci (lock-S) ItemStok, LokasiRak, dan DataSupplier secara bersamaan.

Masalah deadlock klasik dapat terjadi jika:

  • T_Order_1: XL(ItemStok), menunggu XL(LokasiRak)

  • T_Order_2: XL(LokasiRak), menunggu XL(ItemStok)

Tugas (Esai Analisis):

Anda diminta membandingkan dua strategi untuk menangani deadlock antar T_Order ini.

a. (5 poin) Jelaskan bagaimana Deadlock Prevention (menggunakan Total Order, misal: selalu kunci ItemStok dulu baru LokasiRak) dapat menjamin deadlock ini tidak terjadi.

b. (5 poin) Jelaskan bagaimana Deadlock Detection (menggunakan WFG) menangani skenario jika deadlock ini terjadi.

c. (10 poin) Sintesis & Rekomendasi: Bandingkan trade-off (kinerja, konkurensi, kompleksitas implementasi bagi developer) antara strategi (a) dan (b) khusus untuk T_Order. Strategi mana yang akan Anda rekomendasikan untuk menangani deadlock T_Order vs T_Order? Berikan justifikasi yang kuat. (Abaikan T_Audit untuk pertanyaan ini).