EVENT ORDERING (Pengurutan Event)
Pada sistem tersentralisasi :
l Selalu mungkin menentukan
urutan kejadian, sebab hanya terdapat satu memory dan clock
l Sejumlah aplikasi sangat
menekankan urutan, misal : alokasi resource à resource dapat dipakai
setelah resource tersebutdipesan dan dijamin bebas.
Pada sistem terdistribusi :
l Memori & clock tidak tunggal
l Tidak mungkin menyatakan
urutan dua kejadian
l Hanya dapatditentukan
partial ordering (urutan bagian) à relasi Happened-Before
Relasi Happened Before
Hukum sebab-akibat : suatu
pesan dapat diterima setelah pesan tersebutdikirim
Simbol relasi happened-before : à
- Jika kejadian A & B berada dlm satu proses dan A dieksekusi sebelum B, maka ditulis AàB
- Jika A adalah kejadian pengiriman pesan (sending) oleh sebuah proses dan B adalah sebuah kejadian penerima pesan (receiving) oleh proses lain, maka ditulis A à B
- Jika A à B dan B à C, maka A à C
Karena
suatu event tidak dapat terjadi sebelum dirinya sendiri terjadi, maka relasi
happened before tidak bersifat refleksi.
Jika
2 event A & B tidak memenuhi Relasi à R (A tidak terjadi seblm B
& B tidak terjadi sebelum A ), maka kedua event dieksekusi bersamaan
(concurent) kedua event tidak dapat saling mempengaruhi. A à B : ada kemungkinan A mempengaruhi B.
Sebagai contoh : sejumlah event
direlasikan dgn happened-before.
p1 à q2
r0 à q4
q3
à
r1
p1
à
q4 ( tentu : p1 à q2 dan q2 à q4)
dan sejumlah event konkuren
dari sistem adalah :
q0
dan p2
r0 dan q3
r0 dan p3
q3
dan p3
Tidak dapat ditentukan dari
2 event yang konkuren (q0 dan p2) mana yang terjadi dahulu. Namun, karena satu
sama lain tidak saling mempengaruhi, maka tidaklah penting untuk mengetahui
mana yang dahulu terjadi.
Implementasi
Untuk menentukan event A
terjadi sebelum event B diperlukan sebuah clock umum atau suatu set pensinkron clock yang perfect. Pada
sentralisasi ini bisa dilakukan, namun pada terdistribusi kedua hal tersebut
tidak mungkin dilakukan. Sehingga diperlukan
definisi khusus dari relasi Happened-before tanpa menggunakan clock physics.
Maka dikenalkan konsep
Timestamp, yaitu setiap event sistem
diasosiasikan dgn timestamp, kemudian didefinisikan global ordering requirement
(GOR) untuk setiap pasangan event A & B, jika A à B, maka timestamp A <
timestamp B.
- Penerapan GOR dlm lingkungan terdistribusi
Mula-mula didefinisikan dlm
tiap proses Pi suatu logical clock (LCi). LCi dapat diimplementasikan sebagai counter sederhana yang di-increment-kan antara 2 event
tereksekusi berurutan dlm suatu
proses. Dimana LCi tersebut dapat menunjukan
nomer event secara unik, sehingga jika event terjadi sebelumevent B dalam
proses Pi, maka LCi (A) < LCi (B).
- Clock Lojik
– Tiap proses Pi memiliki clock lojik LCi
– Pada proses Pi , jika A terjadi sebelum B maka LCi (A) < LCi (B)
– Antar proses, jika proses Pi menerima pesan (event B) dgn timestamp t sedangkan LCi (B) < t, maka Pi harus memajukan clocknya sehingga LCi (B) = t + 1
MUTUAL EXCLUSION
- CENTRALIZED APPROACH
Dalam CA untuk menentukan
mutual exclusion, salah satu proses akan dipilih untuk mengkoordinasikan masuk
ke critical section.
Algoritma ini pasti
menjamin mutual exclusion. Policy (kebijaksanaan secheduling oleh koordinator
bersifat fair ), tidak terjadi starvation dan hanya memerlukan 3 pesan untuk
setiap memasuki c.s : request, reply, release
- FULLY DISTRIBUTED APPROACH
Pendistribusian Decision –
Making ke seluruhan sistem sukar & kompleks. Dikenalkan algoritma berbasis
“Event Ordering “, sebagai berikut:
l Ketika suatu proses Pi ingin masuk ke critical section, maka ia akan
meng-create timestamp baru (Ts)
dan mengirim pesan request (Pi,Ts) ke
semua proses lain dlm sistem (termasuk
dirinya sendiri)
l Pada
penerimaan pesan request, sebuah proses dapat:
-
segera
menjawab kembali ke Pi
-
menunda
jawaban (karena masih berada di dlm c.s)
l Proses yang telah menerima
pesan jawaban dari semua proses lain dlm sistem dapatmemasuki c.s mengantrikan
request yang datang dan menahan mereka.
l Setelah keluar dari c.s,
proses mengirim pesan jawaban kepada semua proses yang requestnya ditahan
l
Keputusan
suatu proses Pi menjawab langsung atau menahan dahulu request (Pj,Ts)
didasarkan pada 3 faktor :
Jika proses Pi berada dalam critical section, maka ia akan menahan jawaban ke PjJika proses Pi tidak dalam c.s, maka ia akan segera menjawab ke PjJika proses Pi ingin masuk ke c.s, tetapi blm dapatmasuk, maka ia akan membandingkan timestamp request miliknya dgn timestamp request yang datang dari Pj.
Jika proses Pi berada dalam critical section, maka ia akan menahan jawaban ke PjJika proses Pi tidak dalam c.s, maka ia akan segera menjawab ke PjJika proses Pi ingin masuk ke c.s, tetapi blm dapatmasuk, maka ia akan membandingkan timestamp request miliknya dgn timestamp request yang datang dari Pj.
Algoritma
ini dapat berhasil dengan syarat
l
Mutual
exclusion dapat ditentukan
l
Dijamin
bebas dead-lock
l
Dijamin
bebas starvation (masuk c.s dijadwalkan berdasarkan urutan timestamp, dimana
urutan timestamp menjamin FIFO)
l
Jumlah
pesan per critical section entry = 2x (n-1).
Suatu jumlah minimum yang
diperoleh per c.s entry, bila proses-proses bekerja independen dan konkuren
Skenario ini memerlukan
partisipasi dari semua proses dlm sistem. Pendekatan ini memp 2 konsekuensi :
1. Proses perlu tahu identitas
semua proses lain dlm sistem. Jika ada proses baru bergabung dgn group proses yang
berpartisipasi dlm alg mutual excl, maka perlu langkah :
a. Proses
harus menerima semua nama proses lain dlm group
b. Nama
proses baru harus di distribusikan ke semua proses lain dlm group
2.
Jika
salah satu proses fail, skema keseluruhan collaps
3. Dapat
diatasi dgn memonitor scr kontinyu status semua proses dlm sistem jika sebuah
proses fail, maka semua proses yang lain
diberitahu agar tidak mengirim pesan ke proses yang fail tersebut
4. Jika
proses direcover, ia hrs menginisialisasikan procedure
yang mengizinkan untuk bergabung dgn group
tersebut.
- TOKEN PARSING APPROACH
Token merupakan pesan
bertipe khusus yang beredar pada seluruh sistem. Dengan menggerakkan token
diantara proses-proses dalam suatu sistem dapat menentukan mutual exclusion. Hanya ada satu token dalam sistem sehingga hanya
ada satu proses yang dapatmasuk ke c.s pada suatu saat.
Proses-proses
diorganisasikan secar logika dalam bentuk Ring (fisiknya jaringan tidak perlu
Ring). Selama proses-proses saling
berhubungan,sangat mungkin di implementasikan suatu Logical-Ring
Dua jenis kesalahan yang
mungkin terjadi :
l
Token hilang :
memanggil “ election” untuk membangkitkan Token baru.
l
Proses fail : struktur Ring baru harus
dibentuk.
ATOMISCITY (ATOMISITAS)
Tiap situs memiliki koordinator transaksi yg berfungsi
menjamin atomisitas eksekusi transaksi, dengan cara:
-
memulai
eksekusi transaksi
-
memecah
menjadi beberapa sub-transaksi dan mendistribusikannya pada situs-situs yg
cocok utk dieksekusi
-
mengkoordinasikan
terminasi transaksi (commit,
atau abort)
Asumsikan bahwa tiap situs menyimpan log untuk tujuan recovery
- Protokol Two-Phase Commit (2PC)
Semua situs yg mengeksekusi
transaksi T harus memiliki hasil akhir yg sama (commit atau abort). JikaT
adalah transaksi yg diinisiasi pada situs Si dengan koordinator Ci , maka
setelah transaksi selesai Ci
memulai protokol 2PC:
-
Fase1:
Ci mengirimkan pesan ke semua situs yg mengeksekusi T untuk mengetahui
transaksi commit atau abort
- Fase2:
Ci menentukan hasil akhir transaksi setelah menerima respon dari semua situs;
transaksi commit jika semua situs memberi respon commit
- Penanganan Kegagalan pada 2PC
Kegagalan dapat terjadi pada
salah satu situs yg berpartisipasi, sehingga masalah yang muncul adalah situs yang
selesai melakukan recovery harus memeriksa log untuk menentukan status
transaksi
– Jika commit, situs melakukan redo(T)
– Jika abort, situs melakukan undo(T)
Kegagalan pada Situs yang Berpartisipasi
Jika log berisi <commit T>, maka situs akan melakukan redo(T)
Jika log berisi <abort T>, maka situs akan melakukan undo(T)
Jika log berisi <ready T> maka akan consult Ci
Kegagalan pada coordinator
Maka masalahnya adalah situs yg
berpartisipasi harus menentukan nasib T
Jika
salah satu situs berisi record <commitT> atau <abortT>, maka
coordinator akan mengikuti hasilnya.
Jika
ada situs yg belum berisi <ready T> maka koordinator tdk dpt memutuskan.
Kegagalan pada jaringan
– Masalah: pesan yg dikirimkan tidak
sampai
– Jika beberapa link terputus dapat
dilakukan partisi jaringan
CONCURRENCY
CONTROL
Manajer transaksi berfungsi
:
-
mengelola
eksekusi transaksi yg mengakses data
-
Menyimpan
log untuk tujuan recovery
- Berpartisipasi
dalam skema kontrol-konkurensi untuk mengkoordinasi eksekusi transaksi
- Protokol Locking
Skema
nonreplikasi
-
Tiap
situs memiliki satu manajer lock lokal untuk mengelola permintaan lock/unlock
data yg disimpan pada situs tsb
- Keuntungan:
sederhana
- Kerugian:
penanganan deadlock lebih rumit karena tdk ditangani oleh satu situs
Pendekatan
Koordinator Tunggal
-
Ada
manajer lock tunggal yg berada pada salah satu situs utk menangani permintaan
lock/unlock data
-
Read dpt dilakukan pada situs mana saja yg menyimpan data
-
Write dilakukan pada semua replikasi
- Protokol Mayoritas
Tiap situs memiliki lock
manajer yg mengelola data dan duplikat data yg disimpan pd situs tsb. – Untuk
melakukan lock thd data Q yg direplikasi pd beberapa situs, transaksi mengirim
request lock ke > ½ situs yg menyimpan Q. Lock manajer menentukan lock yg
dapat diberikan. Transaksi terhadap data tdk dimulai sebelum kunci dari mayoritas
replika diperoleh
Keuntungan: penanganan
terdesentralisasi
Kerugian: penanganan deadlock perlu modifikasi,
rumit- Protokol Bias
Protokol bias mirip dengan protokol mayoritas. Perbedaannya adalah bahwa
permintaan shared lock diberikan perhatian lebih daripada permintaan exclusive lock.
Keuntungan: lebih baik daripada protocol bias
Kerugian: penanganan deadlock lebih rumitDEADLOCK HANDLING
Deadlock Prevention and Handling- Pencegahan Deadlock: Menjamin bahwa tidak pernah terjadi kebuntuan
- Periksa
transaksi ketika dimulai, dan mulai hanya jika semua sumber daya yang
dibutuhkan tersedia.
- Semua sumber daya yang mungkin dibutuhkan oleh transaksi harus predeclared
- Menghindari Deadlock: Mendeteksi kebuntuan potensial di muka dan mengambil tindakan untuk memastikan bahwa kebuntuan tidak akan terjadi. Transaksi yang diizinkan untuk melanjutkan kecuali sumber daya yang diminta tidak tersedia
- Dua pendekatan yang berbeda:
- Prioritaskan
transaksi: Mengatasi kebuntuan dengan membatalkan transaksi dengan lebih
tinggi atau prioritas yang lebih rendah. Skema berikut menganggap bahwa
permintaan Ti memegang kunci dengan Tj:
- Wait Die Scheme: jika ts (Ti)
<TS (Tj) maka Ti menunggu,
jika tidak Ti yang lain die
- Wound-Wait Secheme: jika ts (Ti) <TS (Tj) maka Tj wounds (dibatalkan), jika tidak maka Ti menunggu
Transaksi
yang diizinkan untuk menunggu bebas, dan karenanya bisa mengakibatkan
kebuntuan. Periksa Global-WFG apakah ada siklus. Jika kebuntuan ditemukan,
hal ini diselesaikan dengan membatalkan salah satu transaksi yang terlibat
(juga disebut korban).
ELECTION ALGORITHM (ALGORITMA PEMILIHAN)
Banyak algoritma tersebar membutuhkan sebuah proses yang berfungsi sebagai koordinator, inisiator, sekuenser, atau pelaksana fungsi khusus lain. Beberapa contoh seperti koorinator pada algoritma mutual exclusion terpusat.
Bila koordinator mengalami kegagalan karena hostnya down, sistem harus dapat melanjutkan eksekusi hanya dengan memulai lagi sebuah copy proses koordinator baru di host lain. Algoritma yang menentukan dimana hal tersebut harus dimulai dinamakan algoritma pemilihan.
- Bully Algorithm
- Ring Algorithm
0 comments:
Post a Comment