Back to IF3140 Sistem Basis Data

Problem Set: Analisis Mendalam Lock-Based Protocols & 2PL

Mata Pelajaran: Sistem Basis Data (Concurrency Control)

Estimasi Waktu: 90-120 menit

Total Nilai: 100 poin (Bobot terdistribusi)

Tujuan Pembelajaran

Setelah menyelesaikan problem set ini, mahasiswa diharapkan dapat:

  1. Menguasai dan membedakan konsep lock-S (Shared) dan lock-X (Exclusive) serta aturan kompatibilitasnya.

  2. Menganalisis skenario konversi kunci (lock upgrade dan lock downgrade).

  3. Membedakan secara detail definisi, jaminan, dan masalah dari protokol 2PL (Dasar), Strict 2PL, dan Rigorous 2PL.

  4. Mengidentifikasi penyebab dan konsekuensi dari cascading rollback dan dirty reads.

  5. Menganalisis jadwal (schedule) transaksi yang kompleks untuk menentukan kepatuhan terhadap berbagai protokol 2PL.

  6. Mensintesis dan merancang jadwal transaksi yang memenuhi kriteria protokol tertentu (misal: Strict 2PL).

Petunjuk Umum

  • Bacalah setiap bagian soal dengan teliti.

  • Bagian I & II: Jawablah langsung pada tabel yang disediakan (atau salin dan isi).

  • Bagian III: Jawablah pertanyaan secara analitis dan berikan justifikasi yang kuat untuk setiap poin. Gunakan notasi yang ditentukan jika diminta.

BAGIAN I: Matriks Analisis Konsep (Total 20 Poin)

Fokus: Pemahaman fundamental dan komparatif terhadap konsep kunci.

Soal 1. Matriks Kompatibilitas & Konversi Kunci (10 poin)

Instruksi: Tentukan hasil dari permintaan (Request) oleh Transaksi T2, jika Transaksi T1 sedang memegang kunci (Hold) pada item data yang sama.

Pilihan:

  • A (Boleh/Grant): Permintaan T2 langsung dikabulkan.

  • B (Tunggu/Wait): T2 harus menunggu T1 melepaskan kuncinya.

  • C (N/A): Skenario tidak relevan/tidak mungkin terjadi.

NoT1 Hold (pada data Q)T2 Request (pada data Q)Pilihan (A / B / C)
1lock-Slock-S
2lock-Slock-X
3lock-Xlock-S
4lock-Xlock-X
5T1 (S), T2 (S)T3 Request lock-S
6T1 (S), T2 (S)T3 Request lock-X
7T1 (S)T1 Request Upgrade (S X)
8T1 (S), T2 (S)T1 Request Upgrade (S X)
9T1 (X)T1 Request Downgrade (X S)
10T1 (S)T2 Request Upgrade (S X)

Soal 2. Matriks Perbandingan Protokol 2PL (10 poin)

Instruksi: Untuk setiap pernyataan, tentukan apakah pernyataan tersebut berlaku untuk protokol 2PL (Dasar), Strict 2PL, dan Rigorous 2PL.

Pilihan:

  • Y (Ya): Pernyataan berlaku untuk protokol ini.

  • N (Tidak): Pernyataan tidak berlaku untuk protokol ini.

NoPernyataan2PL (Dasar)Strict 2PLRigorous 2PL
1Menjamin jadwal yang conflict-serializable.
2Menjamin jadwal bebas dari deadlock.
3Menjamin jadwal bebas dari cascading rollback.
4Mengharuskan transaksi menahan semua lock-X hingga commit/abort.
5Mengharuskan transaksi menahan semua lock-S hingga commit/abort.
6Memiliki growing phase dan shrinking phase.
7Mengizinkan unlock(S) dilakukan sebelum transaksi commit.
8Lock point (akhir growing phase) menentukan urutan serialisasi.
9Semua jadwal yang mematuhi Strict 2PL, pasti mematuhi 2PL.
10Semua jadwal yang mematuhi 2PL, pasti mematuhi Rigorous 2PL.

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
1lock-X (Exclusive) mengizinkan transaksi untuk melakukan read dan write pada item data.
2Tujuan utama dari lock adalah untuk meningkatkan throughput sistem dengan mengizinkan semua transaksi berjalan bersamaan tanpa hambatan.
3Lost Update Problem dapat terjadi jika dua transaksi membaca data, memodifikasinya di memori, lalu menuliskannya kembali tanpa locking.
4Lock upgrade (S X) hanya dapat diberikan jika transaksi yang meminta adalah satu-satunya pemegang lock-S pada item tersebut.
5Lock downgrade (X S) adalah operasi yang dilarang dalam semua varian 2PL karena dapat melanggar serializability.
6Aturan fundamental 2PL adalah: transaksi tidak boleh melepaskan lock apapun sampai ia mendapatkan semua lock yang ia butuhkan.
7Lock point adalah titik waktu di mana transaksi memulai shrinking phase (yaitu, saat melakukan unlock pertama).
8Sebuah transaksi dapat memiliki beberapa lock point jika ia mengakses banyak item data.
9Protokol 2PL (Dasar) masih rentan terhadap masalah dirty read (membaca data yang belum di-commit).
10Cascading rollback terjadi jika T2 membaca data “kotor” dari T1, lalu T1 commit sementara T2 abort.
11Strict 2PL dirancang khusus untuk menyelesaikan masalah deadlock yang ada pada 2PL (Dasar).
12Strict 2PL mencegah cascading rollback dengan memastikan tidak ada transaksi yang membaca data yang ditulis oleh transaksi lain yang belum commit.
13Rigorous 2PL adalah protokol yang paling ketat dan paling umum digunakan oleh DBMS komersial.
14Rigorous 2PL memiliki tingkat konkurensi yang lebih tinggi daripada Strict 2PL karena aturannya lebih sederhana.
15Jadwal: T1: XL(A); W(A); UL(A); T2: XL(A); W(A); UL(A); Commit; mematuhi protokol 2PL.
16Jadwal: T1: SL(A); R(A); XL(B); W(B); UL(A); UL(B); Commit; mematuhi protokol 2PL.
17Jadwal: T1: XL(A); W(A); UL(A); XL(B); W(B); UL(B); Commit; mematuhi protokol 2PL.
18Jadwal: T1: XL(A); W(A); Commit; UL(A); mematuhi Strict 2PL.
19Sebuah jadwal yang Strict 2PL juga pasti Rigorous 2PL.
20Sebuah jadwal yang Rigorous 2PL juga pasti Strict 2PL.

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

Fokus: Aplikasi, analisis, dan sintesis konsep 2PL pada skenario praktis.

Soal 3. Analisis Kepatuhan Protokol (15 poin)

Kasus: Diberikan jadwal S1 yang melibatkan tiga transaksi (T1, T2, T3) dan tiga item data (A, B, C).

Jadwal S1:

T1: SL(A); R(A);

T2: XL(B); W(B);

T3: SL(C); R(C);

T1: XL(B); (Wait);

T2: Commit; UL(B);

T1: (Grant); W(B);

T3: XL(A); (Wait);

T1: Commit; UL(A); UL(B);

T3: (Grant); W(A); Commit; UL(A); UL(C);

Pertanyaan:

a. (5 poin) Identifikasi Lock Point (titik akhir growing phase) untuk T1, T2, dan T3.

b. (5 poin) Analisislah T1. Apakah T1 mematuhi 2PL? Strict 2PL? Rigorous 2PL? Berikan justifikasi untuk setiap protokol.

c. (5 poin) Analisislah T3. Apakah T3 mematuhi 2PL? Strict 2PL? Rigorous 2PL? Berikan justifikasi untuk setiap protokol.

Soal 4. Studi Kasus: Transfer Dana & Audit (15 poin)

Kasus: Anda memiliki dua transaksi:

  • T1 (Transfer): Mentransfer $100 dari rekening A ke rekening B. Ini melibatkan Read(A), Read(B), Write(A), dan Write(B).

  • T2 (Audit): Membaca saldo A dan B, lalu menjumlahkannya untuk memastikan total saldo konsisten. Ini melibatkan Read(A) dan Read(B).

Tugas:

Tuliskan sebuah jadwal (schedule) yang mengeksekusi T1 dan T2 secara konkuren (interleaved). Jadwal Anda WAJIB mematuhi Strict 2PL dan menjamin serializability (mencegah anomali unrepeatable read atau dirty read).

Instruksi:

  1. Gunakan notasi SL (Shared Lock), XL (Exclusive Lock), R (Read), W (Write), UL (Unlock), Commit.

  2. Tunjukkan dengan jelas kapan T2 harus menunggu (jika perlu).

  3. Tandai di mana T1 dan T2 melakukan Commit.

Soal 5. Analisis Konsekuensi: Pelanggaran Protokol (15 poin)

Kasus: Diberikan jadwal S2 yang dirancang dengan buruk.

Jadwal S2:

T1: XL(A); W(A);

T2: XL(B); W(B);

T1: UL(A);

T3: SL(A); R(A);

T2: UL(B);

T3: SL(B); R(B);

T1: XL(C); W(C);

T3: Commit; UL(A); UL(B);

T1: Abort; UL(C);

T2: Commit;

Pertanyaan:

a. (5 poin) Jelaskan secara spesifik mengapa T1 melanggar 2PL (Dasar)!

b. (5 poin) Jelaskan secara spesifik mengapa T1 dan T2 melanggar Strict 2PL!

c. (5 poin) Apa konsekuensi serius dari T1: Abort terhadap transaksi T3? Fenomena apa ini, dan mengapa ini terjadi berdasarkan jadwal S2?

Soal 6. Esai Sintesis: Trade-off Rigorous 2PL (15 poin)

Skenario: Anda adalah seorang arsitek basis data yang merancang sistem reservasi tiket pesawat. Sistem ini memiliki dua jenis transaksi utama:

  1. T_Book (Booking): Transaksi singkat yang sangat sering terjadi (ribuan per detik). T_Book harus Read ketersediaan kursi (data A) dan Write ke manifes penumpang (data B) dan mengurangi stok kursi (data A). Ini butuh lock-S(A), lalu upgrade ke lock-X(A), dan lock-X(B).

  2. T_Report (Laporan): Transaksi analitik yang berjalan sangat lama (bisa 2-3 menit). T_Report hanya Read data A dan B untuk menghitung okupansi. Ini butuh lock-S(A) dan lock-S(B).

Anda memutuskan untuk menerapkan Rigorous 2PL untuk semua transaksi demi kesederhanaan dan jaminan konsistensi (mencegah cascading rollback).

Tugas (Esai Analisis):

Analisislah trade-off dari keputusan ini.

a. (5 poin) Apa keuntungan utama menerapkan Rigorous 2PL untuk T_Book?

b. (5 poin) Apa kerugian (masalah kinerja) besar dari penerapan Rigorous 2PL untuk T_Report? (Fokus pada dampaknya terhadap T_Book).

c. (5 poin) Mengingat masalah di (b), sarankan satu modifikasi (bisa terkait protokol atau level isolasi) untuk T_Report agar T_Book tetap berjalan lancar, sambil menjaga T_Report tetap konsisten (misal: tidak membaca data “setengah jadi” dari T_Book).