SALINAN DATA BERGANDA diktat sistem terdistribusi

28

BAB VII SALINAN DATA BERGANDA

Jika prosesor ditempatkan pada lebih dari satu lokasi maka diperlukan penggunaan data yang sama sehingga masing – masing lokasi menyimpan salinan replikasi datanya sendiri. Ada beberapa keuntungan dengan memiliki lebih dari satu salinan data : 1. Transimisi data menjadi berkurang, pengurangan biaya komunikasi mungkin lebih besar dari pada peningkatan biaya penyimpanan dan pemrosesan. 2. Jika sebuah salinan data rusak, masih ada salinan duplikat. 3. Keberadaan sistem yang dapat diterima oleh pengguna akhir mungkin dapat ditingkatkan. 4. Waktu tanggap kepada pemakai akhir mungkin bisa ditingkatkan. Kerugian dengan adanya lebih dari satu salinan data : 1. Biaya penyimpanan meningkat. 2. Peng-update-an data dan reorganisasi file harus dilakukan berulang kali Jika data tidak pernah diperbaharui, ini tidak menghadirkan kesulitan, desainer sistem utamanya memperhatikan biaya. Apakah lebih murah mempunyai salinan ganda atau menggunakan telekomunikasi untuk mengakses satu salinan data ?. PERMASALAHAN PADA DATA TERDISTRIBUSI Distribusi data bisa mempunyai berbagai persoalan yang terkait dengannya, persoalan – persoalan tersebut adalah sebagai berikut : 1. Ada penggunaan antara peng-update-an transaksi Dua buah transaksi mungkin meng-update item data yang sama pada transaksi lainnya sehingga menghasilkan data yang salah. Hal ini dapat dicegah dengan penguncian dan protokol yang tepat. 2. Pembacaan yang tidak konsisten. Dengan memiliki lebih dari satu salinan data, dan terkadang hanya satu salinan dari data terdistribusi dapat menghasilkan informasi yang tidak konsisten pada saat pembacaan data. Terkadang sebagai akibat dari masalah pengaturan waktu data yang dibaca menjadi salah. Ini bisa dicegah dengan penguncian atau protokol yang tepat. 3. Timbulnya deadlock Penguncian pada distribusi data untuk mencegah terjadinya gangguan up-date dapat menyebabkan deadlock kecuali bila digunakan protokol yang sesuai. 4. Adanya pengeluaran biaya tambahan untuk protokol Penggunaan protokol untuk mencegah up-date yang salah pembacaan yang tidak konsisten dan timbulnya deadlock dapat membuat pengeluaran biaya yang berlebihan terutama jika salinan data replika berganda digunakan. 5. Recovery pemulihan Pemulihan setelah terjadinya kegagalan perlu dikontrol sehingga peng-update-an tidak menjadi hilang atau diproses dua kali. 6. Recovery dari salinan berganda. Salinan data multiple mungkin berada dalam keadaan up-date yang berbeda setelah jangka waktu terjadinya kegagalan. Hal ini perlu dikembalikan ke keadaan yang sama resinkronisasi tetapi sangat kompleks untuk dikerjakan pada saat transaksi real time sedang diproses. 7. Pengauditan. Sangat sulit pada sistem terdistribusi untuk mengetahui siapa yang mengerjakan data. Dalam hal ini perlu rancangan yang tepat untuk pengauditan. 8. Pengamanan dan proteksi Kontrol pengamanan dan proteksi privasi terkadang lemah pada sistem distribusi dan perlu dibangun ke dalam desain dasar. GANGGUAN UPDATE UPDATE INTERFERENCE Pada sistem penyimpanan dimana record – record diperbaharui oleh transaksi multiple secara simultan terus menerus , kemungkinan besar akan timbul masalah gangguan. Misalkan ada dua transaksi A dan B, keduanya akan menjumlah Amount pada suatu field tertentu. Berikut ini adalah urutan dari proses yang menghasilkan field yang keliru. 1. A membaca nilai dari field X0. 2. B membaca nilai dari field X0 3. A meng-update nilai tersebut menjadi X0 + Xa dan menuliskannya pada storage. 4. B meng-update nilai tersebut menjadi X0 + Xb dan menuliskannya pada storage. Hasil akhir seharusnya X0 + Xa + Xb ; tetapi B, telah terlanjur menuliskan hasil dari peng-update-an oleh A menjadi X0 + Xb. Untuk mencegah hal tersebut, sistem manajemen storage harus dilengkapi dengan suatu mekanisme yang mengijinkan suatu transaksi untuk mengunci record tersebut antara pembacaan dan penulisannya sehingga tidak ada transaksi lain bisa masuk dan menyebabkan kekeliruan update. Relatif sederhana untuk memberikan perintah update record tunggal, tetapi untuk update record multiple menjadi lebih kompleks. Sayangnya, jika data yang dikunci letaknya jauh dari prosesor penguncian akan tetap berlangsung pada saat pembacaan data sedang ditransmisikan dari data yang diupdate ditransmisikan kembali. Dengan tingkat update tinggi, penguncian seperti ini mengakibatkan pengeluaran biaya tambahan berlebihan. Metode alternatif mencegah kekeliruan update menggunakan transaksi timestamp. 29 DEADLOCK DEADLY EMBRACE Keadaan yang sangat sulit untuk kontrol timbul pada saat proses update membutuhkan dua record. Record Y dibaca, tetapi tidak mungkin diupdate sampai record Z di baca. Record Y harus dikunci selama proses update, oleh karena itu urutan prosesnya adalah sebagai berikut : Transaksi A : 1. Kunci record Y 2. Baca record Y 3. Baca record Z 4. Update record Y 5. Buka kunci record Y Keadaan deadlock akan timbul jika transaksi lain mengunci record Z dan tidak dibuka sampai transaksi ini telah membaca record Y. proses untuk transaksi B adalah sebagai berikut : Transaksi B : 1. Kunci record Z 2. Baca record Z 3. Baca record Y 4. Update record Z 5. Buka kunci record Y Kedua transaksi tersebut membentuk deadlock sebagai berikut : Transaksi A mengunci record Y Transaksi B membaca record Y Transaksi B mengunci record Z Transaksi A membaca record Z Transaksi A mencoba untuk membaca record Z, tetapi record tersebut terkunci Transaksi B mencoba untuk membaca record Y, tetapi record tersebut terkunci. Kedua transaksi menunggu untuk record yang diinginkan tetapi ternyata record tersebut terkunci tidak ada program untuk membuka record yang terkunci. Deadlock dapat terjadi untuk seluruh file, sebagai contoh : misalkan proses 1 menggunakan file A dan membutuhkan file B, tetapi proses 2 menggunakan file B dan membutuhkan file A. Sistem manajemen file atau data base harus dirancang untuk mengetahui dan memperbaiki situasi deadlock. Jika hal ini terjadi pada distribusi data, masalah akan menjadi lebih kompleks. Pada contoh diatas, record Y dan record Z berada pada lokasi yang berbeda secara geografis. Lebih kompleks lagi deadlock bisa terjadi pada dua transaksi atau lebih, misalnya : Transaksi A mengunci record X sampai ia selesai membaca record Y Transaksi B mengunci record Y sampai ia selesai membaca record Z Transaksi C mengunci record Z sampai ia selesai membaca record X Ada dua cara untuk menangani masalah deadlock. 1. Memundurkan kembali pemrosesan pada saat deadlock terjadi 2. Mencegah terjadinya deadlock secara keseluruhan. Untuk mengatasi deadlock perangkat lunak harus dapat mendeteksi suatu transaksi yang tergantung hung-up dan menghentikan sementara salah satu program yang menyebabkan terjadinya deadlock. Dalam hal ini seluruhnya harus dimundurkan pada saat terjadinya program yang terhenti tanpa mempengaruhi integritas dari data yang disimpan. Pemunduran kembali dan memulai program berikutnya harus dilakukan secara otomatis dan harus bersifat transparan terhadap programnya sendiri. Untuk melakukan ini program aplikasi memerlukan synchronization points. Sistem ini akan menyimpan transaksi yang diikuti oleh synchronization points sampai program membuat suatu komitmen, misalnya data sudah betul diupdate. Sistem akan mengundurkan program yang deadlock sampai pada synchronization points dan kemudian memulai kembali program tersebut Memundurkan kembali dari suatu deadlock dapat menjadi kompleks pada lingkungan distribusi, maka lebih baik adalah mencegah terjadinya deadlock. Hal ini dapat dilakukan melalui timestamping transaksi dan memastikan operasi datanya dilakukan dalam urutan timestamp. MASALAH PADA DUPLIKASI PENYALINAN SECARA REALTIME Jika data harus diupdate pada bentuk realtime, penggunaan penyalinan ganda menimbulkan permasalahan. Hal ini tidak akan menjadi masalah jika failure kegagalan sistem tidak pernah terjadi. Kenyataannya terdapat beberapa jenis failure dan jika terjadi failure sistem harus dapat melakukan pemulihan recovery tanpa kehilangan atau kerusakan data. Misalkan untuk jangka waktu tertentu sebuah salinan file tidak diupdate karena adanya failure. Kegagalan ini dikoreksi dan file tersebut harus diupdate dengan menggunakan suatu log tersebut sedang diupdate muncul transaksi baru yang akan mengganggu pengupdate-an. Mekanisme kontrol yang kompleks diperlukan untuk menangani proses recovery dari kegagalan failure . 30 KONSTRAIN UPDATE SYNCHRONOUS Pada umumnya perangkat lunak jaringan tidak dapat menangani peng-update-an realtime dari penyalinan data multiple secara memuaskan jika muncul kegagalan. Karena hal tersebut sebuah batasan konstrain diperlukan untuk merancang distribusi data. Aplikasi salinan data yang sama seharusnya tidak digunakan jika kedua salinan mempunyai suatu tingkat peng-update-an yang besar. Duplikasi salinan dapat digunakan jika : 1. Salinan data tidak diupdate. 2. Salinan data diupdate secara off-line 3. Salinan data diupdate dengan transaksi tunggal dan setiap transaksi diproses sampai selesai dengan kontrol yang tepat sebelum dimulai dengan transaksi berikutnya. 4. Salinan terpisah tidak disimpan secara synchronization salinan yang satu mungkin diupdate beberapa jam lebih lama dibandingkan dengan salinan lainnya. 31 BAB VIII FUNGSI – FUNGSI TERDISTRIBUSI  Pendahuluan  Pemilihan lokasi fungsi  Alasan pendistribusian fungsi  Derajat kemampuan peripheral  Intelligensia terdistribusi dari common carriers 32

BAB VIII FUNGSI