SISTEM TERDISTRIBUSI TIME AND COORDINATION
Apa itu Time and Coordination ? Time And Coordination adalah mengkordinasikan waktu dalam transfer data, agar tidak terjadi ketimpangan pada proses transfer data. berguna untuk mengukur penundaan antara komponen terdistribusi menyinkronkan aliran data misalnya: suara dan video sebagai penanda keakuratan waktu untuk mengidentifikasi atau mengotentikasi transaksi bisnis dan serializability dalam database terdistribusi dan keamanan protocol
Time Time adalah sistem komputasi interaktif, dimana sistem komputer menyediakan komunikasi on-line antara user dengan sistem. User memberikan instruksi pada sistem operasi atau program secara langsung dan menerima respon segera. Coordination Coordination adalah sekumpulan algoritma yang tujuannya bermacam-macam namun men-share tujuannya, sebagai dasar dalam sistem terdistribusi : berupa sekumpulan proses untuk mengkoordinasikan tindakan atau menyetujui satu atau beberapa nilai.
Contoh Kasus Coordination Contohnya pada kasus mesin seperti pesawat ruang angkasa. Hal itu perlu dilakukan, komputer mengendalikannya agar setuju pada kondisi tertentu seperti apakah misi dari pesawat luar angkasa dilanjutkan atau telah selesai. Komputer tersebut harus mengkoordinasikan tindakannya secara tepat untuk berbagi hal yang penting dalam Coordination and Agreement adalah apakah system terdistribusi asinkron atau sinkron. Algoritma–algoritma yang digunakan juga harus mempertimbangkan kegagalan yang terjadi, dan bagaimana caranya untuk berhubungan satu sama lain ketika sedang mendesaian algoritma. Selanjutnya di makalah ini juga akan dijelaskan mengenai masalah dalam mendistribusikan mutual exclusion, election, multicast communication, dan mengenai masalah dalam persetujuan (agreement).
Logical Clock & Synchronisation Logical clock adalah software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung hubungan tertentu ke suatu physical clock. Hampir seluruh komputer memiliki sebuah circuit untuk menunjukkan waktu. Pada kenyataannya circuit tersebut bukanlah penunjuk waktu (jam) yang sebenarnya. Kata yang tepat untuk mendeskripsikan circuit tersebut adalah timer. Timer pada suatu komputer pada umumnya merupakan suatu crystal quartz yang termekanisasi. Synchronization Adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Sinkronisasi adalah suatu proses pengendalian akses dari sumber daya terbagi pakai (shared resource) oleh banyak thread sedemikian sehingga hanya satu thread yang dapat mengakses sumber daya tertentu pada satu waktu.
Sinkronisasi Clock Sinkronisasi Clock adalah suatu masalah pada computer science mengenai perbedaan waktu pada beberapa komputer atau sistem. Semua komputer memiliki rangkaian pencatat waktu (clock). Selalu ada sedikit perbedaan yang terjadi dan mengakibatkan perbedaan waktu pula yang disebut clock skew. Untuk mengatasi perbedaan waktu tersebut ada beberapa algoritma yang telah dikembangkan untuk digunakan dalam sinkronisasi clock, yaitu : a) Algoritma Lamport b) Algoritma Christian c) Algoritma Berkeley Algoritma untuk sinkronisasi dalam sistem terdistribusi memiliki beberapa sifat: 1. Informasi yang relevan tersebar di beberapa computer 2. Keputusan pembuatan proses hanya berdasarkan informasi local. 3. Peristiwa kegagalan dengan penyebab tunggal di dalam sistem harus dihindarkan 4. Tidak tersedianya clock atau sumber waktu global yang akurat.
Sinkronisasi Clock Sikronisasi merupakan bagian penting untuk kerjasama dalam : 1. Pemakaian sumberdaya berbagi (Sharing resources) 2. Pengurutan kejadian 3. Kesepakatan clock tersebar Gambar dibawah menggambarkan bahwa bila waktu pada output o adalah 2144, Kemudian source codenya dimodifikasi di komputer lain yang clocknya lebih lambat, sehingga waktu source code adalah 2143. Karena source code memiliki waktu yang lebih lama daripada file objeknya, maka make tidak akan melakukan rekompilasi.
Algoritma Lamport Menurut Lamport, sinkronisasi clock tidak harus dilakukan dengan nilai mutlak clocknya, karena yang diperlukan dalam sikronisasi proses-proses adalah urutan proses tersebut. Jadi yang dipentingkan adalah konsistensi internal clock, bukan apakah clock tersebut harus sama persis dengan waktu real. Clock jenis ini biasanya disebut clock logika. Syarat : Perlu pengurutan kejadian untuk sembarang pasangan kejadian, tidak boleh ambigu, harus diketahui keterdahuluan kejadian. Solusi : Penerapan algortima Lamport untuk pengurutan kejadian Penggunaan stempel waktu untuk proses
Algoritma Christian Suatu algoritma yang menganggap suatu mesin sebagai time server. Semua mesin akan menanyakan waktu yang tertera pada time server tersebut. Mesin tersebut (time server) kemudian merespon dengan waktu yang sesingkat- singkatnya dengan mengirimkan pesan berisi waktu pada saat itu (C UTC). Pada saat pengirim pesan menerima jawaban (reply) maka mesin tersebut dapat menset waktu menjadi C UTC. Kelemahan : waktu tidak boleh berjalan mundur, dibutuhkan waktu untuk mengirimkan balasan dari time server.
Algoritma Berkeley Algoritma Berkeley digunakan untuk mensinkronkan clock relatif terhadap clock lainnya, dan bukan terhadap master clock tertentu. Pada algoritma Berkeley, time server bersifat aktif. Time server akan melakukan polling pada setiap mesin secara berkala dan menanyakan waktu pada tiap mesin. Berdasarkan jawaban yang diberikan, time server mengkomputasi dan memberikan perintah untuk mempercepat atau memperlambat waktu.
Proses Koordinasi pada Sistem Terdistribusi Sistem tedistribusi memungkinkan kita untuk saling mengkoordinasikan dan saling bekerja sama dalam melakukan aktifitas secara lebih efisien dan lebih efektif. Tujuan utama dari system terdistribusi dapat direpresentasikan dengan : resource sharing , openness, concurrency, scalability, fault- tolerance dan transparency. Proses koordinasi nya : • Dijalankan secara bersamaan (execute concurrently) • interaksi untuk bekerjasama dalam mencapai tujuan yang sama • mengkoordinasikan aktifitas dan pertukaran informasi yaitu pesan yang dikirim melalui jaringan komunikasi
Aktivitas Koordinasi Terdistribusi : Pengurutan Event Dalam manajemen koordinasi proses pada sistem tersentralisasi memungkinkan untuk menentukan urutan kejadian, sebab hanya terdapat satu memori dan clock. Sejumlah aplikasi sangat menekankan urutan, misal : alokasi resource, resource dapat dipakai setelah resource tersebut dipesan dan dijamin bebas. Manajemen koordinasi antar proses pada sistem terdistribusi untuk menentukan urutan kejadian tidak semudah seperti sistem tersentralisasi, karena pada sistem terdistribusi parameter yang diperhatikan lebih komplek, yaitu : a. memori & clock tidak tunggal tidak mungkin menyatakan urutan dua kejadian c. hanya dapat ditentukan partial ordering (urutan bagian
Relasi Happened-Before Relasi Happened-Before adalah suatu relasi yang memperhatikan urutan kejadian, karena kejadian yang satu dengan yang lain saling terkait. Pada Relasi Happened-Before berlaku : a) Proses-proses sekuensial, proses sekuensial adalah semua kejadian dijalankan oleh satu pemroses (total ordering). b) Hukum sebab-akibat, hukum sebab-akibat adalah suatu kejadian dimana pesan dapat diterima setelah pesan tersebut dikirimkan. c) Simbol relasi happened-before : →
Relasi Happened-Before Sejumlah kejadian dapat dikelompokkan dalam relasi Happened-Before sebagai berikut : 1. Jika kejadian A & B berada dalam satu proses dan A dieksekusi sebelum B, maka ditulis A → B 2. 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 (sending dilakukan sebelum receiving). 3. 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 (dipasangkan ke dirinya sendiri). 4. Jika 2 event A & B tidak memenuhi Relasi → R (A tidak terjadi sebelum B & B tidak terjadi sebelum A), maka kedua event tersebut dieksekusi bersamaan (concurent). Dalam artian kondisi kedua event tersebut tidak dapat saling mempengaruhi. (A→B : ada kemungkinan A mempengaruhi B)
Mutual Exclusion Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan. Ada model pendekatan dalam mutual exclusion yaitu : a) Pendekatan Tersentralisasi (Centralized) • Salah satu proses dipilih sebagai koordinator utk mengatur entri ke CS • Menggunakan pesan request-reply-release untuk masuk ke CS • (+): menjamin mutex, dpt menjamin fairness (no starvation) • (--): jika koordinator gagal → perlu dipilih kembali
Mutual Exclusion b)Pendekatan Terdistribusi Penuh (Fully Distributed) • Untuk masuk ke CS, proses mengirimkan pesan request (Pi, TS) ke semua proses • Pengiriman reply oleh Pi ke Pk : • Jika Pi sedang berada di CS, reply ke Pk ditunda • Jika Pi tidak akan masuk ke CS, reply langsung dikirim ke Pk • Jika Pi akan masuk ke CS dan TS(Pi) < TS(Pk) maka reply ke Pk ditunda • (+): menjamin mutex, bebas deadlock dan starvation • (--): jumlah pesan minimum 2(n-1), proses harus tahu identitas semua proses lain, tidak berfungsi jika ada proses yg gagal, mengganggu proses lain yg tidak akan masuk ke CS c)Pendekatan Token Passing • Menggunakan satu token yg beredar diantara proses • Hanya proses yg memiliki token saat itu yg dapat masuk ke CS • Syarat: adanya lingkaran lojik yg menghubungkan semua proses • (+): menjamin mutex, bebas starvation • (--): jika token gagal → perlu digenerate kembali, jika proses gagal → perlu dibentuk ring lojik baru
Protokol Two-Phase Commit (2PC) 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 Protokol Two-Phase Commit (2PC) Semua situs yg mengeksekusi transaksi T harus memiliki hasil akhir yg sama (commit atau abort) Jika T 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.
Protokol Two-Phase Commit (2PC) Penanganan Kegagalan pada 2PC Kegagalan pada salah satu situs yg berpartisipasi •Masalah: situs yg selesai melakukan recovery harus memeriksa log utk menentukan status transaksi •Jika commit, situs melakukan redo(T) •Jika abort, situs melakukan undo(T) Kegagalan pada koordinator •Masalah: situs yg berpartisipasi harus menentukan nasib T •Jika salah satu situs berisi record maka coordinator akan mengikuti hasilnya •Jika ada situs yg belum berisi 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 (+): sederhana (--): 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
Concurrency Control Protokol Mayoritas Tiap situs memiliki lock manajer yg mengelola data dan duplikat data yg disimpan pd situs tsb •Lock manajer menentukan lock yg dapat diberikan •Transaksi thd data tdk dimulai sebelum kunci dari mayoritas replika diperoleh (+): penanganan terdesentralisasi (--): penanganan deadlock perlu modifikasi, rumit
Penanganan Deadlock a)Deadlock Prevention •Pencegahan: Faktor-faktor penyebab deadlock yang harus dicegah untukterjadi • 4faktor 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 b)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) • Deteksi:melihat apakah penjadwalan pemakaian resource yang tersisa masih memungkinkan berada dalam safe state (variasi “safe state”). • Skema recovery untuk mengembalikan ke “safe state”
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 Algoritma Ring Tujuan dari algoritma ini adalah untuk memilih sebuah proses tunggal yang disebut koordinator, yang merupakan proses dengan identifier terbesar.
Perbedaan Model Sinkronisasi dan Asinkronisasi •sinkron yaitu: sebelum seluruh proses transaksi update dinyatakan selesai, data yang telah dimodifikasi disinkronkan ke setiap duplikatnya; proses ini harus menunggu hingga data di tempat penyimpanan duplikat selesai ditulis sebelum dilakukan perubahan lainnya sehingga menjadi lebih kompleks •asinkron yaitu: copy data diperbaharui secara periodik berdasarkan data utama yang diperbaharui; proses penulisan data selesai tanpa perlu menunggu penulisan data di tempat penyimpanan duplikat selesai; proses ini memang meningkatkan kinerja sistem namun risikonya, inkonsistensi data bisa terjadi.