Back to IF3140 Sistem Basis Data

4.2: Multiversion Two-Phase Locking (MV-2PL)

Questions/Cues

  • Apa itu Multiversion 2PL (MV-2PL)?

  • Apa dua jenis transaksi di MV-2PL?

  • Apa itu Update Transaction?

  • Bagaimana aturan Update Transaction?

  • Apa itu Read-Only Transaction?

  • Bagaimana aturan Read-Only Transaction?

  • Apakah MV-2PL menjamin serializability?

  • Apa keuntungannya?

Reference Points

  • Slides “11 - Concurrency Control - 4.pdf” (Hal 6-7)

Definisi: Multiversion Two-Phase Locking

Ini adalah protokol yang menggabungkan Multiversion (MV) dengan Two-Phase Locking (2PL).

Ide utamanya adalah memisahkan transaksi menjadi dua jenis:

  1. Update Transactions (Transaksi Update): Ini adalah transaksi “normal” yang mungkin perlu read dan write.

  2. Read-Only Transactions (Transaksi Baca-Saja): Ini adalah transaksi “analitis” yang dijamin hanya akan read dan tidak akan pernah write.

Aturan untuk Update Transactions

  • Protokol: Transaksi update menggunakan Rigorous Two-Phase Locking (Rigorous 2PL) standar (Lihat Catatan 1.2).

  • Locking: Mereka harus mendapatkan lock-S sebelum read dan lock-X sebelum write, dan menahan semua lock sampai commit atau abort.

  • Versioning: Saat transaksi update write(Q), ia akan membuat versi baru dari Q. Versi ini akan “terkunci” oleh lock-X sampai transaksi commit.

Aturan untuk Read-Only Transactions

Transaksi read-only TIDAK MENGGUNAKAN LOCK SAMA SEKALI. Mereka menggunakan timestamp dan multiversion.

  1. Mulai: Saat transaksi read-only Ti dimulai, ia diberi Timestamp unik TS(Ti).

  2. Operasi read(Q):

    • Ti akan membaca versi Qk terbaru yang sudah di-commit yang memiliki W-TS(Qk) <= TS(Ti).

    • Dengan kata lain, Ti membaca versi data terbaru yang sudah selesai (commit) sebelum Ti dimulai.

  3. Commit: Transaksi read-only selalu commit (tidak perlu validasi, karena tidak write).

Jaminan dan Keuntungan

  • Serializability: Protokol ini menjamin conflict serializability.

  • Bebas Tunggu (No Waiting):

    • Read-Only tidak pernah menunggu lock dari Update (karena read-only membaca versi lama).

    • Update tidak pernah menunggu lock dari Read-Only (karena read-only tidak pernah memegang lock).

Ini adalah skema yang sangat efisien untuk beban kerja campuran (OLTP + OLAP), di mana banyak query analitis (read-only) berjalan bersamaan dengan transaksi update.

Summary

Multiversion 2PL (MV-2PL) membagi transaksi menjadi dua jenis: Update Transaction dan Read-Only Transaction. Transaksi Update menggunakan Rigorous 2PL standar (minta lock S/X, tahan sampai commit, dan membuat versi baru saat write). Transaksi Read-Only tidak menggunakan lock, melainkan diberi timestamp (TS) saat mulai, dan hanya membaca versi data terbaru yang sudah di-commit sebelum TS tersebut. Skema ini menjamin serializability dan mengizinkan transaksi read-only berjalan tanpa pernah menunggu lock dari transaksi update.