Back to Latihan UAS IF3140
Problem Set: Concurrency Control (Paket A)
Mata Pelajaran: Sistem Basis Data
Estimasi Waktu: 120 Menit
Total Nilai: 100 Poin
Tujuan Pembelajaran
Setelah menyelesaikan problem set ini, mahasiswa diharapkan dapat:
-
Melakukan tracing perolehan kunci (locks) pada protokol Two-Phase Locking (Basic, Strict, dan Rigorous).
-
Mengimplementasikan Tree Protocol pada struktur data hirarkis.
-
Menganalisis perolehan Intention Locks pada protokol Multiple Granularity.
-
Menentukan validitas schedule berdasarkan Timestamp Ordering dan Validation-Based Protocol.
-
Mengevaluasi nasib transaksi pada protokol Multiversion dan Snapshot Isolation (First-Committer Wins).
SOAL 1: Two-Phase Locking Protocols (20 Poin)
Diberikan urutan masuk instruksi dari 3 buah transaksi () ke DBMS sebagai berikut:
Schedule S:
Asumsikan:
-
dan adalah operasi read dan write transaksi terhadap data .
-
DBMS menggunakan automatic acquisition of locks.
-
Tidak ada skema pencegahan deadlock (jika terjadi deadlock, instruksi terhenti).
Pertanyaan:
Tuliskan schedule eksekusi lengkap dengan perolehan kunci (: Shared Lock, : Exclusive Lock, : Unlock) untuk protokol berikut:
a. Basic Two-Phase Locking (2PL).
b. Strict Two-Phase Locking (Strict 2PL).
c. Rigorous Two-Phase Locking (Rigorous 2PL).
Catatan: Tunjukkan pada langkah mana transaksi harus menunggu (WAIT) jika terjadi konflik.
SOAL 2: Tree Protocol (15 Poin)
Diberikan partial ordering item data dalam struktur pohon sebagai berikut:
graph TD DB[Database] --> TA[Table_A] DB --> TB[Table_B] TA --> PA1[Page_A1] TA --> PA2[Page_A2] TB --> PB1[Page_B1] PA1 --> R1[Rec_1] PA1 --> R2[Rec_2] PA2 --> R3[Rec_3] PB1 --> R4[Rec_4]
i. Prosedur Lock/Unlock:
Tuliskan urutan instruksi dan yang valid sesuai Tree Protocol untuk transaksi berikut:
-
T4: Mengubah nilai pada
Rec_1danRec_3. -
T5: Membaca dan mengubah nilai pada
Rec_2danRec_4.
ii. Analisis Keamanan:
Jelaskan mengapa Tree Protocol menjamin sistem bebas dari deadlock meskipun tidak menggunakan skema pencegahan tambahan (seperti timestamping atau deadlock detection).
SOAL 3: Multiple Granularity Locking (15 Poin)
Sebuah sistem basis data menggunakan hirarki: Database (DB) → Tabel (T) → Blok (B) → Record (R).
Tabel “Karyawan” terdiri dari 100 blok data. Transaksi ingin melakukan operasi sebagai berikut:
“Membaca seluruh record pada Tabel Karyawan, namun hanya mengubah nilai gaji pada record-record yang berada di Blok 15 dan Blok 50.”
Pertanyaan:
i. Sebutkan urutan perolehan lock () yang diminta oleh dari level tertinggi hingga terendah.
ii. Jika pada saat yang sama transaksi sedang memegang pada Blok 15, apakah dapat melanjutkan operasinya? Jelaskan menggunakan matriks kompatibilitas lock.
SOAL 4: Timestamp & Validation Protocols (25 Poin)
Diberikan schedule sebagai berikut:
Schedule S2:
Asumsikan dan . Sebelum eksekusi, semua dan item data adalah 0.
Pertanyaan:
i. Apakah schedule tersebut diizinkan oleh Basic Timestamp Ordering Protocol? Lakukan tracing langkah demi langkah.
ii. Apakah schedule tersebut diizinkan jika menggunakan Thomas’ Write Rule? Jelaskan perbedaannya.
iii. Lakukan tracing Validation-Based Protocol untuk schedule tersebut. Tentukan apakah berhasil melewati fase validasi setelah commit.
(Gunakan 3 fase: Read, Validation, Write).
SOAL 5: Multiversion & Snapshot Isolation (25 Poin)
Diberikan transaksi dan nilai awal data .
-
T8:
-
T9:
Eksekusi interleaved yang terjadi adalah:
-
-
-
(T8)
-
-
(T9)
-
-
-
Pertanyaan:
i. Jika menggunakan Multiversion Timestamp Ordering, tuliskan versi data yang dihasilkan (, dst) dan nilai serta pada setiap langkah.
ii. Jika menggunakan Snapshot Isolation dengan aturan First-Committer Wins, tentukan apakah berhasil commit. Berikan penjelasan mengenai Write Set dari kedua transaksi tersebut.
# Kunci Jawaban & Pembahasan
Bagian 1: 2PL
a. Basic 2PL:
(Upgrade)
(Boleh karena S-lock kompatibel)
(Upgrade)
(Upgrade)
→ WAIT (Konflik dengan )
Keterangan: Pada Basic 2PL, transaksi bisa melepas lock kapan saja setelah lock point, namun di sini tertahan menunggu .
b. Strict 2PL:
Sama dengan Basic, namun hanya dilepas setelah Commit. tetap menunggu .
c. Rigorous 2PL:
Sama dengan Strict, namun seluruh lock (S dan X) ditahan hingga commit.
Bagian 2: Tree Protocol
i. Jawaban T4 & T5:
T4:
T5:
ii. Pembahasan: Tree protocol menjamin bebas deadlock karena perolehan lock mengikuti urutan parsial (top-down). Tidak mungkin ada siklus tunggu (circular wait) karena arah perolehan lock selalu searah menjauhi root, sehingga siklus dalam Wait-for Graph tidak mungkin terbentuk.
Bagian 3: Multiple Granularity
i. Urutan Lock T6:
(SIX karena baca semua, update sebagian)
ii. Analisis: meminta pada Blok 15. Karena memegang , maka WAIT. Berdasarkan matriks kompatibilitas, dan tidak kompatibel.
Bagian 4: Timestamp & Validation
i. Basic TO:
(OK, )
(OK, )
dan (OK, )
→ ABORT T1. T1 mencoba menulis data yang sudah dibaca transaksi lebih muda.
ii. Thomas’ Write Rule: Jika , write diabaikan. Namun pada kasus , konfliknya adalah dengan , maka tetap Abort.
iii. Validation: divalidasi lebih dulu. divalidasi terhadap . Karena beririsan dengan , maka gagal validasi (Kondisi 2 dilanggar).
Bagian 5: MVCC & SI
i. MVCC:
Langkah 4 () membuat versi dengan . Langkah 6 () membuat versi dengan . Semua lolos karena .
ii. Snapshot Isolation:
, .
Karena , maka tidak ada konflik tulis-tulis.
Kedua transaksi COMMIT SUKSES. Terjadi anomali Write Skew karena hasil akhir bergantung pada urutan commit tanpa menghiraukan pembacaan data yang dilakukan secara konkuren.
Tips Pengerjaan untuk Peserta
-
Alokasikan 30 menit untuk Soal 1 karena tracing lock sangat rawan ketidaktelitian.
-
Pada Multiple Granularity, selalu mulai dari level Database.
-
Ingat: Pada Snapshot Isolation, transaksi membaca data yang sudah dicommit sebelum transaksi tersebut dimulai.