3. 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)
Tiap situs menyimpan log untuk tujuan recovery
4. 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
5. Penanganan Deadlock
♦ Deadlock Prevention
· Pencegahan: Faktor-faktor penyebab deadlock yang harus dicegah untuk terjadi
· 4 faktor yang harus dipenuhi untuk terjadi deadlock:
· Mutual Exclusion: pemakaian resources.
· Hold and Wait: cara menggunakan resources.
· No preemption resource: otoritas/hak.
· Circular wait: kondisi saling menunggu.
· Jika salah satu bisa dicegah maka deadlock pasti tidak terjadi
♦ Deadlock Detection
· Mencegah dan menghidari dari deadlock sulit dilakukan:
· Kurang efisien dan utilitas sistim
· Sulit diterapkan: tidak praktis, boros resources
· Mengizinkan sistim untuk masuk ke “state deadlock”
· Gunakan algoritma deteksi (jika terjadi deadlock)
· Skema recovery untuk mengembalikan ke “safe state”
6. Algoritma Pemilihan
· Algoritma Bully
Adalah (Gracia-Moliana 1982) algoritma yang mengijinkan proses mengalami crash
pada saat terjadi pemilihan (election), meskipun pengiriman pesan antar proses
adalah reliable.
Ada tiga tipe pada algoritma ini, yaitu:
1. election message : digunakan untuk pemberitahuan akan adanya pemilihan
2. answer message : merupakan jawaban dari election message
3. coordinator message : digunakan untuk memberitahukan identitas dari proses
pemilihan
Sebuah proses dimulai dengan pemilihan ketika telah diperintahkan, melewati
timeout, saat coordinator gagal. Ketika sebuah proses menerima pesan coordinator proses
tersebut akan menset variabelnya menjadi elected. Jika sebuah proses menerima proses
election proses tersebut akan mengirim jawaban dan akan memulai proses terpilih
tersebut, kecuali telah mulai sebelumnya.
· Algoritma Ring
Tujuan dari algoritma ini adalah untuk memilih sebuah proses tunggal yang
disebut koordinator, yang merupakan proses dengan identifier terbesar. Awalnya, setiap
proses ditandai sebagai non-peserta dalam pemilihan. Setiap proses bisa mulai
pemilihan. Hal hasil dengan menandai dirinya sebagai salah satu peserta,
menempatkan para identifier dalam pemilihan pesan dan mengirimkannya kepada
tetangga searah jarum jam. Ketika sebuah proses menerima pesan pemilihan, itu
membandingkan pengenal dalam pesan dengan sendiri. Jika identifier yang tiba lebih
besar, maka meneruskan pesan 10 tetangganya. Jika identifier yang tiba lebih kecil dan
penerima bukan merupakan peserta maka pengganti pengenal sendiri dalam pesan dan
ke depan itu, tetapi tidak meneruskan pesan jika sudah menjadi peserta. Pada pemilihan
penerusan pesan dalam beberapa kasus, proses menandai dirinya sebagai peserta.