Lewati ke isi
ORACLEDECK

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

KomponenTugas
Transaction ManagerMengoordinasi transaksi yang berasal dari situsnya; memecah transaksi global menjadi subtransaksi
SchedulerMenentukan urutan eksekusi operasi agar tetap serializable
Recovery ManagerMengembalikan basis data ke keadaan konsisten setelah kegagalan
Buffer ManagerMengatur perpindahan data antara memori utama dan penyimpanan
AgentWakil 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.

WaktuTS3TS5TS7
t1Begin transactionBegin transactionBegin transaction
t2Read(fname, lname)Read(fname, lname)Read(fname, lname)
t3Print(fname, lname)Print(fname, lname)Print(fname, lname)
t4End_transactionEnd_transactionEnd_transaction

ACID pada lingkungan terdistribusi

SifatPada satu situsYang berubah pada banyak situs
AtomicityLog + rollback lokalPerlu protokol komit atomik (2PC/3PC) agar semua situs sepakat
ConsistencyConstraint diperiksa saat commitConstraint lintas situs mahal — kerap dilonggarkan
IsolationLocking atau timestamp lokalPerlu penjadwalan global; deadlock bisa lintas situs
DurabilityLog ditulis ke disk sebelum commitSetiap 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

Sumber: Modul 6 bagian Transparansi Transaksi; Modul 1 (RPS pekan 9)