Back to IF3140 Sistem Basis Data

Problem Set: Analisis Concurrency Control & Deadlock

Mata Pelajaran: Sistem Basis Data

Estimasi Waktu: 60 menit

Total Nilai: 100 poin

Tujuan Pembelajaran

Setelah menyelesaikan problem set ini, mahasiswa diharapkan dapat:

  1. Menganalisis dan membedakan jadwal (schedule) yang mematuhi Two-Phase Locking (2PL) dan Strict 2PL.

  2. Mengevaluasi dampak dari cascading rollback dalam sebuah skenario transaksi.

  3. Membangun dan menginterpretasi Wait-for Graph (WFG) untuk mendeteksi adanya deadlock.

  4. Mengaplikasikan skema deadlock avoidance (Wait-Die dan Wound-Wait) pada studi kasus yang diberikan.

  5. Mensintesis dan merekomendasikan strategi penanganan deadlock (prevention, avoidance, detection) untuk sebuah skenario dunia nyata.

Petunjuk Umum

  • Bacalah setiap studi kasus dan skenario dengan teliti.

  • Jawablah setiap pertanyaan dengan jelas dan berikan justifikasi yang kuat berdasarkan konsep yang telah dipelajari.

  • Untuk soal analisis jadwal, perhatikan setiap operasi (Read, Write, Lock, Unlock, Commit, Abort).

  • Gunakan terminologi yang presisi (misal: lock point, timestamp, victim selection).

BAGIAN I: Analisis Skenario & Studi Kasus (75 poin)

Fokus: Application dan Analysis - Menerapkan konsep ke situasi baru.

Soal 1. Studi Kasus: Analisis Two-Phase Locking (2PL) (25 poin)

Kasus: Diberikan dua buah jadwal (S1 dan S2) yang melibatkan transaksi T1 dan T2. Data item yang diakses adalah E dan F.

Jadwal S1:

T1: XL(E); W(E); UL(E); T2: XL(E); W(E); XL(F); W(F); T1: Abort; T2: Commit; UL(E); UL(F);

Jadwal S2:

T1: XL(E); W(E); T2: XL(E); (Wait); T1: XL(F); W(F); T1: Commit; UL(E); UL(F); T2: (Grant); W(E); T2: Commit; UL(E);

Pertanyaan:

a. (10 poin) Analisislah S1. Apakah S1 mematuhi protokol 2PL? Apakah S1 mematuhi protokol Strict 2PL? Jelaskan justifikasi Anda.

b. (10 poin) Apa konsekuensi dari T1: Abort pada S1? Fenomena apa yang terjadi, dan mengapa ini merugikan?

c. (5 poin) Analisislah S2. Protokol apa yang dipatuhi oleh S2 (2PL, Strict 2PL, atau Rigorous 2PL)? Jelaskan mengapa S2 dapat mencegah masalah yang terjadi pada S1.

Soal 2. Analisis Deteksi: Wait-for Graph (WFG) (25 poin)

Kasus: Sebuah sistem basis data menggunakan Deadlock Detection dengan Wait-for Graph (WFG). Pada satu waktu (T), status sistem adalah sebagai berikut:

  • T1: Sedang memegang lock-X pada item F dan sedang menunggu (request) lock-S pada item G.

  • T2: Sedang memegang lock-S pada item G dan sedang menunggu (request) lock-X pada item H.

  • T3: Sedang memegang lock-X pada item H dan sedang menunggu (request) lock-X pada item G.

  • T4: Sedang memegang lock-S pada item I dan sedang menunggu (request) lock-X pada item F.

  • T5: Sedang memegang lock-X pada item J.

Pertanyaan:

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

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

c. (5 poin) Jika terjadi deadlock, dan sistem memutuskan T3 sebagai victim untuk di-rollback, jelaskan bagaimana recovery tersebut memutus siklus deadlock.

Soal 3. Studi Kasus: Analisis Deadlock Avoidance (25 poin)

Kasus: Sebuah sistem menggunakan skema Deadlock Avoidance berbasis timestamp (TS). Semakin kecil nilai TS, semakin tua transaksi tersebut. Diberikan tiga transaksi dengan timestamp berikut:

  • TS(T1) = 10

  • TS(T2) = 20

  • TS(T3) = 30

Perhatikan urutan kejadian berikut yang terjadi secara sekuensial:

  1. T2 meminta dan mendapatkan lock-X pada item A.

  2. T3 meminta dan mendapatkan lock-X pada item B.

  3. T1 meminta lock-X pada item B (yang sedang dipegang T3).

  4. T3 meminta lock-X pada item A (yang sedang dipegang T2).

Pertanyaan:

Analisislah apa yang akan terjadi pada Kejadian 3 dan Kejadian 4 jika sistem menerapkan:

a. (10 poin) Skema Wait-Die.

b. (10 poin) Skema Wound-Wait.

c. (5 poin) Skema mana yang cenderung menghasilkan lebih banyak rollback dalam skenario ini? Jelaskan.

BAGIAN II: Esai Sintesis (25 poin)

Fokus: Synthesis dan Evaluation - Integrasi konsep dan pemikiran kritis.

Soal 4. Esai Sintesis: Memilih Strategi Penanganan Deadlock (25 poin)

Skenario: Anda adalah seorang Arsitek Basis Data yang ditugaskan untuk merancang sistem core banking baru. Dua kebutuhan utama dari klien adalah:

  1. Konsistensi Data Kritis: Transaksi (transfer, debit, kredit) tidak boleh gagal di tengah jalan atau menyebabkan data tidak konsisten.

  2. Ketersediaan Tinggi (High Availability): Sistem tidak boleh “freeze” atau berhenti merespons, bahkan untuk beberapa detik.

Klien Anda khawatir tentang deadlock. Anda harus menjelaskan tiga pendekatan utama (Prevention, Avoidance, Detection) dan memberikan rekomendasi.

Instruksi:

Tuliskan esai analisis (sekitar 200-300 kata) yang membandingkan trade-off dari:

  1. Deadlock Prevention (misal: menggunakan Total Order pada sumber daya)

  2. Deadlock Avoidance (misal: menggunakan Wound-Wait)

  3. Deadlock Detection (misal: menggunakan WFG dan victim selection)

Dalam esai Anda, fokuslah pada dampaknya terhadap kinerja, konkurensi, dan kompleksitas implementasi. Akhiri esai Anda dengan rekomendasi strategi mana (atau kombinasi strategi) yang paling cocok untuk sistem core banking tersebut, dan berikan justifikasi yang kuat untuk pilihan Anda.

Tips Pengerjaan untuk Peserta

Strategi Umum:

  1. Baca semua soal terlebih dahulu - Alokasikan waktu Anda. Soal 1, 2, dan 3 adalah analisis skenario, sementara soal 4 adalah sintesis.

  2. Pahami instruksi - Perhatikan kata kunci: “analisis”, “gambarkan WFG”, “apa yang terjadi (Wait-Die vs Wound-Wait)”, “bandingkan trade-off”.

  3. Kelola waktu:

    • Bagian I (3 Soal): ~45 menit (~15 menit per soal)

    • Bagian II (1 Esai): ~15 menit

    • Review: (Waktu sisa)

Strategi Per Bagian:

  • Bagian I:

    • Soal 1: Buat tabel atau garis waktu untuk melacak status lock (Growing/Shrinking) dan status commit (kapan lock-X dilepas).

    • Soal 2: Gunakan pendekatan sistematis. Buat daftar semua node (transaksi). Lalu, untuk setiap transaksi yang waiting, gambarkan panah DARI dia KE transaksi yang memegang lock. Cari siklus tertutup.

    • Soal 3: Tuliskan aturan Wait-Die dan Wound-Wait di kertas coretan Anda. Aplikasikan aturan (TS(Minta) vs TS(Pegang)) secara ketat untuk setiap kejadian.

  • Bagian II (Esai):

    • Struktur esai Anda: (1) Intro singkat. (2) Paragraf Prevention (Pro/Con). (3) Paragraf Avoidance (Pro/Con). (4) Paragraf Detection (Pro/Con). (5) Paragraf Rekomendasi (Pilihan + Justifikasi Kuat).

Red Flags untuk Dihindari:

  • ❌ Tertukar antara 2PL dan Strict 2PL. Ingat: Strict 2PL = Tahan lock-X sampai commit/abort.

  • ❌ Tertukar antara Wait-Die dan Wound-Wait. Ingat: Wound-Wait = Tua “melukai” Muda. Wait-Die = Muda “mati” saat bertemu Tua.

  • ❌ Menggambar WFG secara tidak akurat. Panah SELALU dari (yang Menunggu) (yang Memegang).

  • ❌ Memberikan rekomendasi di Soal 4 tanpa justifikasi yang mengaitkannya kembali ke kebutuhan klien (Konsistensi vs Ketersediaan).

Sumber Belajar yang Direkomendasikan

  • Catatan “Pengantar Concurrency Control dan Jenis Kunci.md”

  • Catatan “Two-Phase Locking.md”

  • Catatan “Konsep dan Deadlock Prevention.md”

  • Catatan “Deadlock Avoidance.md”

  • Catatan “Deteksi dan Deadlock Recovery.md”