Back to IF3140 Sistem Basis Data
Sistem Terdistribusi (Distributed Systems)
Questions/Cues
Apa itu Distributed System?
Apa beda Paralel vs Terdistribusi?
Apa itu Homogeneous Distributed Database?
Apa itu Heterogeneous Distributed Database?
Apa beda Local Transaction vs Global Transaction?
Apa 3 Keuntungan (Advantages) sistem terdistribusi?
Apa 4 Kerugian (Disadvantages) sistem terdistribusi?
Apa isu implementasi utama?
Apa itu Two-Phase Commit (2PC)?
Apa itu LAN vs WAN?
Reference Points
- Slides “13 - Database System Architectures.pdf” (Slide 33-38)
Distributed Systems (Sistem Terdistribusi)
Distributed System adalah sistem di mana data tersebar di banyak mesin (disebut sites atau nodes) yang terhubung oleh jaringan. Mesin-mesin ini bisa jadi terpisah secara geografis (antar kota atau negara).
Perbedaan Paralel vs Terdistribusi:
Paralel: Node-node terhubung oleh jaringan berkecepatan sangat tinggi (seperti hypercube), terletak berdekatan (dalam satu rak/data center), dan bekerja sama untuk satu tugas. Tujuannya: Performa.
Terdistribusi: Node-node terhubung oleh jaringan berkecepatan lebih rendah (internet/WAN), terletak berjauhan, dan seringkali independen (otonom). Tujuannya: Berbagi data dan Ketersediaan (Availability).
Jenis Distributed Database
Homogeneous (Homogen)
Semua site menjalankan software DBMS yang sama (misal: semua pakai Oracle).
Skema datanya sama (atau kompatibel).
Tujuan: Terlihat seperti satu database tunggal raksasa bagi pengguna, padahal datanya tersebar.
Heterogeneous (Heterogen)
Site yang berbeda menjalankan software DBMS yang berbeda (misal: Site A pakai Oracle, Site B pakai MySQL, Site C pakai MongoDB).
Seringkali ini adalah database warisan (legacy) yang ingin digabungkan.
Tujuan: Mengintegrasikan data dari berbagai sumber agar bisa di-query bersama.
Transaksi: Local vs. Global
Local Transaction: Transaksi yang mengakses data hanya di satu site (site tempat transaksi itu dimulai).
Global Transaction: Transaksi yang mengakses data di site yang berbeda, atau di beberapa site sekaligus.
Contoh: Transfer antar bank. Mengurangi saldo di database Bank A (Site A), menambah saldo di database Bank B (Site B).
Trade-Offs (Keuntungan & Kerugian)
Keuntungan (Advantages):
Sharing Data: Pengguna di Site A bisa mengakses data di Site B.
Autonomy (Otonomi): Setiap site tetap memiliki kontrol penuh atas data yang disimpannya secara lokal.
Availability (Ketersediaan): Jika data direplikasi (disalin) ke site lain, sistem bisa tetap berjalan meskipun satu site mati.
Kerugian (Disadvantages):
Kompleksitas: Sangat kompleks untuk memastikan koordinasi antar site berjalan benar.
Biaya Pengembangan: Software untuk ini sangat mahal untuk dibuat.
Potensi Bug: Lebih banyak bug karena banyaknya interaksi.
Processing Overhead: Ada overhead tambahan dari komunikasi jaringan dan protokol koordinasi.
Isu Implementasi & Tipe Jaringan
Atomicity: Tantangan terbesar. Bagaimana jika global transaction berhasil di Site A tapi gagal di Site B? (Misal: uang terdebet tapi tidak ter-kredit).
- Solusi: Two-Phase Commit (2PC). Protokol ini menggunakan “koordinator” untuk memastikan semua site setuju untuk
commitatauabortbersama-sama.Distributed Concurrency Control: Perlu mekanisme lock yang bekerja antar site (sangat kompleks).
Data Replication: Perlu mekanisme untuk menjaga data yang disalin tetap sinkron.
Tipe Jaringan:
LAN (Local-Area Network): Jaringan area lokal (misal: satu gedung). Cepat, reliabel. (Sering dipakai untuk Parallel System).
WAN (Wide-Area Network): Jaringan area luas (misal: internet, antar kota). Lebih lambat, kurang reliabel. (Khas untuk Distributed System).
Sistem Terdistribusi (Distributed System) menyebarkan data di berbagai site yang terpisah secara geografis dan terhubung oleh jaringan (biasanya WAN). Tujuannya adalah untuk berbagi data (sharing), otonomi (autonomy), dan ketersediaan tinggi (availability). Sistem ini bisa Homogen (semua DBMS sama) atau Heterogen (DBMS berbeda). Tantangan terbesarnya adalah kompleksitas dalam mengelola Global Transaction (yang mengakses banyak site), di mana Atomicity harus dijamin menggunakan protokol seperti Two-Phase Commit (2PC).
Additional Information
Pendalaman Teknis: Two-Phase Commit (2PC) dalam 5 Menit
2PC adalah protokol klasik untuk mencapai atomic commit dalam sistem terdistribusi.
Aktor: 1 Koordinator (memulai transaksi), banyak Peserta (database lain).
Fase 1: Voting Phase (Fase Voting)
Koordinator: Melakukan semua pekerjaan lokal, lalu mengirim pesan
prepareke semua Peserta. (Artinya: “Hei, kalian semua siapcommit?”).Peserta: Menerima
prepare. Ia akan mengecek apakah ia bisacommit.
Jika bisa, ia menulis log
readyke stable storage (penting!) dan mengirim balasanreadyke Koordinator.Jika tidak bisa (misal: lock gagal), ia mengirim balasan
abort.Fase 2: Decision Phase (Fase Keputusan)
Koordinator: Mengumpulkan semua balasan.
Jika SEMUA Peserta membalas ready → Koordinator memutuskan COMMIT.
Jika SATU SAJA Peserta membalas abort (atau timeout) → Koordinator memutuskan ABORT.
Koordinator: Menulis keputusannya (commit atau abort) ke log-nya, lalu mengirim pesan keputusan itu ke semua Peserta.
Peserta: Menerima keputusan. Mereka wajib mengikutinya. Jika pesannya commit, mereka commit. Jika abort, mereka abort.
Masalah: 2PC itu blocking. Jika Koordinator crash setelah Fase 1 tapi sebelum Fase 2, semua Peserta yang sudah membalas
readyakan “tergantung”, tidak tahu haruscommitatauabort, dan mereka harus menunggu Koordinator hidup kembali.Sumber & Referensi Lanjutan:
Buku: Silberschatz, Korth, Sudarshan, “Database System Concepts”, 7th Ed, Chapter 20.4.
Konsep: “Two-Phase Commit (2PC) Protocol”, “CAP Theorem” (Sistem terdistribusi hanya bisa memilih 2 dari 3: Consistency, Availability, Partition Tolerance).
