Topik 09
Manajemen Transaksi Terdistribusi
ACID lintas situs, manajer transaksi, scheduler, agent, dan model koordinasi.
Kemampuan akhir yang diharapkan. Mengetahui lingkup transaksi terdistribusi dan kebutuhan pengelolaannya.
Komponen manajemen transaksi
| Komponen | Tugas |
|---|---|
| Transaction Manager | Mengoordinasi transaksi yang berasal dari situsnya; memecah transaksi global menjadi subtransaksi |
| Scheduler | Menentukan urutan eksekusi operasi agar tetap serializable |
| Recovery Manager | Mengembalikan basis data ke keadaan konsisten setelah kegagalan |
| Buffer Manager | Mengatur perpindahan data antara memori utama dan penyimpanan |
| Agent | Wakil subtransaksi di situs tempat data berada |
Contoh transaksi terdistribusi dari Modul 6
Transaksi T mencetak nama seluruh staf memakai skema fragmentasi S1, S2, S22, dan S23. Subtransaksi TS3, TS5, dan TS7 mewakili agent di lokasi 3, 5, dan 7.
| Waktu | TS3 | TS5 | TS7 |
|---|---|---|---|
| t1 | Begin transaction | Begin transaction | Begin transaction |
| t2 | Read(fname, lname) | Read(fname, lname) | Read(fname, lname) |
| t3 | Print(fname, lname) | Print(fname, lname) | Print(fname, lname) |
| t4 | End_transaction | End_transaction | End_transaction |
ACID pada lingkungan terdistribusi
| Sifat | Pada satu situs | Yang berubah pada banyak situs |
|---|---|---|
| Atomicity | Log + rollback lokal | Perlu protokol komit atomik (2PC/3PC) agar semua situs sepakat |
| Consistency | Constraint diperiksa saat commit | Constraint lintas situs mahal — kerap dilonggarkan |
| Isolation | Locking atau timestamp lokal | Perlu penjadwalan global; deadlock bisa lintas situs |
| Durability | Log ditulis ke disk sebelum commit | Setiap situs menulis lognya sendiri sebelum menjawab PREPARE |
Model koordinasi
- Terpusat — satu koordinator per transaksi, biasanya situs asal. Sederhana, tetapi koordinator menjadi titik kritis.
- Hierarkis — koordinator memiliki subkoordinator; cocok untuk banyak situs.
- Terdesentralisasi — setiap peserta berkomunikasi dengan semua peserta lain. Tidak ada titik kegagalan tunggal, tetapi jumlah pesan membengkak menjadi O(n²).
Coba di terminal
Kueri di bawah memperagakan konsep topik ini pada data sungguhan. Tekan ▶ Jalankan untuk membukanya di Terminal SQL, lalu ubah sesuka hati — sesi terminal adalah salinan pribadi di peramban Anda.
Atomisitas: SAVEPOINT dan ROLLBACK
Sebagian transaksi dibatalkan, sisanya tetap tertunda sampai COMMIT. rumahsakit
UPDATE pasien SET kota = 'Depok' WHERE id_pasien = 1;
SAVEPOINT s1;
DELETE FROM pasien_dokter;
ROLLBACK TO s1;
SELECT COUNT(*) AS periksa_utuh FROM pasien_dokter;
\status
Agent per situs
Satu transaksi global menulis ke dua situs; lihat status: situs yang ditulis = agent yang terlibat. terdistribusi
DELETE FROM daftar@jakarta WHERE id_daftar = 2;
DELETE FROM daftar@surabaya WHERE id_daftar = 10;
\status
Jalankan sendiri
Simulator 2PC & 3PC
Injeksi kegagalan koordinator, peserta, dan partisi jaringan — lalu lihat siapa yang terblokir.
Kendali Konkurensi
Graf presedensi, 2PL, timestamp ordering, dan sifat pemulihan sebuah jadwal.
Sumber: Modul 6 bagian Transparansi Transaksi; Modul 1 (RPS pekan 9)