Anda di halaman 1dari 10

Basisdata

Basisdata Terdistributsi
Terdistributsi
(Distributed
(Distributed Databases)
Databases)

–Sinkronisasi
–Pemrosesan Query
Terdistribusi

1
Basisdata Terdistribusi
Sinkronisasi
•Dalam hubungannya dengan pengaksesan terhadap data (query)
sebuah sistem basisdata terdistribusi harus nampak seperti
layaknya sistem basisdata terpusat.
– Pengguna dapat melakukan query terhadap data tanpa perlu
memikirkan tentang bagaimana dan di mana suatu data (relasi)
tersebut disimpan
•Dalam hubungannya dengan penulisan (perubahan) terhadap data
oleh suatu transaksi, maka sistem terdistribusi ini harus
menjamin transaksi tetap berjalan sebagai serangkaian aksi-aksi
atomik tanpa memperhatikan bahwa data telah difragmentasi
dan direplikasi.
•Dalam kaitannya dengan replikasi data terhadap strategi update
yang dilakukan terdapat dua pendekatan:
– Synchronous Replication
– Asynchronous Replication

2
Basisdata Terdistribusi
Sinkronisasi (lanjt)
•Synchronous Replication
– Semua copy relasi yang diubah (fragment) harus di-update
sebelum transaksi yang melakukan perubahan tersebut commit.
– Distribusi data dibuat transparan terhadap user (user tidak
tahu bagaimana data telah didistribusikan)
• Asynchronous Replication
– Beberapa copy dari relasi yang dimodifikasi hanya di-update
secara periodik; Beberapa copy mungkin tidak sinkron (sama)
satu sama lain untuk beberapa waktu
– User harus sadar mengenai distribusi data (data mana yang
paling up-to-date, sehingga pendekatan ini tidak transparan)
• Transaksi yang membaca copy yang berbeda untuk relasi yang sama
akan melihat nilai yang berbeda-beda.
– Produk-produk DBMS yang sekarang ada mengikuti pendekatan
ini

3
Basisdata Terdistribusi
Synchronous Replication
• Untuk menjamin transaksi-transaksi melihat nilai yang sama tanpa
memperdulikan copy data mana yang diakses dilakukan dengan dua
pendekatan.
– Voting
– Read-any Write-all
• Voting
– Sebuah transaksi harus menulis terhadap mayoritas copy (setengah plus satu)
untuk mengubah suatu objek (data) dan membaca beberapa copy (secukupnya)
untuk menjamin bahwa sedikitnya salah satu copy yang paling kini ikut terbaca .
• Misal: terdapat 10 replika (copy); 7 copy ditulisi pada saat melakukan update, maka
sedikitnya 4 copy harus dibaca pada saat melakukan pembacaan terhadap data
• Masing-masing copy mempunyai nomor versi, copy dengan nomor versi paling tinggi
merupakan copy yang paling kini
– Pendekatan seperti ini kurang diminati karena untuk membaca sebuah objek harus
membaca beberapa copy objek tersebut. Padahal operasi baca lebih sering
dilakukan daripada operasi update (menulis), sehingga performansi yang efisien
terhadap operasi baca sangat penting.
• Read-any Write-all:
– Untuk mebaca sebuah objek, maka suatu transaksi hanya membaca satu buah
copy, tetapi pada saat operasi perubahan data (menulis) maka harus menulis di
semua copy.
– Sehingga operasi baca lebih cepat dan operasi penulisan lebih lambat daripada
dengan voting
– Pendekatan yang paling umum dilakukan untuk synchronous replication.

4
Basisdata Terdistribusi
Cost Synchronous Replication
• Sebelum suatu operasi (transaksi) update dapat
commit, maka dia harus memperoleh lock terhadap
semua copy yang akan (harus) diubah.
– Mengirim permintaan lock ke remote site, dan sementara
menunggu jawaban, juga menunggu lock lainnya
– Jika suatu site atau link fail, maka transaksi tidak bisa
commit.
– Bahkan jika tidak ada failure, commit harus dilakukan
dengan commit protocol yang mahal (karena banyak
sekali pertukaran pesan)
• Dengan memperhatikan hal-hal di atas maka
pendekatan yang banyak digunakan adalah
asynchronous replication

5
Basisdata Terdistribusi
Asynchronous Replication
• Memungkinkan transaksi commit sebelum semua
copy data berubah (meskipun user hanya melihat
satu copy)
– Para pengguna harus tahu copy mana yang sedang mereka
baca, dan kemungkinan copy tersebut tidak sinkron (up-
to-date) untuk beberapa waktu.

• Dilakukan dengan dua pendekatan:


– Primary Site
– Peer-to-Peer replication.
• Perbedaan masing-masing pendekatan ini terletak
dalam berapa banyak copy yang “bisa diupdate”
atau “master copies”

6
Basisdata Terdistribusi
Peer-to-Peer Replication
• Terdapat lebih dari satu copy yang merupakan master copy
(bisa diupdate) untuk semua copy data yang tersedia
• Perubahan terhadap master copy harus disebarkan terhadap
copy yang lainnya
• Jika dua master copy berubah dan menyebabkan conflict, hal ini
harus dipecahkan. (Misal., Site 1: umur joe berubah menjadi 35,
site 2: umur Joe berubah menjadi 36) Harus dipilih mana yang
dianggap benar!
•Untuk mencegah terjadinya conflict dilakukan dengan cara
berikut ini:
– Masing-masing master site memiliki hak untuk mengubah
fragment yang disjoint satu sama lain
– Hak untuk melakukan update dimiliki oleh satu buah master pada
satu waktu

7
Basisdata Terdistribusi
Primary Site Replication
• Terdapat tepat satu copy relasi yang dirancang
sebagai primary atau master copy. Replica di site
yang lain tidak bisa langsung di-update.
– Primary copy di-publish
– Site yang lain hanya mengikuti fragmen-fragmen relasi yang
ada di primary copy; mereka disebut sebagai secondary
copy
• Permasalahan utama: Bagaimana perubahan-
perubahan terhadap primary copy disampaikan
kepada secondary copy?
• Dilakukan dalam dua tahap. Pertama, menangkap
(capture) perubahan-perubahan yang dilakukan oleh
transaksi yang sudah commit, kumudian meneruskan
perubahan ini (apply) terhadap semua secondary
copy

8
Basisdata Terdistribusi
Implementasi Tahap Capture
•Dilakukan dengan dua pendekatan:
– Log-based capture
– Procedural capture
•Log-Based Capture
– Terdapat sebuah log (disimpan untuk melakukan recovery) yang digunakan
untuk membangkitkan sebuah Change Data Table (CDT).
– Pada saat log tail dituliskan ke stable storage, semua log record yang
terdapat di dalamnya juga dituliskan ke CDT.
– Jika transaksi yang membangkitkan log record abort, maka semua log record
yang dituliskan ke CDT untuk transaksi tersebut harus dihapus
• Procedural Capture
– Terdapat sebuah prosedur yang secara otomatis dipanggil (e.g. trigger) yang
melakukan capture; Secara khusus trigger ini hanya mengambil snapshot (copy
relasi pada satu waktu tertentu)
•Log-Based Capture lebih baik (lebih murah, lebih cepat) tapi sangat
tergantung terhadap pemahaman struktur log secara detail (vendor
specific)
9
Basisdata Terdistribusi

Implementasi Tahap Apply


• Proses apply di secondary site secara periodik
memperoleh perubahan-perubahan (snapshot)
terhadap tabel CDT dari primary site, dan meng-
update copy di tempatnya.
– Interval (periode) perolehan perubahan-perubahan terhadap
tabel CDT dari primary site ini dapat merupakan timer-
based atau didifenisikan oleh user/aplikasi.
• Kombinasi Capture dan Apply yang disarankan:
– Log-Based Capture plus continuous Apply, meminimalkan
waktu tunda dalam meneruskan perubahan-perubahan
– Procedural Capture plus application-driven Apply, merupakan
cara yang paling fleksibel untuk memroses perubahan-
perubahan

10

Anda mungkin juga menyukai