Back to IF3140 Sistem Basis Data

Implementasi Isolasi

Questions/Cues

  • Apa saja 3 teknik utama implementasi isolasi?

  • Bagaimana cara kerja Locking?

  • Apa beda Shared Lock vs Exclusive Lock?

  • Bagaimana cara kerja Timestamps?

  • Apa itu Read/Write Timestamp?

  • Bagaimana cara kerja Multiple Versions (MVCC)?

  • Apa itu Predicate Locking?

Reference Points

  • Slides 39-40

Implementasi Level Isolasi

Untuk menegakkan level isolasi dan menjamin serializability, sistem basis data menggunakan protokol kontrol konkurensi. Tiga pendekatan utama yang digunakan adalah:

  1. Locking (Penguncian)

  2. Timestamps (Pemberian Cap Waktu)

  3. Multiple Versions (Penyimpanan Versi Ganda)

1. Protokol Berbasis Locking

Ini adalah pendekatan yang paling intuitif dan umum digunakan.

  • Konsep: Sebuah transaksi harus meminta dan mendapatkan “kunci” (lock) pada sebuah item data sebelum diizinkan melakukan operasi (baca/tulis). Transaksi lain yang ingin mengakses data tersebut dengan cara yang berkonflik harus menunggu hingga kunci dilepaskan.

  • Jenis Lock:

    • Shared Lock (S-lock): Diperlukan untuk operasi read. Beberapa transaksi dapat memegang S-lock pada item yang sama secara bersamaan.

    • Exclusive Lock (X-lock): Diperlukan untuk operasi write. Jika satu transaksi memegang X-lock, tidak ada transaksi lain yang bisa mendapatkan lock jenis apa pun (baik S-lock maupun X-lock) pada item tersebut.

  • Aspek Penting Lainnya:

    • Granularity: Seberapa besar unit data yang dikunci? (Misalnya, satu baris, satu halaman memori, atau seluruh tabel).

    • Duration: Berapa lama kunci dipegang? (Biasanya hingga transaksi selesai dengan COMMIT atau ROLLBACK).

2. Protokol Berbasis Timestamps

  • Konsep: Setiap transaksi diberi cap waktu (timestamp) unik saat dimulai. Sistem menggunakan cap waktu ini untuk mengurutkan eksekusi transaksi. Jika ada operasi yang melanggar urutan waktu ini, maka operasi tersebut akan ditolak.

  • Mekanisme:

    • Setiap item data di basis data menyimpan Write-timestamp (cap waktu dari transaksi terakhir yang menulisnya) dan Read-timestamp (cap waktu dari transaksi terakhir yang membacanya).

    • Ketika sebuah transaksi mencoba mengakses data, sistem membandingkan cap waktu transaksi tersebut dengan cap waktu pada data untuk memastikan urutan serial tetap terjaga. Jika terdeteksi konflik (misalnya, transaksi yang lebih “muda” mencoba menimpa data yang sudah dibaca oleh transaksi yang lebih “tua”), transaksi yang melanggar akan dibatalkan (rolled back).

3. Protokol Berbasis Multiple Versions (MVCC)

MVCC (Multi-Version Concurrency Control) adalah pendekatan canggih yang meningkatkan performa secara signifikan.

  • Konsep: Alih-alih satu data ditimpa oleh perubahan, sistem menyimpan beberapa versi dari sebuah item data. Setiap versi memiliki informasi tentang transaksi yang menciptakannya.

  • Mekanisme:

    • Operasi Read: Ketika sebuah transaksi ingin membaca data, sistem akan memberikannya “snapshot” atau versi data yang konsisten pada saat transaksi tersebut dimulai.

    • Operasi Write: Ketika sebuah transaksi ingin menulis data, ia akan membuat versi baru dari data tersebut, tanpa mengganggu transaksi lain yang mungkin sedang membaca versi lama.

  • Keuntungan Utama: Pembaca tidak memblokir penulis, dan penulis tidak memblokir pembaca. Ini mengurangi waktu tunggu dan meningkatkan konkurensi.

Summary

Untuk mengelola eksekusi konkuren, sistem basis data mengandalkan protokol utama seperti Locking, yang mengunci data untuk mencegah konflik; Timestamping, yang mengurutkan transaksi berdasarkan cap waktu untuk mendeteksi pelanggaran urutan; dan Multi-Version Concurrency Control (MVCC), yang menyimpan beberapa versi data untuk memungkinkan operasi baca dan tulis berjalan bersamaan tanpa saling memblokir. Setiap metode menawarkan trade-off antara kompleksitas implementasi, performa, dan tingkat konkurensi.