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:
Update Transactions (Transaksi Update): Ini adalah transaksi “normal” yang mungkin perlu
readdanwrite.Read-Only Transactions (Transaksi Baca-Saja): Ini adalah transaksi “analitis” yang dijamin hanya akan
readdan tidak akan pernahwrite.Aturan untuk Update Transactions
Protokol: Transaksi update menggunakan Rigorous Two-Phase Locking (Rigorous 2PL) standar (Lihat Catatan 1.2).
Locking: Mereka harus mendapatkan
lock-Ssebelumreaddanlock-Xsebelumwrite, 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.
Mulai: Saat transaksi read-only Ti dimulai, ia diberi Timestamp unik
TS(Ti).Operasi
read(Q):
Ti akan membaca versi
Qkterbaru yang sudah di-commit yang memilikiW-TS(Qk) <= TS(Ti).Dengan kata lain, Ti membaca versi data terbaru yang sudah selesai (commit) sebelum Ti dimulai.
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.
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 sebelumTStersebut. Skema ini menjamin serializability dan mengizinkan transaksi read-only berjalan tanpa pernah menunggu lock dari transaksi update.