Sebuah fitur karakteristiksistem
terdistribusiyang membedakan mereka darisistemmesin tunggaladalahkonsep
kegagalanparsial. Sebuah
kegagalanparsialdapatterjadi ketikasalah satu komponen dalamsistem
terdistribusigagal. Kegagalan inidapat
mempengaruhioperasi yang tepat darikomponen lainnya, sementara
pada saatyang samakomponen lainnyasama sekali tidak terpengaruh. Sebaliknya, kegagalandalam
sistemnondistributedseringtotal dalamarti, bahwahal itu mempengaruhisemua
komponen, dan dapatdengan mudahmenurunkan
seluruhaplikasi.
Untuk memahami
peran dari toleransi
kesalahan di dalam
sistem tersebar, kebutuhan pertama kita untuk melihat lebih dekat, apa itu benar-benar
berarti karena suatu
sistem tersebar untuk toleransi terhadap
kesalahan-kesalahan. Toleran kesalahan
adalah betul-betul dihubungkan dengan
apakah menyebut sistem
yang ketergantungan.
7.1 Pendahuluan(By Ikhwannul
Muslimin)
Dalam
bab ini kita akan lebih memahamimodelpenyajiankonsep-konsep dasaryang berhubungan
denganpengolahankegagalan,diikuti dengan diskusimodelkegagalan.Teknikutama
untukpenanganankegagalan adalahredundansi,
yang jugadibahas.
Toleransi kesalahantunduk padabanyak
penelitiandalam ilmu komputer. Pada
bagian ini, kita mulai denganmenyajikankonsep-konsep
dasaryang berhubungan dengankegagalanpengolahan,diikuti dengan
diskusimodelkegagalan.Teknikutama untukkegagalanpenangananadalahredundansi,
yang jugadibahas.
7.1.1
KonsepDasar
Untukmemahami
perantoleransi kesalahan dalamsistem terdistribusipertama kita perlumelihat
lebih dekatapa maksudsebenarnyapadasistem terdistribusiuntuk mentolerirkesalahan.
Toleransi kesalahaninisangat terkait denganapa yang disebutSistem
Ketergantungan. Ketergantunganadalah istilahyang
mencakupsejumlah persyaratanyang bergunauntuk sistemterdistribusitermasuk pada
beberapa hal berikut:
1. Ketersediaan
Ketersediaandidefinisikan sebagaiproperti
dimanasistemsiap untuksegera digunakan. Secara umum,mengacu padaprobabilitasbahwa sistemberoperasi dengan
benarpada saat tertentudan tersediauntuk melakukan fungsiatas namapenggunanya.
Dengan kata lain, sistem yang
sangattersediaadalah salah satukemungkinan besar akanbekerjapada suatu saat
tertentudalam waktu.
Ketersediaan
menjamin bahwa informasi dan layanan dapat diakses dan berfungsi
dengan benar (accessible
and functional) pada
saat dibutuhkan. Untuk menyediakan jaringan dengan availability yang
tinggi, maka harus dijamin bahwa
security proses adalah
handal (reliable) dan responsif. Sistem
dan software termasuk
system security yang modular perlu saling Interoperable.
Sistem yang mempunyai
availability yang tinggi
mempunyai karakteristik antara lain
mempunyai MTBF (Mean
Time Between Failur) yang
panjang dengan dukungan
redundant power suplay
dan hot-swappable module.
2. Keandalan
Keandalanmengacu padapropertibahwa
sistemdapat terus berjalantanpa kegagalan. Berbeda denganketersediaan, keandalandidefinisikandalam halinterval
waktubukaninstandalam waktu.Sebuah sistemyang sangat handalkemungkinan besar
akanterus bekerjatanpa gangguanselama waktu yang relatiflama. Ini adalahperbedaan yang halusnamun pentingbila dibandingkan
denganketersediaan. Jika sistemturunselama
satumilidetiksetiap jam, ia memilikiketersediaanlebih
dari99,9999 persen, tapi masihsangat bisa diandalkan.
Demikian pula, sebuah sistemyang tidak
pernahcrashtapidimatikanselama dua minggusetiap bulan Agustusmemiliki keandalan
yang tinggitetapi hanya96persenketersediaan. Keduanyatidak
sama.
Keandalan sistem
(system reliability) sangat
penting di dalam
sebuah sistem terdistribusi karena
di dalam system
tersebut terkandung sejumlah besar
komponen dan kemungkinan
terjadinya kegagalan sangat
besar. Fault atau kesalahan suatu sistem dapat dibedakan menjadi: Fail-silent faults dan Bizantine Faults. Fail-silent faults atau fail stop faults :
sistem berhenti dan tidak memberikan respon terhadap masukan yang ada. Bizantine
Faults : sistem
terus bekerja meskipun
fault dan memberikan hasil yang
salah.Sistem yang mempunyai
sifat dalam kondisi
normal bekerja akan memberikan respon
terhadapat input dalam
waktu terbatas yang telah diketahui disebut sistem
synchronous. Sistem yang tak punya sifat
seperti itu disebut
sistem synchronous. Sistem synchronous
sangat sulit dikelola
dibandingkan dengan synchronous.
3. Keselamatan
Keselamatanmengacu
padasituasiketikasistemsementaragagaluntuk beroperasi dengan benar,
tidak adabencanayang terjadi. Sebagai
contoh,banyak sistemkontrol proses, seperti yang digunakanuntuk
mengendalikanpembangkit listrik tenaga nukliratau mengirimorangke luar angkasa,
diwajibkan untuk memberikan tingkatkeamanan yang tinggi.
Jikasistem kontrol tersebutsementaragagal karenahanyamomen yang
sangatsingkat, efekbisa menjadi bencana. Banyak contohdari masa lalu(dan mungkin banyak
lagibelum datang) menunjukkanbetapa sulitnyauntuk
membangunsistem yang aman.
Integrity (keutuhan)
menjamin bahwa informasi
atau software adalah lengkap,
akurat dan otentik.
Dengan integrity orang
atau proses yang tak
berhak tak bisa membuat
perubahan pada sistem. Untuk
network entegrity kita
perlu menjamin bahwa
message yang diterima adalah sama
dengan message yang dikirim. Isi dari
message harus lengkap dan tak dimodifikasi, dan link antara sumber dan tujuan
node valid. Connection integrity dapat disediakan oleh cryptography
dan routing control. Confidentiality
(kerahasiaan) melindungi informasi
sensitif dari
penyingkapan/pengaksesan yang tak
berhak. Cryptography dan access control digunakan untuk melindungi
kerahasiaan. Usaha penerapan perlindungan
kerahasiaan tergantung pada sensitivitas dari
informasi dan kemungkinan
sifat pengamat atau penyusup.
4. Pemeliharaan
Pemeliharaanmengacu
pada seberapamudahsistem yang gagaldapat diperbaiki. Sebuah sistemyang sangatdipertahankanjuga dapat menunjukkantingkat
tinggiketersediaan, terutama jikakegagalandapat
dideteksidan diperbaikisecara otomatis.
Perlindungan terhadap
semua ancaman dengan
hanya berdasarkan Host sangat
sulit diterapkan. Untuk
melindungi infrastruktur
kita harus menerapkan
perlindungan/security berdasarkan
layer. Kita seharusnya
membangun pertahanan yang sesuai yang berada di dalam sistem
sehingga penyusup yang mungkin bisa mengakses
salah satu bagian
dari sistem tidak
akan secara otomatis dapat
mengakses bagian lain dari sistem tersebut. Akses terhadap
host yang berisi
informasi rahasia membutuhkan pengontrolan yang
hati-hati. Host di
dalam sistem jaringan
kita sebaiknya
diinventarisir dan dilakukan
klasifikasi jenis perlindungan atau security yang sesuai.
Suatu sistem dikatakan gagal ketika
tidak dapat memenuhi janjinya. Secara khusus, jika sistem terdistribusi
dirancang untuk menyediakan pengguna dengan sejumlah layanan, sistem ini telah
gagal ketika satu atau lebih dari layanan tersebut tidak dapat (sepenuhnya)
disediakan. Sebuah kesalahan adalah bagian dari sistem yang dapat menyebabkan
kegagalan. Misalnya, ketika transmisi paket di seluruh jaringan, itu diharapkan
bahwa beberapa paket telah rusak ketika mereka tiba di penerima. Rusak dalam
konteks ini berarti bahwa penerima mungkin salah merasakan nilai bit (misalnya,
membaca 1 bukannya 0), atau bahkan mungkin tidak dapat mendeteksi bahwa sesuatu
telah tiba.
Penyebabkesalahanini disebutkesalahan.
Jelas,mencari tahuapa yang menyebabkankesalahanpenting. Misalnya,media transmisiyang salahatau burukdapatdengan
mudahmenyebabkanpaket yang akanrusak.Dalamhal ini, relatif
mudahuntuk menghapuskesalahan. Namun, kesalahan transmisijuga bisa disebabkanoleh kondisicuaca
buruksepertidalam jaringan nirkabel. Mengubahcuacauntuk
mengurangi ataumencegah kesalahanbukanlah suatu pilihan.
Membangun sistemketergantunganeratberkaitan dengan mengendalikankesalahan.
Sebuah perbedaan dibuatantaramencegah, menghapus,
danmeramalkan kesalahan(Laprie, 1995). Untuk tujuan kita, hal yang palingpenting adalahtoleransi kesalahan, yang berarti bahwasistem dapatmenyediakan layananbahkan dalamadanya
kesalahan.
7.1.2
Model Kegagalan
Sebuah sistem yanggagaladalah tidak cukup
menyediakan layananitu dirancang. Jika
kitamempertimbangkansistem terdistribusisebagaikumpulan server
yangberkomunikasi satu samalain dandengan klien mereka, tidak
cukupmemberikan pelayananberarti bahwa server, saluran
komunikasi, ataumungkin keduanya, tidak melakukan apayang seharusnya merekalakukan. Namun, serverrusaksendirimungkin tidak
selalumenjadi kesalahanyang kita cari. Jika
servertersebuttergantung padaserver lainuntuk menyediakan layananyangmemadai,
penyebabkesalahanmungkin perludicaridi tempat lain.
Hubungan ketergantungansemacam itu
munculdalam jumlah besar disistem terdistribusi. Sebuah diskgagalmungkinmembuat hidup sulit bagifile server
yangdirancanguntuk menyediakan sistemfile yang sangattersedia.Jika sepertifile
servermerupakan bagian daridatabase terdistribusi, kerja
yang tepat dariseluruh databasemungkin dipertaruhkan, karena hanya sebagiandatayang benar-benardapat diakses.
Sistem dikatakan
gagal (fail) apabila
tidak mampu memenuhi spesifikasi tekniknya. Sistem Komputer dapat gagal karena kesalahan
beberapa komponen seperti:
processor, memory, I/O device,
cable atau software. Kesalahan
dapat diklasifikasikan sebagai:
transient, intermittent,
permanent. Kesalahan transientterjadi sekali
dan kemudian menghilang. Jika operasi diulangi, kesalahan tidak
muncul. Kesalahan intermittent terjadi
kemudian menghilang, lalu
muncul lagi, lalu menghilang lagi,
dst. Contohnya seperti
hubungan konektor yang loggar. Keslahan
permanent terjadi seterusnya
sampai komponen yang fault
diperbaiki. Contoh chips
terbakar, software bugs,
disk head crash. Tujuan perancangan dan
pembuatan toleransi kesalahan
adalah menjamin bahwa system secara keseluruhan mampu terus berfungsi
secara benar meskipun fault
terjadi. Jadi disini tidak mensyaratkan individual komponen yang
sangat reliable.
Untukmendapatkan pemahaman yanglebih baik
tentang bagaimanaseriuskegagalansebenarnya, beberapa skemaklasifikasi telah dikembangkan. Salah
satuskema tersebutditunjukkan pada Gambar. dan didasarkan padaskemayang
dijelaskan dalam(Cristian, 1991, dan HadzilacosdanToueg, 1993).
Type of failure
|
Description
|
Crash failure
|
A server halts, but is working correctly until it
halts
|
Omission failure
Receive omission Send omission |
A server fails to respond to incoming requests
A server fails to receive incoming messages A server fails to send messages |
Timing failure
|
A server's response lies outside the specified time
interval
|
Response failure
Value failure State transition failure |
The server's response is incorrect
The value of the response is wrong The server deviates from the correct flow of control |
Arbitrary failure
|
A server may produce arbitrary responses at
arbitrary times
|
Sebuah crash failureterjadi
ketikaserversecara premature
menghentikan, tetapibekerja dengan
benarsampai berhenti. Sebuah aspek pentingdengancrash
failureadalah bahwa setelahservertelahdihentikan, tidak
ada ada lagi yang didengar. Sebuah contoh khas daricrash
failureadalah sistem operasiyang datangberhenti grinding, danyanghanya ada satusolusi: reboot.
Omission failureterjadi ketikaserver
gagaluntuk menanggapipermintaan. Beberapa
halyang mungkin salah. Dalamkasus receive omission
failure, servermungkintidak pernah mendapatpermintaandi
tempat pertama. Perhatikan bahwamungkin jugamenjadi
kasusbahwa hubungan antaraklien danservertelahditetapkan dengan benar, tapi itutidak adayangmengetahuipermintaan masuk. Juga, receive omission failure umumnyatidak
akan mempengaruhikeadaanserver saat itu, karenaservertidak
menyadarisetiap pesan yangdikirim ke sana.
Demikian juga, send omission failure terjadiketika servertelah melakukan
pekerjaannya, tapi entah bagaimanagagaldalam
mengirimkantanggapan.Kegagalan tersebutdapatterjadi, misalnya, ketikamengirimbuffer overflowssementara servertidak siap untuksituasi
seperti ini. Perhatikan bahwa, berbeda dengan receive omission failure, server
sekarangmungkindalam keadaanyang mencerminkanbahwa iabaru saja menyelesaikanlayanan
untukklien. Sebagaikonsekuensinya, jikapengirimanrespongagal, servermungkinperlu
dipersiapkanbahwa klienakanmengulang kembalipermintaansebelumnya.
Kelas lain darikegagalanberhubungan
denganwaktu. Timing failureterjadi
ketikaresponterletak di luarintervalreal-waktu
tertentu. Seperti yang kita lihatdengan aliran dataisochronous,
menyediakan dataterlalu cepatdapatdengan mudahmenimbulkan
masalah bagipenerimajikaadatidak cukuptempat penyanggauntuk
menampung semuadata yang masuk. Lebihumum, bagaimanapun, adalah bahwaservermeresponterlambat, dalam halkegagalankinerjadikatakan terjadi.
Sebuah jenisseriuskegagalanadalah
kegagalanrespon, olehrespon serveryang salah.Dua
jeniskegagalanresponmungkin terjadi. Dalamkasus kegagalannilai, servermemberikanjawabanyang
salah untukpermintaan. Sebagai contoh,sebuah mesin
pencari yangsistematismengembalikanhalaman Webtidak berhubungan dengansalah
satuistilah pencarian yang digunakan, telah gagal.
Jenis lain darikegagalanrespondikenalsebagai
state transition failure.Inibentuk kegagalanterjadi
ketikaservertiba-tibabereaksidenganpermintaan yang masuk.
Sebagai contoh, jikaservermenerima pesantidak dapat mengenali,
state transition failureyang terjadi jikatidak ada
tindakantelah diambiluntuk menanganipesan tersebut. Secara
khusus, serverrusakmungkinsalahmengambil tindakandefaultyang
seharusnya tidak pernahdimulai.
Yang paling seriusadalahArbitrary failure, juga dikenal sebagaikegagalanBizantium. Akibatnya,
ketika Arbitrary failureterjadi,klienharussiap
untuk yang terburuk. Secara khusus, dapat terjadi ketikaservermemproduksioutputyang seharusnya tidak pernahdiproduksi,tetapi yang tidakdapat dideteksiyangsalah.Parahnya
lagiserversalahbahkanmungkinburukbekerja samadengan server lainuntuk
menghasilkanjawabansalah dengan sengaja.
Arbitrary failure
terkait erat dengancrash
failure. Definisicrash failureseperti
yangdisajikan di atasadalah cara yang palingjinakuntuk serveruntuk menghentikan.
Merekajuga disebut sebagaikegagalan gagal-stop.
Akibatnya, server gagal-berhenti yanghanya akanberhenti memproduksioutput dalamsedemikian rupa
sehinggayangmenghentikandapat dideteksioleh proses lainnya. Sebagai contoh,servermungkin begitu ramahuntuk mengumumkanini adalah crash.
Tentu saja,dalam kehidupan nyata,
servermenghentikandengan menunjukkankegagalankelalaianataucrash,
dantidak begituramahuntuk mengumumkan merekaakan berhenti.
Terserahproses lainuntuk memutuskan
bahwaservertelahdihentikansecara prematur. Namun,
dalamsistem fail-silent, proseslain
mungkinsalahmenyimpulkan bahwaservertelahdihentikan. Sebaliknya,
servermungkin hanyatiba-tibalambat, yaitu,itumenunjukkankegagalankinerja.
Akhirnya, ada jugakesempatan di manaservermenghasilkan outputacak, tapioutput
inidapat dikenalioleh proses lainnyasebagai
sampahbiasa.Serverkemudianmenunjukkanarbitrary failuretetapi dengan cara
yangjinak. Inikesalahanjuga disebutsebagaifail-safe.
7.1.3
KegagalanMaskingolehredundansi
Jika system menjadifault tolerant,
yang terbaikyang dapat dilakukan adalahmencobauntuk
menyembunyikanterjadinyakegagalandari proses lainnya. Teknikutama
untukkesalahanmaskingadalah dengan menggunakanredundansi. Tiga jenisyang mungkin: redundansiinformasi,
redundansiwaktu, dan redundansifisik.
a.
Information Redundancy
Metodainimenambahkan
extra bit untukmembuatsedemikianhinggadapatmerecoveryinformasi yang
telahrusak. Contoh Hamming code
ditambahkanpada transmitted data.
b.
Time Redundancy
Sebuahoperasidilakukandankemudianjikadiperlukandiulangilagi. Contoh,
penggunaan atomic transaction.
Jika transactiondibatalkan,
proses tersebutdapatdiulangilagitanpamenimbulkanmasalah. Metoda ini
sangat bermanfaat jika
fault-nya adalah transient atau
intermittent.\
c.
Physical Redundancy
Pendekatan
ini menggunakan penambahan
perangkat ekstra. Prosestambahan yang dapat
ditambahkanke sistemsehingga jikasejumlahkecil dari merekakecelakaan,
sistem masihdapatberfungsi dengan benar. Dengan kata lain, dengan proses replikasi,
tingkat tinggitoleransi kesalahandapat dicapai. Sebagai contoh
ekstra processor dapat
ditambahkan ke System sehingga jika
beberapa processor rusak
maka System secara keseluruhan masih
dapat berfungsi dengan
benar. Ada
duacarauntukmengelolaekstra
processor tersebut: activereplicationdan primary backup.
Perhatikan,Gambar(a).
SinyalmelewatiperangkatA, B, dan C,secara
berurutan. Jikasalah satu dari merekarusak, hasil akhirmungkin akansalah.
Gambarmenunjukkan sinyal
melalui device A,B,C
secara berurutan. Setiap device
memiliki 3 replikasi.
Dan setiap replikasi diikuti sebuah voter. Setiap voter
memiliki 3 input dan satu output. Jika
dua atau tiga input sama, maka output sama dengan input. Jika 3 input berbeda hasil output tak
terdefinisi. Misalkan element A2 gagal. Setiap voter V1, V2 dan V3 mendapatkan
2 masukan identik yang
benar dan sebauh
salah, tetapi Voter
tetap menghasilkan output yang
benar untuk masukan
tahap berikutnya. Sehingga pada
dasarnya efek A2
tidak berpengaruh secara keseluruhan System.
Kesimpulan
Toleransi
kesalahansangat terkait denganapa yang disebutSistem Ketergantungan.
Ketergantunganadalah istilahyang mencakupsejumlah
persyaratanyang bergunauntuk sistemterdistribusitermasuk yaitu : Ketersediaan,
Keandalan, Keamanan dan Pemeliharaan. Ada beberapa model-model kegagalanyaituCrash failure, Omission failure (Receive &Send
omission), Timing failure,
Response failure (Value &State transition failure), danArbitrary failure
7.2 Process Resilience(By Nasrullah Yusuf)
Topik
pertamakitabahas adalahperlindungan terhadapkegagalanproses, yangdicapai denganprosesreplikasike dalam kelompok. Juga, kita melihat bagaimanauntuk mencapai
kesepakatandalam kelompokproses ketikasatu ataulebih anggotanyatidak bisa dipercayauntuk
memberikanjawaban yang benar.
Untuk
mentoleransi suatu proses yang rusak adalah untuk mengatur proses beberapa
identik dalam kelompok, artinya bahwa ketika sebuah pesan itu dikirim ke
kelompok itu sendiri, semua anggota kelompok menerimanya. Dengan cara ini, jika
satu proses dalam kelompok gagal, mudah-mudahan beberapa proses lain dapat
mengambil alih untuk itu. Proses kelompok memungkin proses yang dinamis.
Kelompok baru dapat diciptakan dan kelompok tua dapat dihancurkan. Sebuah
proses dapat bergabung dengan grup atau meninggalkan satu selama sistem
operasi. Sebuah proses dapat menjadi anggota dari beberapa kelompok pada waktu
yang sama. Konsekuensi-konsekuensinya, mekanisme yang diperlukan untuk
mengelola kelompok dan keanggotaan kelompok. Setiap saat, ia bebas untuk
meninggalkan salah satu atau semua dari kelompok-kelompok ini, dan mungkin
bergabung dengan kelompok lain. Tujuan kelompok memperkenalkan adalah untuk
memungkinkan proses untuk menangani kolektifasi
proses sebagai abstraksi tunggal. Dengan demikian proses dapat mengirim
pesan ke sekelompok server tanpa harus mengetahui berapa banyak ,ada atau di
mana mereka berada, yang dapat berubah dari satu panggilan ke yang berikutnya.
Grup Setara versus Grup
hirarkis.
Sebuah perbedaan penting antara kelompok yang
berbeda berkaitan dengan struktur internal mereka. Dalam kelompok setara, semua
proses adalah sama. Tidak ada yang bos dan semua keputusan-keputusan dibuat
secara kolektif. Sedangkan di kelompok hirarki ada. Sebagai contoh, satu proses
adalah koordinator dan semua yang lain adalah pekerja. Dalam model ini, ketika
permintaan untuk pekerjaan yang dihasilkan, baik oleh klien eksternal atau oleh
salah satu pekerja, itu dikirim ke koordinator. Koordinator kemudian memutuskan
mana pekerja yang paling cocok untuk keluar, dan ke depan sana. Lebih kompleks
hirarki juga mungkin, tentu saja. Pola-pola komunikasi yang diilustrasikan pada
Gambar. 7-3.
Gambar 7-3. (A) Komunikasi dalam kelompok
datar. (B) Komunikasi dalam kelompok hirarkis yang sederhana.
Masing-masing
organisasi memiliki kelebihan dan kekurangan. Pada Kelompok setara simetris dan
tidak memiliki titik tunggal kegagalan Jika salah satu crash proses, kelompok
hanya menjadi lebih kecil, tetapi tetap dapat berjalan terus. Namun kelemahannya
adalah bahwa pengambilan keputusan yang lebih rumit. Misalnya, untuk memutuskan
apa yang harus dilakukan , suara seringkali harus diambil, menimbulkan beberapa
penundaan dan overhead. Sedangkan Kelompok hirarkis memiliki sifat berlawanan.
Kehilangan 'koordinator membawa seluruh kelompok berhenti grinding, tapi selama
itu berjalan, dapat membuat keputusan tanpa mengganggu orang lain.
Keanggotaan Grup
Ketika
komunikasi kelompok hadir, beberapa metode diperlukan untuk membuat dan
menghapus kelompok, serta untuk memungkinkan proses untuk bergabung dan
meninggalkan kelompok. Salah satu pendekatan yang mungkin adalah untuk memiliki
sebuah server kelompok yang semua permintaan dapat mengirim ke server kelompok
kemudian dapat mempertahankan basis data lengkap dari semua kelompok dan
keanggotaan mereka dengan tepat Metode ini sangat mudah, efisien, dan mudah
diimplementasikan Sayangnya, itu saham kerugian yang besar dengan semua teknik
terpusat, satu titik kegagalan .
Mungkin
sebagian besar atau semua kelompok harus direkonstruksi dari awal, mungkin
tenninating pekerjaan apapun yang terjadi. Pendekatan yang berlawanan adalah
untuk mengelola keanggotaan grup dalam cara didistribusikan. Untuk Misalnya,
jika (handal) multicasting tersedia, orang luar bisa mengirim mes ~ bijak untuk
semua anggota kelompok mengumumkan keinginannya untuk bergabung dengan grup
Idealnya, untuk meninggalkan kelompok, anggota
hanya mengirimkan pesan selamat tinggal kepada setiap orang. Dalam
konteks toleransi kesalahan, dengan asumsi gagal-stop semantik umumnya tidak
tepat. Masalahnya adalah, tidak ada pengumuman sopan bahwa proses crash karena
ada adalah ketika proses meninggalkan secara sukarela Para anggota lain harus
menemukan eksperimental ini dengan memperhatikan. bahwa anggota jatuh tidak
lagi merespon apa-apa. Setelah dipastikan bahwa anggota benar-benar jatuh ke
bawah (dan bukan hanya lambat), dapat dihapus dari grup.
Masalah
rumit adalah bahwa meninggalkan dan bergabung harus sinkron dengan pesan data
yang dikirim Dengan kata lain, mulai instan bahwa proses telah bergabung dengan
kelompok, ia harus menerima semua pesan yang dikirim ke grup tersebut. Demikian
pula, segera setelah proses telah meninggalkan grup, tidak harus menerima pesan
lagi dari grup , dan anggota lain tidak boleh menerima pesan lagi adalah Salah
satu cara untuk memastikan bahwa bergabung atau meninggalkan terintegrasi ke
dalam aliran pesan di tempat yang tepat adalah untuk mengubah operasi ini
menjadi urutan pesan yang dikirim ke seluruh kelompok. Satu Edisi terakhir yang
berkaitan dengan keanggotaan kelompok adalah apa yang harus dilakukan jika
mesin begitu banyak turun bahwa kelompok tidak dapat lagi berfungsi sama
sekali. Beberapa protokol dibutuhkan untuk membangun kembali kelompok.
lnvatiably, beberapa proses akan harus mengambil inisiatif untuk memulai Bola
bergulir, tetapi apa yang terjadi jika dua atau tiga mencoba pada saat yang
sama?, Protokol harus untuk mampu menahan ini.
7.2.2 Kegagalan Masking dan
kelompok Replikasi
Proses
adalah bagian dari solusi untuk membangun toleransi kegagalan sistem. Secara
khusus, memiliki sekelompok proses yang identik memungkinkan kita untuk
menutupi satu atau lebih proses yang salah dalam kelompok itu. Dengan kata
lain, kita bisa meniru proses dan mengatur mereka ke dalam kelompok untuk
mengganti proses (rentan) tunggal dengan kelompok (fault tolerant). Sebagaimana
dibahas dalam bab sebelumnya, ada dua cara untuk mendekati replikasi tersebut:
dengan cara primer berbasis protokol, atau melalui direplikasi-menulis
protokol. Sebuah replikasi Primer berbasis dalam kasus toleransi kesalahan
umumnya muncul dalam bentuk protokol utama-backup. Dalam hal ini, sekelompok
proses adalah pengatur dalam mode hirarkis di mana primer mengkoordinasikan semua
operasi menulis.
Dalam
praktek utama adalah tetap, meskipun perannya dapat diambil alih oleh salah
satu backup, jika perlu. Akibatnya, ketika crash utama, backup menjalankan
beberapa algoritma pemilu untuk memilih dasar yang baru. Seperti yang kami
jelaskan dalam bab sebelumnya, direplikasi-menulis protokol yang digunakan
dalam bentuk replikasi aktif, serta melalui daerah berbasis protokol. Solusi
ini sesuai dengan mengorganisir koleksi proses identik ke dalam kelompok datar.
Keuntungan utama adalah bahwa kelompok-kelompok tersebut tidak memiliki titik
tunggal kegagalan, pada biaya koordinasi terdistribusi. Sebuah isu penting
dengan menggunakan kelompok proses untuk mentolerir kesalahan, adalah bagaimana
replikasi banyak dibutuhkan. Untuk menyederhanakan diskusi kita, mari kita
perhatikan hanya direplikasi-menulis sistem. Suatu sistem dikatakan k fault
tolerant jika dapat bertahan kesalahan dalam komponen k dan masih memenuhi
spesifikasinya. Jika komponen, mengatakan proses, gagal diam-diam, kemudian
setelah k + l dari mereka sudah cukup untuk memberikan toleransi kesalahan k.
Jika k dari mereka hanya berhenti, maka jawaban dari yang lain dapat digunakan.
Di sisi lain, jika proses menunjukkan kegagalan Bizantium, terus berjalan
ketika sakit dan mengirimkan balasan yang keliru atau acak, minimal 2k + l
pro-cessors diperlukan untuk mencapai toleransi kesalahan k. Dalam kasus
terburuk, proses k gagal sengaja bisa (atau bahkan sengaja) menghasilkan
jawaban yang sama. Namun, k + l yang tersisa juga akan menghasilkan jawaban
yang sama, sehingga klien atau pemilih hanya bisa percaya mayoritas.
Tentu saja, dalam teori itu baik-baik saja
untuk mengatakan bahwa sistem adalah k fault tolerant dan hanya membiarkan k +
1 balasan identik mengalahkan dlm pemilihan yang Ini balasan identik, tetapi
dalam prakteknya sulit untuk membayangkan keadaan di mana seseorang dapat
mengatakan dengan pasti bahwa k proses dapat gagal tetapi k + l proses yang
tidak bisa gagal. Pun demikian dalam sistem fault-tolerant beberapa jenis
analisis statistik mungkin diperlukan. Sebuah prasyarat implisit untuk model
ini menjadi relevan adalah bahwa semua permintaan tiba di semua server dalam
urutan yang sama, juga disebut masalah multicast atom. Sebenarnya, kondisi ini
bisa santai sedikit, karena membaca tidak penting dan beberapa menulis
perjalanan mungkin, tapi masalah umum tetap. Multicasting atom dibahas secara
rinci pada bagian selanjutnya.
7.2.3 Perjanjian dalam Sistem Faulty
Pengorganisasian
proses direplikasi ke kelompok membantu untuk meningkatkan toleransi kesalahan.
Seperti yang telah disebutkan, jika klien dapat mendasarkan keputusan melalui
mekanisme voting, kita bahkan bisa mentolerir k yang keluar dari 2k l proses +
yang berbohong tentang hasil mereka. Asumsi kita membuat, bagaimanapun, adalah
bahwa proses tidak membentuk tim untuk produce hasil yang salah. Secara umum,
hal-hal menjadi lebih rumit jika kita menuntut bahwa kelompok proses mencapai
kesepakatan. Perjanjian diperlukan dalam banyak kasus. Beberapa contoh adalah:
pemilihan koordinator, memutuskan apakah atau tidak untuk melakukan transaksi,
membagi tugas di antara pekerja, dan sinkronisasi.
Ketika
komunikasi dan proses semua sempurna, mencapai kesepakatan tersebut sering
langsung, tetapi ketika mereka tidak, masalah timbul. Tujuan umum dari
algoritma kesepakatan terdistribusi adalah untuk memiliki semua non »rusak
proses mencapai konsensus pada beberapa masalah, dan untuk membentuk konsensus
yang dalam setiap langkah jumlah terbatas. Kasus yang berbeda mungkin
tergantung pada parameter sistem, termasuk apakah atau tidak komunikasi dapat
diandalkan, atau kecelakaan-kegagalan semantik untuk proses. Sebelum
mempertimbangkan kasus proses rusak, mari kita lihat kasus "mudah"
proses yang sempurna, tetapi di mana jalur komunikasi bisa kehilangan pesan Ada
masalah yang terkenal, yang dikenal sebagai masalah dua tentara, yang
menggambarkan culty diffi-mendapatkan bahkan dua proses yang sempurna untuk
mencapai kesepakatan tentang sedikit
informasi.
Tentara
merah, dengan 5000 tentara, yang berkemah di sebuah lembah. Dua tentara biru,
masing-masing 3000 yang kuat, yang berkemah di lereng bukit yang menghadap ke
lembah sekitarnya. Jika dua tentara biru dapat mengkoordinasikan serangan
mereka pada tentara merah, mereka akan menang. Namun, jika salah satu serangan
dengan sendirinya akan disembelih. Tujuan dari tentara biru adalah untuk
mencapai kesepakatan tentang menyerang. Menangkap adalah bahwa mereka hanya
dapat berkomunikasi menggunakan saluran tidak dapat diandalkan: mengirim
seorang utusan yang dikenakan untuk menangkap oleh tentara merah. Misalkan
bahwa komandan biru tentara l, Jenderal Alexander, mengirimkan pesan itu kepada
komandan biru, tentara 2 Jenderal Bonaparte, membaca: "Saya memiliki
serangan rencana-mari kita besok subuh".
Utusan mendapat melalui dan Bonaparte mengirimkan dia kembali dengan
catatan yang mengatakan: "Ide Splendid, Alex. Sampai jumpa di fajar
tomor-baris "utusan akan kembali ke markasnya aman., Memberikan
pesan-pesannya, dan Alexander mengatakan pasukan h.is untuk mempersiapkan
pertempuran di fajar.
Namun,
hari itu, Alexander menyadari bahwa Bonaparte tidak tahu apakah utusan kembali
aman dan tidak mengetahui hal ini. tidak mungkin berani untuk menyerang.
Con-sequently, Alexander mengatakan utusan untuk pergi memberitahu bahwa
Bonaparte (Bonaparte) pesannya tiba dan bahwa pertempuran diatur. Sekali lagi
utusan mendapat melalui dan memberikan pengakuan. Tapi sekarang Bonaparte
khawatir bahwa Alexander tidak tahu apakah mengakui-ment berhasil melewati. Dia
alasan bahwa jika Bonaparte berpikir bahwa utusan itu cap-terstruktur, ia tidak
akan yakin tentang (Alexander) rencananya, dan tidak mungkin risiko serangan,
sehingga ia mengirimkan utusan kembali lagi. Bahkan jika utusan itu membuatnya
melalui setiap waktu, mudah untuk menunjukkan bahwa Alexander dan Bonaparte
tidak akan pernah mencapai kesepakatan, tidak peduli berapa banyak ucapan
terima kasih mereka kirimkan. Asumsikan bahwa ada beberapa protokol yang
berakhir dalam jumlah terbatas langkah. Hapus semua langkah tambahan di akhir
untuk mendapatkan protokol minimum yang bekerja. Beberapa pesan sekarang yang
terakhir dan sangat penting untuk perjanjian (karena ini adalah protokol
minimum). Jika pesan ini gagal untuk tiba, perang adalah Off.
Namun, pengirim pesan terakhir tidak tahu
apakah pesan terakhir tiba. Jika tidak, protokol tidak lengkap dan umum lainnya
tidak akan menyerang. Dengan demikian pengirim pesan terakhir tidak bisa tahu
apakah perang dijadwalkan atau tidak, dan karenanya tidak dapat dengan aman melakukan
pasukannya. Sejak penerima yang terakhir mes-bijak tahu pengirim tidak dapat
memastikan, ia tidak akan risiko kematian baik, dan ada kesepakatan. Bahkan
dengan proses nonfaulty (jenderal), kesepakatan akan-tween bahkan dua proses
tidak mungkin dalam menghadapi komunikasi tidak dapat diandalkan. Sekarang mari
kita asumsikan bahwa komunikasi sempurna tapi proses tidak. Masalah klasik di
sini juga terjadi dalam pengaturan militer dan IS disebut masalah jenderal
Bizantium.
Dalam
masalah ini tentara merah masih berkemah di lembah, tapi n biru jenderal
tentara kepala semua di bukit dekatnya. Komunikasi dilakukan berpasangan
melalui telepon dan seketika dan sempurna, namun m dari gen-erals adalah
pengkhianat (rusak) dan secara aktif berusaha untuk mencegah para jenderal yang
setia dari mencapai kesepakatan dengan memberi mereka informasi yang salah dan
bertentangan (untuk model proses rusak). Pertanyaannya sekarang apakah para
jenderal yang setia masih dapat mencapai kesepakatan.
Demi umum, kita akan mendefinisikan
kesepakatan dengan cara yang sedikit berbeda di sini. Setiap umumnya
diasumsikan untuk mengetahui berapa banyak tentara yang ia miliki. Tujuan dari
masalah adalah para jenderal untuk kekuatan pasukan pertukaran, sehingga pada
akhir algoritma, setiap umum memiliki vektor dengan panjang n sesuai dengan
tentara alllthe. Jika umum saya setia, maka elemen i adalah kekuatan
pasukannya, jika tidak, rt ls terdefinisi.
Sebuah algoritma rekursif ditemukan oleh Lamport et al. (1982) yang
memecahkan masalah ini dalam kondisi tertentu. Dalam Gambar. 7-4 kami
menggambarkan kerja algoritma untuk kasus rt = 4 dan m = 1. Untuk parameter
ini, algoritma beroperasi dalam empat langkah. Dalam langkah pertama, umumnya
setiap mengirim pesan (handal) untuk setiap umum lainnya mengumumkan kekuatan
pasukannya. Jenderal Loyal memberitahu irllih, pengkhianat dapat memberitahu
setiap umum lainnya kebohongan yang berbeda.
Dalam
Gambar. 7-4 (a) kita melihat bahwa gen-eral 1 laporan pasukan 1K, general 2
laporan pasukan 2K, general 3 terletak untuk semua orang, memberikan x, y, dan
z, masing-masing, dan umum 4 laporan pasukan 4K. Pada langkah 2, hasil
pengumuman dari l langkah dikumpulkan bersama-sama dalam bentuk vektor Gambar.
Gambar 7-4. Para jenderal Masalah Bizantium
selama tiga jenderal yang setia dan satu pengkhianat. (A) Para jenderal
mengumumkan n-oop mereka kekuatan (dalam satuan 1 kiloso1-diet). (B) vektor
yang umum setiap merakit didasarkan pada (a). (C) The vee-lors bahwa umum
masing-masing menerima pada langkah 3.
Langkah
3 terdiri dari setiap jenderal lewat vektor nya dari Gambar. 7-4 (b) untuk
setiap umum lainnya. Umum masing-masing mendapat tiga vektor, satu dari setiap
umum lainnya. Di sini juga, general 3 terletak melalui giginya, menciptakan
nilai-nilai baru l2, melalui l. Hasil dari langkah 3 ditunjukkan pada Gambar.
7-4 (0). Akhirnya, pada langkah 4, setiap ujian umum. ines elemen i dari
masing-masing vektor baru diterima. Jika nilai apapun memiliki mayoritas, nilai
yang dimasukkan ke dalam vektor hasil. Jika tidak ada nilai memiliki mayoritas,
elemen yang sesuai dari hasil vektor ditandai UNKNOWN. Dari Gambar. 7. 4 (c)
kita melihat bahwa jenderal l, 2, dan 4 semua datang ke kesepakatan tentang
(l,
2, UNKNOWN, 4)
yang
merupakan hasil yang benar. Pengkhianat tidak dapat merusak informasi dari para
jenderal yang setia, ia tidak mampu mengotori karya. Sekarang mari kita kembali
masalah ini untuk n = 3 dan m = l, yaitu, hanya dua jenderal yang setia dan
satu pengkhianat, seperti yang diilustrasikan pada Gambar. 7-5. Di sini kita
melihat bahwa pada Gambar. 7-5 (c) netther jenderal yang setia melihat
mayoritas untuk elemen 1, elemen 2, 3 atau elemen, sehingga semua dari mereka
ditandai UNKNOWN. Algoritma telah gagal menghasilkan kesepakatan.
Gambar
7-5 Sama seperti Gambar.. 7-4, kecuali sekarang dengan dua jenderal yang setia
dan satu pengkhianat.
Dalam
tulisan mereka, Lamport et al. (I982) membuktikan bahwa dalam suatu sistem
dengan proses m rusak , kesepakatan dapat dicapai hanya jika 2m + l Pf benar
Kami Prfiselll untuk total 3m +. 1. Taruh dalam istilah yang sedikit berbeda,
setuju-pemerintah hanya mungkin jika lebih dari dua-pertiga dari proses bekerja
den-gan benar Cara lain untuk melihat masalah ini, adalah sebagai berikut Pada
dasarnya. apa yang kita butuhkan untuk mencapai suara mayoritas adalah di
antara sekelompok jenderal yang setia terlepas dari apakah ada pengkhianat di
antara arepalso tengah penggunaan mereka.. Jika ada m pengkhianat, kita perlu
memastikan bahwa suara mereka, bersama dengan itu dari setiap loyalis yang
telah menyesatkan oleh para pengkhianat, masih sesuai dengan suara mayoritas
dari para loyalis, Dengan 2m + 1 loyalis, hal ini dapat dicapai dengan
mensyaratkan kesepakatan yang mencapai hanya jika lebih dari dua-pertiga suara
yang sama. Dengan kata lain, jika lebih dari dua pertiga Yl menyetujui
keputusan yang sama, keputusan ini sesuai dengan suara yang sama mayority oleh
sekelompok jenderal yang setia.
Sayangnya,
mencapai kesepakatan dapat menjadi lebih buruk. Fischer et al. (1985)
membuktikan bahwa dalam sistem terdistribusi di mana pesan tidak dapat dijamin
akan disampaikan dalam waktu, dikenal terbatas, tidak ada kesepakatan yang
mungkin jika bahkan satu pro-cess rusak (meskipun jika proses satu gagal
diam-diam) Masalah dengan seperti sistem-sistem adalah bahwa proses
sewenang-wenang lambat yang bisa dibedakan dari yang jatuh.. Banyak hasil
teoritis lain yang dikenal tentang kapan perjanjian adalah mungkin dan ketika
itu . tidak Survei dari hasil ini diberikan dalam (Barborak et al, 1993;. dan
Turek dan Shasha, 1992).
7.3 DIANDALKAN CLIENT-SERVER
KOMUNIKASI
Dalam
banyak kasus, toleransi kesalahan dalam sistem terdistribusi berkonsentrasi
pada proses rusak Namun, kita juga perlu. untuk mempertimbangkan kegagalan
komunikasi. Sebagian besar model kegagalan dibahas sebelumnya berlaku juga
untuk saluran komunikasi. Secara khusus, sebuah saluran komunikasi mungkin
menunjukkan kecelakaan, kelalaian, waktu, dan kegagalan sewenang-wenang. Dalam
prakteknya, ketika membangun saluran komunikasi yang handal, fokusnya adalah
pada masking kegagalan kecelakaan dan kelalaian kegagalan Sewenang-wenang dapat
terjadi dalam bentuk pesan duplikat, hasil dari kenyataan bahwa dalam pesan
jaringan komputer dapat buffer untuk waktu yang relatif lama, dan reinjected ke
jaringan setelah pengirim asli telah mengeluarkan. retransmisi (lihat,
misalnya, Tanenbaum, 1996).
7.3.1 Point-to-Point Komunikasi
Dalam
sistem terdistribusi banyak, dapat diandalkan point-to-point komunikasi
esta-blished. dengan memanfaatkan protokol transponder dapat diandalkan,
seperti TCP. kegagalan TCP kelalaian masker, yang terjadi dalam bentuk pesan
yang hilang, dengan menggunakan mendorong adanya-edgements dan
retransinissions. kegagalan tersebut benar-benar tersembunyi dari klien TCP
Namun, kecelakaan kegagalan koneksi sering tidak bertopeng.. Kegagalan
kecelakaan dapat terjadi kapan, Apapun alasan untuk, sebuah koneksi TCP yang
tiba-tiba rusak sehingga tidak ada lagi pesan dapat ditularkan melalui saluran
Dalam kebanyakan kasus, klien diberitahu bahwa saluran telah jatuh dengan
menaikkan pengecualian.. Satu-satunya cara untuk menutupi kegagalan tersebut
adalah membiarkan upaya sistem terdistribusi untuk secara otomatis membuat
koneksi baru.
7.3 Reliable
Client-Server Communication(By Uswatun Hasanah)
·
ReliableClient-ServerKomunikasi:
Toleransi
kesalahandalam sistem terdistribusi juga perlu mempertimbangkankegagalan
komunikasi. Sebuahsaluran
komunikasimungkin menunjukkankecelakaan, kelalaian,
waktudan kegagalansewenang-wenang.
Ketika membangunsalurankomunikasi yang handal,
fokusnya adalah padakecelakaanmaskingdan
kegagalankelalaian.
7.3.1 Point-to-Point
Komunikasi
Dalam
sistem terdistribusi,komunikasipoint-to-point
yang dapat diandalkan didirikan dengan memanfaatkan
protokol transportasi yang dapat diandalkan,seperti
TCP.TCP masker kegagalan
kelalaian,yang terjadi dalam
bentuk pesan yang hilangdengan menggunakan pengakuan danre-transmisi
kegagalan tersebut benar-benar tersembunyi dari klien
TCP.
7.3.2
Client-ServerKomunikasi melaluiRPC
Tujuan dari RPC
adalah untuk menyembunyikan komunikasi dengan membuat prosedur panggilan jarak
jauh terlihat seperti orang lokal.
kesalahan-kesalahan yang biasa terjadi pada RPC komunikasi
·
Klien tidak bisa
menemukan server
·
Permintaan klien hilang
·
Server crash
·
Respon server hilang
·
Crash
klien
o Klien tidak bisa menemukan server
Server mungkin turun atau versi ketidaksesuaian antara klien dan server. Sebuah solusi yang mungkin adalah memiliki kesalahan meningkatkan pengecualian.
Server mungkin turun atau versi ketidaksesuaian antara klien dan server. Sebuah solusi yang mungkin adalah memiliki kesalahan meningkatkan pengecualian.
o Kehilangan Pesan Permintaan
Biarkan OS atau klien memulai timer saat mengirim permintaan. Jika timer berakhir sebelum balasan datang kembali, pesan dikirim lagi.
Biarkan OS atau klien memulai timer saat mengirim permintaan. Jika timer berakhir sebelum balasan datang kembali, pesan dikirim lagi.
o
Gangguan
Server
Urutan normal operasi ditunjukkan pada gambar(a). Permintaan tiba, dilaksanakan, dan balasan dikirim.Sekarang perhatikan gambar (b). Server crash sebelum dapat mengirim balasan.Pada gambar(c) server crash sebelum bahkan dapat dilakukan.
Urutan normal operasi ditunjukkan pada gambar(a). Permintaan tiba, dilaksanakan, dan balasan dikirim.Sekarang perhatikan gambar (b). Server crash sebelum dapat mengirim balasan.Pada gambar(c) server crash sebelum bahkan dapat dilakukan.
Keterangan gambar a
o Kehilangan Permintaan
Pesan Server Crashes:
Sebuah server dalam komunikasi client-server
a)kasus normal
b) Kecelakaan setelah eksekusi
c) Kecelakaan sebelum eksekusi
Sebuah server dalam komunikasi client-server
a)kasus normal
b) Kecelakaan setelah eksekusi
c) Kecelakaan sebelum eksekusi
keterangan gambar B
(b)
sistem harus melaporkan kegagalan kembali ke klien.
Sedangkan dalam
Keterangan gambar
(c),
klien dapat hanya mengirimkan kembali permintaan.
Tapi masalah nya adalah bahwa OS klien tidak dapat
membedakan antara dua kasus. Semua
ia tahu adalah bahwa timer telah berakhir.
7.4
KOMUNIKASi KELOMPOK TERPERCAYA
7.4.1 Dasar
Skema Handal-Multicasting
Meskipun sebagian besar lapisan transportasi menawarkan saluran point-to-point yang dapat diandalkan, mereka jarang menawarkan komunikasi yang handal untuk koleksi proses. Yang terbaik yang bisa mereka tawarkan adalah untuk membiarkan setiap proses mengatur koneksi point-to-point untuk setiap proses lain ingin berkomunikasi dengan. Jelas, organisasi semacam ini sangat tidak efisien karena dapat membuang-buangbandwidth jaringan. Namun demikian, jika jumlah proses yang kecil, mencapai keandalan melalui berbagai saluran point-to-point yang dapat diandalkan adalah solusi sederhana dan sering mudah ,Datang ke titik ini, kita perlu mendefinisikan secara tepat apa multicasting diandalkan. Secara intuitif, itu berarti bahwa pesan yang dikirim ke grup proses harus dikirimkan kepada setiap anggota grup itu. Namun, apa yang terjadi jika selama com-munication proses bergabung dengan kelompok? Haruskah proses yang juga menerima pesan bijak? Demikian juga, kita juga harus menentukan apa yang terjadi jika sebuah proses (pengiriman) crash selama komunikasi Untuk menutupi situasi seperti ini, perbedaan harus dibuat antara com handal communication di hadapan proses rusak, dan komunikasi dapat diandalkan ketika proses diasumsikan untuk beroperasi dengan benar. Dalam kasus pertama, multicasting adalah considered menjadi dapat diandalkan ketika dapat dijamin bahwa semua anggota kelompok nonfaulty
menerima pesan itu. Bagian yang sulit adalah bahwa kesepakatan harus dicapai pada apa yang sebenarnya seperti sebelum pesan dapat disampaikan, selain berbagai kendala memesan kelompok.
Kita kembali
ke hal-hal ini ketika membahas multicast atom di bawah ini.Situasi menjadi
lebih sederhana jika kita asumsikan ada pada kesepakatan yang merupakan anggota
kelompok. Secara khusus, jika kita mengasumsikan bahwa proses tidak gagal, dan
proses tidak bergabung atau meninggalkan grup sementara komunikasi yang
terjadi, multicasting.simply handal berarti bahwa setiap pesan harus
disampaikan kepada setiap anggota kelompok saat ini. Dalam kasus yang paling
sederhana, tidak ada persyaratan bahwa semua kelompok anggota menerima pesan
dalam urutan yang sama, tapi kadang-kadang fitur ini diperlukan.
'ini bentuk
yang lebih lemah dari multicasting handal relatif mudah untuk menerapkan pro ¬
vided lagi jumlah penerima terbatas. Pertimbangkan kasus yang satu pengirim ingin
multicast pesan ke beberapa penerima. Asumsikan bahwa di bawah berbaring sistem komunikasi hanya menawarkan
diandalkan
(a) Message transmission
(b) Reporting feedback
Sebuahsolusi sederhanaditunjukkan padaGambar-. 7-8. Prosespengirimanmemberikan nomorurut untuk setiappesan yangmulticast. Kami berasumsibahwa pesan yangditerima dalam urutanmereka akan dikirim. Dengan cara ini, mudah bagipenerimauntuk mendeteksifile tersebut tidak adapesan. Setiap pesanmulticastdisimpan secara lokaldalam buffersejarah dipengirim. Dengan asumsipenerimadiketahuipengirim, pengirim hanya membuatpesandalam buffersejarahsampai setiappenerimatelah kembalipengakuan. Jikapenerimamendeteksihilangpesan, mungkin kembalipengakuannegatif,memintapengirim untukretransmisi.
Alternatif masing,pengirimdapat secara otomatismemancarkan
kembalipesanketikabelum menerimasemuapengakuandalam kurun waktu tertentu.Ada berbagaidesaintrade-offyang akan dibuat. Misalnya,
untukmengurangijumlah pesan yangdikembalikan ke pengirim, pengakuanmungkin bisapiggybackeddengan pesanlainnya. Juga, mentransmisipesandapat dilakukan dengan
menggunakankomunikasipoint-to-point untuksetiap
prosesmeminta, ataumenggunakan
pesanmulticasttunggal,dikirim kesemua proses. Untuk
keterangan lebih lanjut, lihat, misalnya, Chang danMaxumchuk(1984)
7.4.2 Skalabilitas di
Multicasting Handal.
Masalah utama dengan skema multicast handal yang baru saja dijelaskan adalah bahwa ia tidak dapat mendukung sejumlah besar penerima. Jika ada penerima N, pengirim harus siap untuk menerima setidaknya N ucapan terima kasih. Dengan banyak penerima, pengirim dapat dibanjiri dengan pesan umpan balik tersebut, yang juga disebut sebagai ledakan umpan balik. Selain itu, kami juga mungkin perlu mempertimbangkan bahwa receiver yang tersebar di seluruhwide-area network. Salah satu solusi untuk masalah ini adalah untuk tidak memiliki penerima mengakui penerimaan pesan. Sebaliknya, penerima mengembalikan pesan umpan balik hanya untuk menginformasikan pengirim tersebut tidak ada pesan. Kembali hanya pengakuan negatif seperti dapat ditunjukkan umumnya skala yang lebih baik (lihat, misalnya, Towsley dkk., 1997), tetapi tidak ada jaminan keras dapat diberikan bahwa implosions umpan balik tidak akan pernah terjadi.
Masalah lain dengan kembali hanya pengakuan negatif adalah bahwa pengirim akan, secara teori, dipaksa untuk menjaga pesan dalam buffer sejarah selamanya. Karena pengirim tidak pernah tahu apakah pesan telah dikirimkan ke semua penerima, harus selalu siap untuk penerima meminta retransmission pesan lama. Dalam prakteknya, pengirim akan menghapus pesan darinya penyangga tory setelah beberapa waktu telah berlalu untuk mencegah buffer dari meluap. Namun demikian, menghapus pesan dilakukan pada risiko permintaan untuk pengiriman ulang tidak dihormati.Beberapa usulan untuk multicasting diandalkan scalable ada. Perbandingan antara skema yang berbeda dapat ditemukan dalam (Levine dan Garcia-Luna-Aceves, 1998).
Mengikuti pendapat
Hadzilacos dan Toueg, dan Chandra dan Toueg kita dapat mendefinisikan reliable
multicast. Sebuah reliable multicast memiliki properti seperti: integrity,
validity, agreement.
a.
Implementasi Reliable Multicast Terhadap
B-multicast
Algoritma ini cocok
diterapkan pada asynchronus sistem, tapi tidak cocok diterapkan pada tujuan
praktis. Hal ini dikarenakan stiap pesan mengirim |g| kali untuk tiap proses.
b.
Reliable Multicast terhadap IP Multicast
Realisasi alternatif
R-multicast adalah menggunakan kombinasi IP multicast. Protokol R-multicast ini
berdasar pada IP multicast. Pada protokol proses tidak mengirim pesan ack
secara terpisah, melainkan pada sebuah grup.
c.
Properti Seragam
Properti apapun yang
menahan apakah proses benar atau tidak dinamakan uniform property.
Pemahaman uniform sendiri yaitu: jika sebuah proses, tidak peduli benar
atau tidak, mengirim pesan m, kemudian semua proses yang benar pada group(m)
akan secepatnya mengirim m.
7.6 RECOVERY(By Abdul Muthalib)
Bagian tak
terpisah dari sistem basisdata adalah skema pemulihan (recovery).
Pemulihhan bertanggung-jawab terhadap pendeteksian kegagalan dan mengembalikan
basis data ke keadaan konsisten sebelum terjadinyya kegagalan.
Untuk
pemulihan ini diperlukan suatu atomamsitas. Atomasitas adalah “all or none”.
Yaitu suatu barisan inntruksi hharuus dilaksanakan seluruhnya atau tidak sama
sekali. Transaksi adalah sekumpulan operasi yang melakukan satu fungsi logic
tunggal dalam aplikasi basis data. Transaksi adalah satu unit atomisitas.
Dengan adanyapendefenisian atomisitas inni maka ppenjagaan basisdata dengan
cara memulihkan basisdata atomisitas.
Algooritma
untuk menjamin konsisitensi basis data dan atomisitas transaksi melelwati
kegagalann, yaitu ;
·
Aksi-aksi yang harus dilakukan selama pemrosesan
transaksi yang menjamin kecukupan informasi untuk memungkinkan pemulihan dari
kegagalan.
·
Aksi-aksi setelah kkegagalan untuk menjamin
konsistensi basisdata dan atomisitas transaksi.
A. Tipe
Kegagalan
Terdapat beragam tipe kegagalan antara lain
1. kesalahan
logik
transaksi tidak dapat dilanjutkan secara normal karena
terdapat suatu konndisi internal seperti masukan yang salah, data tidak
ditemukan. Overflow, atau batasan summber daya terlampaui.
2. kesalahan
system.
System memasuki keadaan yang tak diaharapkan
seperti deadlock yang menyebabkan transaksi tidak dilanjutkan
secara normal. Transaksi masih dapat dieksekusi kemabali di waktu mendatang.
3. system crash
terjadinya ketidak berfungsian system yang menyebabkan
hilangnya isi penyimpanan utama. Isi dari penyimpanan permanent masih tetap.
4. kegaglan disk
memori terbagi mennjadi tiga kelompok, yaitu;
-
memori utama (volatile memory)
informaasi yang bebrada dimemori utama tidak dapat
bertahann bila terjadi crash pada system. Pengaksesan ke memori ini adalah
sangat cepat dann memungkinkan pengaksesan secara langsung
-
penyimpanan sekunder (non volatilestorage)
informasi yang berada dipenyimpanan ini biasanya dapat
bertahan saat terjadi crash pada system.
-
penyimpanan stabil (stabil storage)
informasi yang berada dippenyimmpanan ini tida pernah
(berpeluang kecil) hilang. Implementasi yang dilakukan adalah merreplekasi
informasi diibeberapa penyimpanan sekunder dengan suatu cara yang terkendali
bagus. Asumsi adanya pennyimpanan stabil ini sangat ppentin. Implementasi
penyimpanan stabil adalah mereplikasi informasi yang diperlukan dibebrapa media
penyimpanan permanen(biasanya hardisk) dengan beragam mode
kegagalan yang independen dan memperbaharui informasi secara terkendali agar
menjamin bahwa kegagalan yang terjadi selama transfer data tidak merusak
informasi yang diperlukan
B. Teknik
Mengatasi kegagalan Disk
Kegagalan disebabkan penyimpanan permanent adalah
jarang terjadi. Meskipun demikian perlu dipersiapkan untuk mengatasi kejadian
kegagalan ini. Teknik utama untuk mengatasi ini adalah backup atau dump.
Kegagalan pada media disebabkan data di disk hhilang
karena terkorupsi sewaktu sisitem crash atau penulisan acak
atau karena rusaknya head dari disk. Kalau kejadian ini
berlangsung , kita dapat memperoleh data dari penyimpanan stabil (yang
berpeluang kecil gagal karena dilakukan secara mirrored disks, atau
mempunyai banyak kopian dibanyak lokasi jaringan).
Data yang disimpan dipenyimpanan stabil adalah data
itu sendiri dan file log. Kapan arsip yang konnsisten sulit
dilakukan karena berarti harus menghentikan semua transaksi untuk perekaman
kopian arsip. Pendekatan yang lebih baik adalah teknik“fuzzy dump” yaitu
perekaman dilakukan secara asinkron selagi aktivitas transaksi berlangsung
dilakukan secara konkuren sebagai aktivitas background.
Skema dasar untuk mengatasai adalah backup seluruh
isi basisdata ke penyimpan stabil (stabile storage) secara
periodic. Penyimpan stabil adalah penyimpan yang tak pernah kehilangan isinya.
Transfer blok antara memori dan penyimpan disk dapat
menghasilkan beberapa kemungkinan hasil berikut :
1. sukses
seluruhnya
informasi
yang ditransfer tiba dengan selamat ditujuan
2. terjadi
kegagalan persial
kegagalan. terjadi ditengah-tengah transfer dan blok
tujuan memuat informasi yang salah.
3. terjadi
kegagalan total
kegagalan terjadi diawal transfer sehingga blok tujuan
tidak berubah.
Sistem harus dapat mendeteksi terjadinya kegagalan
transfer data dan melakukan prosedur pemulihan untuk mengembalikan blok ke
keadaan konsisten . untuk melakukan hal ini, system harus mengelola dua blok
fisik untuk tiap blok basisdata logik. Operasi penulisan sebagai berikut :
1. tulis
informasi ke blok fisik pertama.
2. saat
penulisan pertama sukses secara lengkap, tulis informasi yang sama ke blok
fisik kedua.
3. penlisan
dinyatakan sukses secara hanya setelah penulisan kedua suksses secara lengkap.
7.6.1 INTRODUCTION
Penyebab
Kerusakan
Data yang
disimpan di basis data harus dijaga dan dilindungi dari :
1. Pengaksesan
dari orang yang tak mempunyai wewenang.
2. Penghancuran
yang disengaja.
3. Terjadinya
ikonsistensi.
Kerusakan
basisdata dapat disebabkan oleh kesengajaan atau bencana (yang tak disengaja)
Kerusakan
yang tidak disengaja antara lain disebabkan oleh :
1. Sistem crash saat
terjadi pengolahan transaksi.
2. Anomali-anomali
disebabkan pengaksesan konkuren terhadap basisdata.
3. Anomali-anomali
disebabkan penyebaran data pada beberapa komputer.
4. kesalahan
logik yang melanggar asumsi mengenai batasan-batasan konsisten basisdata.
Bentuk-bentuk
pengaksesan jahat yang disengaja antara lain :
1. Pembacaan
data oleh orang yang tidak diotorisasi (pencurian informasi).
2. Moodifikasi
data oleh orang yang tidak diotorisasi.
3. penghancuran
data oleh orang yang tidak diotorisasi.
•
Perbaikandarikesalahan
–
Ada fasilitasperbaikanatau
proses ulangsaatsebuah server mengalamikerusakan
•
Kerangkapan
–
Fasilitasuntukmentoleransikerusakandapatmengakibatkankerangkapankomponen
:
•
Mungkinkarenamenggunakanduasaluran
yang berbedadiinternet
•
Dalam DNS,
setiaptabelnamaselaluada di dua server berbeda
•
Sebuah database
mungkinduplikasi di server berbedauntukmeyakinkan data yang
sebenarnyasetelahterjadikerusakan di suatu server
•
Ketersediaan
–
Ketikasebuahkomponenrusakdalam
DS, hanyapekerjaan yang sedangdiproseskomponen yang mungkinrusak
–
Seorang user
mungkinbergantikomputersetelahmengalamikerusakan
–
Sebuah proses
dapatdijalankandarikomputerberbeda
Prosedur
pemulihan
Selama
pemulihan , masing-masing pasangan blok fisik diperiksa. Jika keduanya sama dan
tidak terdeteksi kesalahan , maka tak ada aksi yang dilakukan. Jika salah satu
blok terdeteksi kesalahan, maka gantikan isisnya dengan blok yang tak
terdeteksi kesalahan. Jika kedua blok tak terdeteksi kesalahan tapi berada maka
gantikan blok pertama dengan nilai blok kedua.
7.6.2 CHECKPOINTING
Pemulihan dengan checkpoint
Saat terjadi kegagalan system, maka diperlukan
mengkonsultasi log untuk menetukan transaksi-transaksi yang
perlu dijalankan kembali dan transaksi-trsansaksi yang perlu dijalankan kembali
dan transaksi-transaksi yang tak perlu dijalankan ulang. Seluruhlog perlu
ditelusuri untuk menetukan hal ini. Terdapat dua kesulitan dengan pendekatan
ini :
·
Proses pencairan memerlukan banyak waktu.
·
Kebanyakan transaksi yang perlu dilakukan telah
dituliskan ke basisdata. Meskipun menjalankan ulang transaksi-transaksi itu
tidak merusak, tapi pemulihan menjadi lebih lama.
Meruduksi overhead ini
diperlukan checkpoint.
System mengelolah log menggunakan
salah satu teknik-teknik diatas.
Sistem
secara periodik membuat checkpoint sebagai berikut :
·
Tulis semua rekaman log yang saat itu
berada dimemori utama kepenyimpan stabil.
·
Tulis semua blok buffer yang telah
dimodifikasi ke disk.
·
Tulis <checkpoint> record log ke
penyimpan stabil.
7.6.3 MESSAGE LOGGING
Pemulihan
berbasis log
Bentuk
yang paling sering digunakan untuk merekan memodifikasi yang dilakukan terhadap
basis data adalah log. Rekaman log mendeskripsikan satu penulisan ke basis data
dan memiliki field-field berikut :
1. Nama
transaksi
Nama
transaksi untuk yang melakukan operasi penulisan.
2. Nama
item data
Nama
item data unik yang di tulis
3. Nilai
nama
Nilai
item data sebelum penulisan
4. Nilai
baru
Nilai
item data yang seharusnya terjadi setelah penulisan.
Prosedur
pemulihan
Setelah
kegagalan maka basis data dikembalikan ke keadaan terakhir yang di backup.
Kemudian barisan transaksi setelah backup terakhir yang tercatat di log di
eksekusi ulang.
DAFTAR
PUSTAKA
eBook-Tanenbaum-Distsributed
System
Betfair Casino Review - Bonuses & Promotions - Online
BalasHapusBetfair 슈어벳먹튀 Casino bonuses. 토토배당률보기 Betfair Casino gives you 호반 그래프 a 비트코인갤러리 free bonus to sign up and play with a huge range of 화이트 벳 slots and table games, which are