1. Penggunaan Clock Sinkronisasi At-Most-Once Message Delivery 2. Konsistensi Cache Berbasis Clock

dokumen-dokumen yang mirip
SINKRONISASI. Sistem terdistribusi week 5

Tujuan. 1. Mahasiswa memahami apa itu sinkronisasi dan pentingnya sinkronisasi pada sistem terdistribusi.

Kebijakan Privasi. Cakupan. Jenis Data dan Metode Pengumpulan

BAB 2 TINJAUAN PUSTAKA

BAB II DASAR TEORI. Teknologi TCP/IP adalah hasil penelitian dan pengembangan protocol

TUMPUKAN PROTOKOL INTERNET DAN JARINGAN WORKBENCH

TIME & COORDINATION PENGANTAR DATA TERDISTRIBUSI. Materi:

Chapter 10 PENGENDALIAN INTEGRITAS PEMROSESAN DAN KETERSEDIAAN

Kebijakan Privasi (Privacy Policy)

BAB II JARINGAN INTERKONEKSI BANYAK TINGKAT. Komponen utama dari sistem switching atau sentral adalah seperangkat sirkuit

BAB II TINJAUAN UMUM PERUSAHAAN


Koordinasi Antar Proses

6/26/2011. Database Terdistribusi. Database Terdesentralisasi

Protokol Kriptografi Secure P2P

NETWORK MANAGEMENT TASK 2

IGRP OPERASI IGRP. Tujuan dari IGRP yaitu:

Gambar 1. Hop multi komunikasi antara sumber dan tujuan

STANDAR OPERASIONAL PROSEDUR KEAMANAN JARINGAN

TCP CONGESTION Rico Putra, NIM : 10/307317/PTK/06971 Firma Sahrul B, NIM : 10/309394/PTK/07099 Magister Teknologi Informasi FT UGM, Yogyakarta

Lampiran untuk Layanan Peralatan

Ketentuan Garansi dan Pengembalian Produk Cacat atau tidak sesuai pesanan.

KOMUNIKASI DATA PACKET SWITCHING

BAB IV PEMODELAN MODIFIED COOPERATIVE WEB CACHE

Replikasi adalah suatu teknik untuk melakukan copy / pendistribusian data dan objek-objek dalam melaksanakan sinkronisasi antara objek sehingga

ROUTING PADA TCP/IP. Mata kuliah Jaringan Komputer Jurusan Teknik Informatika - UNIKOM

Gambar 1.1. User Interface ATM

Minggu 7 Layer Session

BAB II LANDASAN TEORI. teori-teori tersebut memiliki pengertian yang sama diantaranya adalah :

Strategi perdagangan melalui jaringan elektronik

BAB II TEORI DASAR. Resource Reservation Protocol (RSVP) merupakan protokol pada layer

Dosen Pengampu : Muhammad Riza Hilmi, ST.

SIAP Mencoba Yammer? MENGAPA YAMMER? ANDA DAPAT MENGGUNAKAN YAMMER UNTUK BERGABUNG DENGAN JARINGAN SEKARANG JUGA!

CONSISTENCY & REPLICATION. Sistem terdistribusi week 7

BAB 2 DASAR TEORI. Iklan berasal dari sebuah kata dalam bahasa melayu, yaitu i lan atau i lanun

Mengapa menggunakan web proxy yang terintegrasi dengan AntiVirus???

BAB II ANALISIS DAN PERANCANGAN. penggunaan bandwidth. Solusi yang sering dilakukan adalah

BlackBerry Desktop Software. Versi: 7.1. Panduan Pengguna

Memahami cara kerja TCP dan UDP pada layer transport

PROSEDUR KEAMANAN JARINGAN SPMI - UBD

IKEA Indonesia, Customer Support, Jl. Jalur Sutera Boulevard Kav. 45, Alam Sutera Serpong, Serpong, Kec. Tangerang, Banten, INDONESIA.

MODUL 5 MULTIPLEXING

Consistency and Replication

BAB I PENDAHULUAN. metode transaksi yang di lakukan secara online mulai berkembang pesat,

DATA LINK LAYER. Gambar. 1: Fungsi dari Data Link Layer. Gambar. 2: PDU pada Data Link Layer berupa Frames

Making Provisions for Applications and Services

BAB II LANDASAN TEORI

ADMINISTRASI SERVER KELAS 11. Oleh Alimansyah Aprianto Tek. Komputer dan Jaringan

BAB I PENDAHULUAN 1.1 Latar Belakang

DISTRIBUTED FILE SYSTEMS

KAPITA SELEKTA. IoT Middleware SINA (Sensor Information Architecture and Application)

Teknik Informatika S1

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB IV HASIL DAN PEMBAHASAN A. EVALUASI SISTEM INFORMASI AKUNTANSI PENJUALAN KREDIT

TAHAPAN ANALISIS ANALISIS DAN PERANCANGAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA 2010

Berikut adalah beberapa contoh data yang disimpan oleh TRAVIAN GAMES:

STMIK AMIKOM YOGYAKARTA

KETERAMPILAN KONSELING : KLARIFIKASI, MEMBUKA DIRI, MEMBERIKAN DORONGAN, MEMBERIKAN DUKUNGAN, PEMECAHAN MASALAH DAN MENUTUP PERCAKAPAN

9/6/2014. Dua komputer atau lebih dapat dikatakan terinterkoneksi apabila komputer-komputer tersebut dapat saling bertukar informasi.

Penggunaan Jaringan Komputer

Mobile-Bisnis dalam E-Bisnis

SHARE DATA & TRANSACTION

BAB IV HASIL DAN PEMBAHASAN


Syarat dan Ketentuan. Mohon Diperhatikan. Ketentuan Penggunaan Situs Web

Latar belakang proyek ini adalah adanya kebutuhan perusahaan X yang bergerak sebagai distributor dalam bidang penyediaan kebutuhan bahan pokok untuk

2. Bagaimana Kami Menggunakan Informasi Anda

Abstrak. Keyword : Penjualan, Pembelian, Stok, SMS, Bonus, laporan, C# Microsoft Visual Studio. NET 2003, Mobile FBUS 1.5, format.

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. kebutuhan banyak orang karena dengan internet kita bisa mengakses dan

Pertemuan 1. Tujuan Teknik Komunikasi

BAB II LANDASAN TEORI. para pelanggan dan menagih kas sebagai pembayaran dari penjualan penjualan

BAB IV PEMBAHASAN AUDIT OPERASIONAL ATAS FUNGSI PENJUALAN KREDIT DAN PIUTANG USAHA PADA PT. GROOVY MUSTIKA SEJAHTERA

Gambar 1.1 Contoh Jaringan Peer To Peer

Buku Petunjuk Manajer sambungan Edisi 1.0 ID

Kebijakan Privasi Kami

PERATURAN BANK INDONESIA NOMOR : 6/ 8 /PBI/2004 TENTANG SISTEM BANK INDONESIA REAL TIME GROSS SETTLEMENT GUBERNUR BANK INDONESIA,

Dasar Dasar Intelijen Bisnis: Database dan Manajemen Informasi

BAB 1 PENDAHULUAN. sering disebut dengan e-commerce (Electronic Commerce). E-Commerce

Mata pelajaran ini memberikan pengetahuan kepada siswa mengenai konsep dasar dan design jaringan komputer.

PERTEMUAN 12 Keamanan dan Administrasi Database. (Chap. 20 Conolly)

DAFTAR ISI. Peraturan Arbitrase Proses Acara Cepat KLRCA PERATURAN ARBITRASE SKEMA IMBALAN DAN BIAYA ADMINISTRASI PEDOMAN UNTUK PERATURAN ARBITRASE

BAB II LANDASAN TEORI

Bab 10. Packet Switching

BAB 3 ANALISIS DAN PERANCANGAN SISTEM. proses pemesanan itu sendiri dan proses penyebaran pesanan. Tabel 3.1 berisi daftar

BAB 1 PENDAHULUAN. jurang kesenjangan digital (digital divide), yaitu keterisolasian dari perkembangan

Jaringan Komputer Switching

BAB 2 LANDASAN TEORI. menyediakan layanan ke komputer lain melalui koneksi jaringan. Server dapat

Bab 10 Packet Switching

Analisis Metode Alokasi Fragmen Pada Sistem Basis Data Terdistribusi

Mata Kuliah : Jaringan Komputer Dosen Pengampu : Harun Mukhtar, S.Kom, M.Kom Universitas Muhammadiyah Riau

TCP dan Pengalamatan IP

Protokol dan Arsitekturnya

Jika Anda menjawab ya untuk setiap pertanyaan tersebut, selamat! Anda merupakan kandidat sempurna untuk menjadi reseller web hosting yang sukses.

BAB III TOKEN RING. jaringan cincin (ring) dan sistem token passing untuk mengontrol akses menuju jaringan.

KEBIJAKAN ANTI PENCUCIAN UANG FXPRIMUS

STRATEGI MARKETING DALAM E BISNIS

Sistem Terdistribusi Arsitektur

BlackBerry Messenger. Panduan Pengguna. Versi: 6.0

Sistem terdistribusi. Albertus dwi yoga widiantoro, M.Kom

Transkripsi:

1. Penggunaan Clock Sinkronisasi Pelaksanaan sinkronisasi clock dalam skala luas terjadi baru-baru ini saja, yang salah satu teknologi enabling-nya adalah internet. Yang dapat mensinkronkan jutaan clock dalam orde milidetik dengan UTC. Berbagai algoritma baru yang menggunakan clock sinkron mulai bermunculan, berikut ini contohnya At-Most-Once Message Delivery Setiap pesan membawa pengenal koneksi dan time stamp. Untuk setiap koneksi, server menyimpan time stamp terbaru ke dalam tabel. Bila ada pesan masuk dengan timestamp yang lebih lama daripada time stamp yang disimpan, maka pesan tersebut akan ditolak dan dianggap sebagai duplikat. Server menyimpan variabel global yang memungkinkannya untuk menghapus timestamp lama. 2. Konsistensi Cache Berbasis Clock Konsistensi cache dalam file System tersebar menjadi perhatian karena setiap client menginginkan cache file di lokal komputer. Bila dua komputer memodifikasi file secara bersamaan, berpotensi menyebabkan inkonsistensi. Ide dasarnya bila client menginginkan sebuah file, lease akan diberikan untuk menentukan berapa lama copy tersebut valid. Bila lease sudah hampir habis berlakunya, client dapat meminta untuk memperbaharuinya. Bila lease habis berlakunya, cache dari copy tersebut tidak akan digunakan. Propagasi lokal dalam proses P dapat dilakukan sebagai berikut. Awalnya, semua proxy di P ditandai tidak ada. Para kolektor lokal mulai menelusuri mulai penelusuran dari set yang terdiri dari kerangka yang sebelumnya telah ditandai keras, serta dari benda-benda di set root. Tanda Hard disebarkan ke semua objek (yaitu, objek lokal dan proxy) yang dicapai dari set ini. Sebuah jejak kedua dilakukan dari kerangka yang telah ditandai lembut. Jika proxy yang kini mencapai yang ditandai tidak ada, tandanya berubah menjadi lembut. Jika proxy ditandai keras, tetap ditandai seperti. Akibatnya, setelah propagasi lokal, masing-masing proxy di proses akan ditandai baik tidak ada, lembut, atau keras. Gambar

Langkah ketiga terdiri dari menyebarkan tanda dari proxy untuk kerangka mereka terkait. Dengan kata lain, tanda yang disebarkan antara proses yang berbeda. Secara khusus, jika proxy telah ditandai keras, pesan harus dikirim ke kerangka yang terkait untuk menandai sulit juga, jika tidak sudah ditandai seperti. Sebuah pesan akan dikirim hanya jika kerangka terletak di dalam kelompok. Tanda lembut tidak harus disebarkan: fase menandai awal sudah ditetapkan bahwa setiap kerangka dalam kelompok ditandai baik lembut atau keras. Hasil Langkah keempat dari propagasi global marka keras pada langkah sebelumnya. Sebuah kerangka dalam, katakanlah, P proses sekarang mungkin memiliki tandanya berubah dari lembut ke keras. Perubahan ini berasal dari fakta bahwa kerangka ternyata dicapai dari obyek yang terkandung dalam set akar dari proses remote. Akibatnya, ini tanda keras pertama perlu disebarkan ke proxy lokal di P, dan kemudian, secara global disebarkan kepada proses tetangga. Dengan kata lain, langkah 2 dan 3 harus diulang asalkan tanda dapat baik secara lokal atau global disebarkan. Segera setelah stabilisasi telah tercapai, yaitu, tidak ada perubahan yang lebih berkenaan dengan menandai terjadi proses dalam kelompok, hasil algoritma dengan langkah berikutnya. Dalam contoh kita, efek mengulangi langkah 2 dan 3 mengarah ke final menandai seperti ditunjukkan pada Gambar:

Langkah kelima dan terakhir terdiri dari menghilangkan benda terjangkau, termasuk proxy terjangkau, serta mereka proxy dan tengkorak yang sudah ditandai lembut. Penting untuk dicatat bahwa yang terakhir tidak dapat diraih dari luar kelompok, mereka juga tidak dapat dicapai dari objek dalam satu set root. Dengan kata lain, soft-ditandai proxy dan kerangka hanya mengacu pada satu sama lain, dan dengan demikian harus dihapus. Sampah reklamasi dapat dilakukan sebagai efek samping dari propagasi lokal. Alih-alih eksplisit menghapus entitas dalam langkah terakhir, kerangka ditandai lembut diubah untuk merujuk nihil. Akibatnya, dapat direklamasi kemudian ketika pengumpulan sampah lokal dijalankan lagi. Selain itu, jika objek yang terkait dengan kerangka yang sekarang menjadi terjangkau, maka akan direklamasi juga. Jika proxy lokal disebut dengan objek yang juga tidak lagi terjangkau, mereka akan ditandai dan tetap tidak ditandai seperti itu. Oleh karena itu aman untuk membiarkan pengumpul sampah lokal merebut kembali proxy none-ditandai, setelah mengirim pesan ke penurunan kerangka proxy terkait di salah satu proses remote. Dengan hirarki mengorganisir ke dalam kelompok, solusi yang lebih scalable untuk pengumpulan sampah terdistribusi dapat dicapai. Ide dasarnya adalah untuk membiarkan tingkat rendah kelompok mengumpulkan sampah, dan meninggalkan analisis referensi antarkelompok kepada kelompok yang lebih tinggi-tingkat berikutnya. Dengan membiarkan rendah tingkat kelompok mengurangi jumlah objek yang perlu ditelusuri, lebih tinggi tingkat kelompok dasarnya beroperasi pada jumlah yang sama sebagai obyek masing-masing jika subkelompok, tetapi yang tersebar di jaringan yang lebih besar. Kami menghilangkan detail, yang dapat ditemukan dalam (Lang et al, 1992.). Beberapa Sumber Waktu Eksternal Untuk sistem di mana sinkronisasi yang sangat akurat dengan UTC diperlukan, adalah mungkin untuk equib sistem dengan beberapa receiver untuk WWV, GEOS, atau lainnya UTC sumber. Namun, karena ketidaktelitian melekat dalam sumber waktu sendiri serta fluktuasi jalur sinyal, yang terbaik sistem operasi dapat Anda lakukan adalah untuk membentuk rentang (interval waktu) di mana UTC jatuh. Secara umum, sumber berbagai waktu akan menghasilkan rentang yang berbeda, yang dengan demikian mensyaratkan bahwa mesin yang menyertainya datang kesebuah kesepakatanumum. Untuk mencapai kesepakatan ini, setiap prosesor dengan sumber UTC bisa menyiarkan jangkauan berkala, untuk istance, pada awal tepat dari setiap menit UTC. Tak satu pun dari prosesor akan mendapatkan paket waktu seketika. Parahnya lagi, penundaan antara transmisi dan penerimaan tergantung pada jarak kabel dan jumlah router bahwa paket harus melintasi,

yang berbeda untuk setiap pasangan (UTC sumber, prosesor). Faktor-faktor lain dan juga memainkan peran, seperti keterlambatan akibat tabrakan ketika beberapa mesin mencoba untuk mengirimkan pada Ethernet pada saat yang sama. Selain itu, jika prosesor sedang sibuk menangani paket sebelumnya, tidak mungkin bahkan melihat paket waktu untuk sejumlah besar milidetik, memperkenalkan ketidakpastian tambahan ke waktu. 3. Penggunaan Jam Synchronized Dalam beberapa tahun terakhir, perangkat keras dan perangkat lunak yang diperlukan untuk sinkronisasi jam pada skala luas (misalnya, melalui internet seluruh) telah menjadi mudah tersedia. Dengan teknologi baru ini, adalah mungkin untuk menjaga jutaan jam disinkronisasi ke dalam beberapa milidetik UTC. Algoritma baru yang memanfaatkan jam disinkronkan baru mulai muncul. Salah satu contoh, dibahas dalam (Liskov, 1993), menyangkut bagaimana menegakkan pada pengiriman pesan yang paling sekali untuk aserver, bahkan dalam menghadapi crash. Pendekatan tradisional untuk setiap pesan menanggung nomor pesan yang unik, dan memiliki setiap toko server semua jumlah pesan yang telah melihat sehingga dapat mendeteksi pesan baru dari transmisi ulang. Masalah dengan algoritma ini adalah bahwa jika crash server dan reboot, ia kehilangan tabel nomor pesan. Juga untuk berapa lama harus nomor pesan disimpan? Menggunakan waktu, algoritma dapat dimodifikasi sebagai berikut. Sekarang, setiap pesan membawa connection identifier (dipilih oleh pengirim) dan timestamp. Untuk setiap koneksi, server mencatat dalam sebuah tabel timestamp terbaru itu telah melihat. Jika ada pesan yang masuk untuk koneksi lebih rendah dari timestamp disimpan untuk koneksi itu, pesan akan ditolak sebagai duplikat. Untuk memungkinkan untuk menghapus cap waktu lama, setiap server terus mempertahankan variabel global. G = CurrentTime - MaxLifeTime MaxClockSkew Yang MaxClockSkew adalah waktu maksimum pesan dapat hidup dan MaxClockSkew adalah seberapa jauh dari UTC jam yang mungkin paling buruk. Setiap timestamp tua dari G aman dapat dihapus dari tabel karena semua pesan yang sudah lama mati. Jika pesan masuk memiliki pengenal koneksi yang tidak diketahui, itu diterima jika timestamp yang lebih baru daripada G dan ditolak jika timestamp adalah lebih tua dari G karena apa pun yang tua pasti merupakan duplikat. Akibatnya, G adalah ringkasan dari nomor pesan dari semua pesan lama. AT Setiap waktu saat ditulis ke disk. Ketika server crash dan kemudian reboot, itu ulang G dari waktu yang disimpan pada disk dan bertahap dengan periode update, AT. Setiap pesan yang masuk dengan timestamp tua dari G ditolak sebagai duplikat. Sebagai konsekuensinya, setiap pesan yang mungkin telah diterima

sebelum kecelakaan tersebut ditolak. Beberapa pesan baru mungkin salah ditolak, tetapi di bawah semua kondisi algoritma mempertahankan di-paling-sekali semantik. Selain algoritma ini, Liskov (1993) juga menjelaskan bagaimana jam disinkronisasi dapat digunakan untuk mencapai konsistensi cache, bagaimana menggunakan time-out tiket di otentikasi sistem terdistribusi, dan bagaimana menangani komitmen dalam transaksi atom. Kita akan membahas beberapa algoritma dalam bagian berikutnya. Sebagai sinkronisasi waktu meningkatkan, aplikasi tidak diragukan lagi baru untuk itu akan ditemukan. 4 LOGIS Jam Untuk berbagai tujuan, itu sudah cukup bahwa semua mesin setuju pada waktu yang sama. Hal ini tidak penting bahwa saat ini juga setuju dengan real time seperti yang diumumkan di radio setiap jam. Untuk menjalankan make, misalnya, adalah cukup bahwa semua mesin setuju bahwa itu adalah 10:00, bahkan jika itu benar-benar 10:02. Jadi untuk kelas tertentu dari algoritma, itu adalah konsistensi internal dari jam yang penting, bukan apakah mereka sangat dekat dengan real time. Untuk algoritma ini, itu adalah konvensional untuk berbicara dari jam sebagai jam logis. Dalam sebuah makalah klasik, Lamport (1978) menunjukkan bahwa meskipun sinkronisasi jam adalah mungkin, maka tidak perlu mutlak. Jika dua proses tidak berinteraksi, tidak perlu bahwa jam mereka akan disinkronkan karena kurangnya sinkronisasi tidak akan diamati dan dengan demikian tidak dapat menimbulkan masalah. Selain itu, dia menunjukkan bahwa apa yang biasanya penting bukanlah bahwa semua proses setuju pada apa waktu itu, melainkan bahwa mereka setuju pada urutan di mana peristiwa terjadi. Dalam contoh make diberikan dalam bagian sebelumnya, yang terpenting adalah apakah input.c lebih tua atau lebih baru dari masukan.0, bukan kali mutlak mereka penciptaan. Pada bagian ini kita akan membahas algoritma Lampotr, yang mensinkronisasikan jam logis. Juga, kita dicuss perpanjangan pendekatan Lamport yang disebut cap waktu vektor. Lamport diperpanjang karyanya sendiri (Lamport, 1990). 1 Lamport Timestamps Untuk menyinkronkan jam logis, Lamport mendefinisikan hubungan yang disebut terjadi sebelumnya. Ekspresi a b dibaca "a terjadi sebelum b" dan berarti bahwa semua proses setuju bahwa peristiwa pertama terjadi, maka setelah itu, acara b terjadi. Terjadi sebelum hubungan dapat diamati secara langsung dalam dua situasi: 1. Jika a dan b adalah peristiwa dalam proses yang sama, dan terjadi sebelum b, maka b benar.

2. Jika adalah peristiwa pesan yang dikirim oleh salah satu proses, dan b adalah acara dari pesan yang diterima oleh proses lain, maka b juga benar pesan tidak dapat diterima sebelum dikirim, atau bahkan pada saat yang sama waktu pengiriman, karena dibutuhkan terbatas, jumlah nol waktu untuk tiba. Terjadi sebelumnya merupakan relasi transitif, jadi jika b dan b c, maka c. Jika dua peristiwa, x dan y, terjadi dalam proses yang berbeda yang tidak bertukar pesan (bahkan secara tidak langsung melalui pihak ketiga), maka x y tidak benar, tetapi juga tidak ada y x. Peristiwa ini dikatakan bersamaan, yang berarti thet ada van dikatakan (atau perlu dikatakan) tentang kapan peristiwa itu terjadi pertama. Apa yang kita butuhkan adalah cara mengukur waktu sehingga untuk setiap acara,, kita dapat menetapkan dalam nilai waktu C (a) di mana semua proses setuju. Nilai-nilai waktu harus memiliki properti bahwa jika b, maka C (a) <(b). Untuk ulangi kondisi yang kita dinyatakan sebelumnya, jika a dan b adalah dua peristiwa dalam proses yang sama dan terjadi sebelum b, maka C (a) <C (b). Demikian pula, jika adalah pengiriman pesan oleh salah satu proses dan b adalah penerimaan pesan bahwa dengan proses lain, maka C (a) dan C (b) harus ditentukan sedemikian rupa sehingga eveyone setuju pada nilai-nilai C (a) dan C (b) dengan C (a) <C (b). Selain itu, waktu jam, C, harus selalu maju (meningkat), tidak pernah mundur (menurun). Koreksi waktu dapat dibuat dengan menambahkan nilai positif, tidak pernah dengan mengurangkan satu. Sekarang mari kita lihat algoritma Lamport diusulkan untuk menugaskan kali untuk evevts. Perhatikan tiga proses yang digambarkan dalam gambar. 5-7 (a). Proses berjalan pada mesin yang berbeda, masing-masing dengan jam sendiri, berjalan dengan kecepatan sendiri. Seperti dapat dilihat dari gambar, ketika jam telah berlalu 6 kali dalam proses 0, telah dicentang 8 kali dalam proses 1 dan 0 kali dalam proses 2. Setiap jam berjalan dengan laju yang konstan, tapi harga berbeda karena perbedaan dalam kristal. Pada waktu 6, proses 0 mengirimkan pesan untuk memproses 1. Berapa lama pesan ini diperlukan untuk tiba tergantung pada jam whhose Anda percaya. Dalam hal apapun, jam dalam proses 1 berbunyi 16 ketika tiba. Jika pesan membawa waktu mulai, 6, di dalamnya, proses 1 akan menyimpulkan bahwa butuh 10 kutu untuk melakukan perjalanan. Nilai ini tentu mungkin. Menurut penalaran ini, pesan B 1 ke 2 membutuhkan 16 kutu, lagi nilai yang masuk akal.

Sekarang tiba bagian menyenangkan. Pesan C 2-1 daun pada 60 dan tiba di 56. Demikian pula, pesan D 1-0 daun pada 64 dan tiba di 54. Nilai-nilai ini jelas tidak mungkin. Ini adalah situasi ini yang harus dicegah. Solusi Lamport ini mengikuti langsung dari terjadisebelum hubungan. Karena C kiri di 60, itu harus tiba di 61 atau yang lebih baru. Oleh karena itu, setiap pesan membawa waktu pengiriman sesuai dengan jam pengirim. Ketika pesan tiba dan jam penerima menunjukkan nilai sebelum waktu pesan itu dikirim, penerima cepat maju jam untuk menjadi salah satu lebih dari waktu pengiriman. Dalam ara. 5-7 (b) kita melihat bahwa C sekarang tiba di 61. Demikian pula, D tiba di 70. Dengan satu tambahan kecil, algoritma ini memenuhi persyaratan kami untuk waktu global. Selain itu adalah bahwa antara Avery dua peristiwa, jam harus centang setidaknya sekali. Jika proses mengirim atau menerima dua pesan secara berurutan, sekali harus memajukan clock oleh(setidaknya) satu tik diantaramereka. Dalam beberapa situasi, persyaratan tambahan yang diinginkan, tidak ada dua peristiwa yang pernah terjadi pada waktu yang tepat sama. Untuk mencapai tujuan ini, kita dapat melampirkan jumlah proses di mana acara occures dengan urutan rendah dan waktu, yang dipisahkan oleh titik desimal. Thuse jika peristiwa terjadi dalam proses 1 dan 2, baik dengan waktu 40, mantan menjadi 40,1 dan yang terakhir datang 40,2. Dengan menggunakan metode ini, kita sekarang memiliki cara untuk menetapkan waktu untuk semua kejadian dalam subjek sistem terdistribusi dengan kondisi berikut: 1. Jika terjadi sebelum b dalam proses yang sama. C(a) 2. JIKA dan b represent pengiriman dan receiveing pesan, masing masing Untuk semuakejadi an distintive a dan b 3. Algoritma ini memberi kita cara untuk menyediakan permintaan total semua kejadian dalam sistem. Banyak algoritma didistribusikan lainnya perlu memesan untuk menghindari ambiguitas, sehingga algoritma banyak dikutip dalam literatur.

Contoh:Totally Memerintahkan Multicasting Sebagai aplikasi dari Lamport cap, mempertimbangkan situasi di mana database telah direplikasi di beberapa situs. Misalnya, untuk meningkatkan kinerja query, bank dapat menempatkan kinerja salinan, bank dapat menempatkan salinan database rekening di dua kota yang berbeda, misalnya New York dan San Fransisco. Sebuah permintaan selalu diteruskan ke salinan terdekat. Harga untuk respon yang cepat terhadap permintaan adalah pihak yang dibayar biaya pembaruan yang lebih tinggi, karena setiap operasi update harus dilakukan masing-masing replika. Bahkan, ada persyaratan lebih strigent sehubungan dengan memperbarui. Asumsikan seorang pelanggan di San Francisco ingin menambahkan $ 100 sampai account-nya, yang curently mengandung 1,000 $. Pada saat yang sama, seorang karyawan bank di New York inisiat pembaruan dengan mana account pelanggan adalah untuk ditingkatkan dengan 1 persen bunga. Kedua update harus dilakukan keluar di kedua coppies dari database. Namun, disebabkan oleh keterlambatan komunikasi dalam jaringan yang mendasari, para update mungkin tiba dalam urutan seperti yang ditunjukkan pada Gbr.5-8. Operasi update pelanggan dilakukan di San Francisco sebelum update bunga. Sebaliknya, salinan rekening di new york replika baru untuk pertama diperbarui dengan persen bunga saya, dan setelah itu dengan deposit $ 100. Akibatnya, san Database fransiscco akan mencatat jumlah total $1111, sedangkan database newyork catatan$1110. Masalah yang kita hadapi adalah bahwa operasi dua pembaruan seharusnya dilakukan dalam urutan yang sama pada setiap copy. Meskipun itu membuat perbedaan apakah deposite diproses sebelum update bunga atau sebaliknya, yang order diikuti tidak penting dari sudut pandang konsistensi. Masalah penting adalah bahwa kedua salinan harus persis sama. Secara umum, situasi seperti ini memerlukan multicast benar-memerintahkan dalam mode sepenuhnya didistribusikan.

Pertimbangkan sekelompok proses multicasting pesan satu sama lain. Setiap pesan selalu timestamped dengan arus (logis) waktu pengirimnya. Ketika sebuah pesan multicast, maka secara konseptual juga dikirim ke pengirim. Selain itu, kami mengasumsikan bahwa pesan dari pengirim yang sama diterima dalam urutan mereka dikirim, dan bahwa tidak ada pesan yang hilang. Ketika sebuah proses menerima pesan, itu dimasukkan ke dalam antrian lokal, memerintahkan menurut timestap nya. Penerima multicast suatu mengakui ke proses lainnya. Perhatikan bahwa jika kita mengikuti algoritma Lamport untuk menyesuaikan jam lokal, timestamp dari pesan yang diterima lebih rendah dari timestamp darimengakui. Aspek yang menarik dari pendekatan ini, adalah bahwa semua proses pada akhirnya akan memiliki salinan yang sama dari antrian lokal. Setiap pesan multicast untuk semua proses, termasuk pengakuan, dan diasumsikan akan diterima oleh semua proses. Ingat juga bahwa kita menganggap bahwa pesan yang disampaikan dalam urutan bahwa mereka akan dikirim. Setiap proses menempatkan pesan yang diterima dalam antrian lokal sesuai dengan timestamp dalam pesan itu. Jam Lamport ini memastikan bahwa tidak ada dua pesan memiliki timestamp yang sama, tetapi juga bahwa timestamp mencerminkan pemesanan global yang aconsistent peristiwa. Sebuah proses dapat menyampaikan pesan antri untuk aplikasi itu berjalan hanya bila pesan yang ada di kepala antrian dan telah diakui oleh setiap proses lain. Pada saat itu, pesan akan dihapus dari antrian dan diserahkan kepada aplikasi, ackwoledge terkait hanya dapat dihapus. Karena setiap proses memiliki salinan yang sama antrian, semua pesan yang disampaikan dalam everyehere urutan yang sama. Dengan kata lain, kami telah menetapkan benar - multicasting memerintahkan. 5.2.2 Cap vektor Lamport timnestamp menyebabkan situasi semua kejadian dalam sistem terdistribusi secara total dipesan dengan properti yang jika peristiwa peristiwa yang terjadi sebelum acara b, maka juga akan diposisikan dalam memesan sebelum b, yaitu C(a) < C (b). Namun dengan Lamport cap, tidak ada yang dapat dikatakan tentang hubungan antara dua kejadian a dan b hanya dengan membandingkan waktu mereka nilai C (a) dan C (b), masing-masing. Dengan kata lain, jika C (a) <C (b), maka hal ini tidak selalu berarti bahwa memang terjadi sebelumnya b sesuatu yang lebih diperlukanuntuk itu. Untuk memahami apa yang sedang terjadi, mempertimbangkan sistem pesan di mana proses posting artikel dan bereaksi terhadap diposting articals. salah satu contoh yang paling populer seperti sistem pesan elektronik adalah layanan papan buletin internet itu, jaringan berita.

Pengguna dan karenanya proses, bergabung dengan kelompok diskusi tertentu. Postingan dalam kelompok tersebut. posting kami dapat memutuskan untuk menggunakan skema multicasting benar-benar memerintahkanseperti penjelasan diatas. Masalahnya adalah bahwa Lamport cap tidak menangkap causality.in contoh kita, penerimaan dari articale selalu kausal mendahului posting reaksi. akibatnya jika hubungan kausal yang dipertahankan kelompok withina proses, maka penerimaan reaksi terhadap artcale harus selalu mengikuti penerimaan dari artikel itu. Tidak lebih, tidak kurang. Jika dua artikel atau reaksi yang independen, pesanan mereka pengiriman seharusnya tidak masalah sama sekali. Kausalitas dapat ditangkap dengan cara cap waktu vektor. Sebuah vektor timestamp VT (a) ditugaskan untuk sebuah acara memiliki properti bahwa jika VT (a) <VT (b) untuk beberapa acara b, maka acara yang diketahui kausal prcede acara b. waktu perangko vektor dibangun dengan membiarkan setiap proses pi mempertahankan vektor vi dengan dua sifat berikut: 1. Vi[i] adalah jumlah peristiwa yang telah terjadi sejauh ini di pi. 2. Jika Vi[j] = k maka pik nowns bahwa k peristiwa telah terjadi di pj. Properti pertama dikelola oleh incrementing Vi [i] pada terjadinya setiap peristiwa baru yang happenes pada proses Pi properti kedua dipertahankan dengan membonceng vektor bersama dengan pesan yang dikirim. Secara khusus, ketika Pi mengirim pesan m, ia akan mengirimkan sepanjang arus vektor sebagai vt timestamp. Dalam sebuah penerima informasi tentang jumlah kejadian yang telah terjadi di Pi. Lebih penting, namun adalah bahwa penerima diberitahu berapa banyak Avants pada proses lainnya telah terjadi sebelum Pi mengirim pesan m. dengan kata lain, cap vt m memberitahu penerima berapa banyak peristiwa di prosesses lain telah mendahului m, dan di mana m dapat kausal tergantung. Ketika proses pi menerima m, yang menyesuaikan vektor sendiri dengan menetapkan setiap entri Vj [k], untuk max {Vj [k], vt [k]}. Vektor sekarang mencerminkan jumlah pesan yang Pj harus menerima untuk memiliki setidaknya terlihat menjadi pesan yang sama yang mendahului pengiriman m. Hereaafter, entri Vj [t] bertambah dengan 1 mewakili hal menerima pesan berikutnya. Dengan sedikit penyesuaian, cap vektor dapat digunakan untuk menjamin pesan causual delivery.assume bahwa Vi [i] bertambah hanya ketika proses Pi mengirimkan pesan. Pertimbangkan lagi contoh sebuah papan buletin elektronik. Ketika posting Pi proses sebuah artikel, multicast artikel itu sebagai pesan dengan timestamp vt (a) ditetapkan sama dengan Vi. Sekarang anggaplah posting Pi reaksi terhadap artikel. Hal ini dilakukan dengan multicasting r pesan dengan timestamp vt (r) ditetapkan sama dengan Vj. Perhatikan bahwa vt (r) [j] > vt(a)[j]. Dengan asumsi komunikasi yang handal, baik pesan tersebut berisi artikel, dan r

pesan yang berisi reaksi akhirnya akan tiba di proses Pk lain. Seperti yang telah kita membuat tidak ada asumsi mengenai Urutan pesan, pesan r mungkin tiba di Pk sebelum pesan. Ketika menerima r, Pk menginspeksi timestamp vt (r) dan akan memutuskan untuk menunda pengiriman sampai semua pesan yang kausal mendahului r telah diterima juga. Secara khusus, pesan r disampaikan hanya jika kondisi berikut ini mte: 1. Vt (r) [j] = Vk [j] +1 2. Vt (r) [i] Vk [i] untuk semua i j Kondisi pertama menyatakan bahwa r adalah pesan berikutnya yang Pk mengharapkan dari proses Pj. Yang kedua menyatakan bahwa kondisi Pk belum melihat adanya pesan yang tidak terlihat oleh Pj ketika ia mengirimkan pesan r. Secara khusus, ini berarti bahwa Pk telah melihat pesan. Catatan tentang Memerintahkan Pengiriman Pesan Beberapa sistem middleware, terutama ISIS dan Horus penggantinya (Birma dan van Renesse, 1994), memberikan dukungan untuk benar-benar-memerintahkan dan kausal-memerintahkan (terpercaya) multicasting. Ada beberapa kontroversi apakah dukungan tersebut harus disediakan sebagai bagian dari lapisan pesan-komunikasi, atau apakah aplikasi harus menangani pemesanan (Lihat, misalnya, Cheriton dan skeen, 1993, dan Birman, 1994). Ada dua masalah utama dengan membiarkan komunikasi lapisan berurusan dengan pesan pemesanan. Pertama, karena menjadi lapisan komunikasi tidak bisa mengatakan apa pesan e sebenarnya mengandung, hanya potensial kausalitas ditangkap. Sebagai contoh, dua pesan dari pengirim yang sama yang benar-benar independen akan selalu ditandai sebagai kausal berkaitan dengan lapisan komunikasi. Pendekatan ini terlalu ketat dan dapat menyebabkan masalah efisiensi. Masalah kedua adalah bahwa tidak semua kausalitas dapat ditangkap. Pertimbangkan lagi sistem berita. Misalkan Alice posting sebuah artikel. Jika dia kemudian telepon Bob bercerita tentang apa yang baru saja menulis, Bob dapat memposting artikel lain sebagai reaksi tanpa pernah melihat Alice posting di berita. Dengan kata lain, ada kausalitas antara Bob posting dan bahwa alice karena komunikasi eksternal. Kausalitas ini tidak ditangkap oleh sistem jaringan berita. Pada intinya, memesan isu, seperti banyak masalah komunikasi aplikasi-spesifik lainnya, dapat secara memadai diselesaikan dengan melihat aplikasi mana komunikasi berlangsung dapat, ini juga dikenal sebagai argumen end-to-end dalam sistem desain (Saltzer dkk., 1984). Sebuah kelemahan hanya memiliki solusi tingkat aplikasi, adalah bahwa pengembang dipaksa untuk

berkonsentrasi pada masalah yang tidak segera berhubungan dengan fungsi inti dari aplikasi. Misalnya, pemesanan mungkin tidak menjadi masalah yang paling penting ketika mengembangkan sistem pesan seperti berita jaringan. Dalam hal ini, memiliki komunikasi yang mendasari lapisan menangani pemesanan dapat berubah menjadi nyaman. Kami akan datang di end-to-end argumen beberapa kali, terutama ketika berhadapan dengan keamanan pada sistem terdistribusi. 5.3 Global State Ketika jumlah node dalam sebuah sistem terdistribusi tumbuh, menjadi semakin sulit bagi setiap node untuk melacak orang lain. Pengetahuan tersebut dapat penting untuk melaksanakan algoritma terdistribusi seperti routing, multicasting, data penempatan, mencari, dan sebagainya. Kita telah melihat contoh-contoh yang berbeda dalam yang koleksi besar node diatur dalam topologi tertentu yang memfasilitasi pelaksanaan efisien algoritma tersebut. Pada bagian ini, kita melihat pada organisasi lain yang berhubungan dengan masalah waktu. Dalam jaringan overlay geometrik setiap node diberi posisi di 111 dimensi geometris ruang, sehingga jarak antara dua node dalam ruang mencerminkan kinerja dunia nyata metrik. Yang paling sederhana, dan paling diterapkan Sebagai contoh, adalah di mana jarak sesuai dengan internode latency. Dengan kata lain. diberikan dua node P dan Q, maka jarak d (P, Q) mencerminkan berapa lama itu akan mengambil untuk pesan ke perjalanan dari P ke Q dan sebaliknya. Ada banyak aplikasi jaringan overlay geometris. Pertimbangkan situasi di mana sebuah situs web di server 0 telah direplikasi ke beberapa server S} "". Sk di Internet. Ketika sebuah klien meminta halaman C dari 0, yang kedua mungkin memutuskan untuk mengarahkan permintaan itu ke server terdekat dengan C, yaitu, salah satu yang akan memberikan waktu respon yang terbaik. Jika lokasi geometrik C dikenal, serta orang-orang dari setiap server replika, 0 kemudian dapat hanya memilih server S, yang d (C, SJ adalah minimal. Perhatikan bahwa seperti pilihan hanya membutuhkan pemrosesan lokal di O. Dengan kata lain, ada, misalnya, tidak perlu sampel semua latency antara C dan masing-masing server replika. Contoh lain, yang kita akan bekerja secara rinci dalam bab berikutnya, adalah optimal replika penempatan. Pertimbangkan lagi situs Web yang telah mengumpulkan posisi kliennya. Jika situs itu untuk meniru isinya ke server K, dapat menghitung K terbaik posisi di mana untuk menempatkan replika sehingga rata-rata klien-toreplica waktu respon minimal. Melakukan perhitungan tersebut hampir sepele layak jika klien dan server memiliki posisi geometris yang mencerminkan latency ruas.

Sebagai contoh terakhir, mempertimbangkan posisi berbasis routing (Araujo dan Rodrigues, 2005, dan Stojmenovic, 2002). Dalam skema tersebut, pesan diteruskan ke nya tujuan menggunakan informasi posisi saja. Sebagai contoh, sebuah algoritma routing yang naif untuk membiarkan setiap node meneruskan pesan ke tetangga yang paling dekat dengan tujuan. Meskipun dapat dengan mudah menunjukkan bahwa algoritma tertentu tidak perlu bertemu,menggambarkan bahwa informasi lokal hanya digunakan untuk mengambil keputusan. Ada tidak perlu untuk menyebarkan informasi tersebut kepada link atau semua node dalam jaringan, seperti kasus dengan algoritma routing konvensional. Secara teoritis, posisi node di ruang m-dimensi geometris membutuhkan m tindakan jarak +1 ke node dengan posisi yang dikenal. Hal ini dapat dengan mudah dilihat dengan mempertimbangkan kasus m = 2, seperti ditunjukkan pada Gambar. 6-18. Dengan asumsi bahwa P simpul ingin menghitung posisinya sendiri, kontak tiga node lain dengan posisi yang dikenal dan mengukur jarak ke masing-masing. P memberitahu tentang lingkaran itu terletak di; menghubungi hanya dua node akan menceritakannya tentang posisi persimpangan dua lingkaran (yang umumnya terdiri dari dua poin), sebuah simpul ketiga selanjutnya akan memungkinkan P untuk menghitung adalah lokasi sebenarnya. Seperti dikatakan, d, umumnya sesuai dengan mengukur latency antara P dan simpul di (Xj, YJ. latency ini dapat diperkirakan sebagai setengah penundaan round-trip, tetapi harus jelas bahwa nilainya akan berbeda dari waktu ke waktu. Efeknya adalah berbeda posisi kapanpun P ingin recompute posisinya. Apalagi, jika node lain akan menggunakan posisi P untuk menghitung koordinat mereka sendiri, kemudian itu harus jelas bahwa kesalahan dalam posisi P akan mempengaruhi keakuratan posisi node lain. 5.4 PEMILIHAN ALGORITMA Algoritma didistribusikan Banyak memerlukan satu proses untuk bertindak sebagai koordinator, inisiator, atau melakukan beberapa peran khusus. Secara umum, tidak peduli yang Proses ini mengambil tanggung jawab khusus, tapi salah satu dari mereka harus melakukannya. dalam hal ini bagian ini kita akan melihat algoritma untuk memilih seorang koordinator (menggunakan ini sebagai generik nama untuk proses khusus). Jika semua proses yang persis sama, tanpa membedakan karakteristik, tidak ada cara untuk memilih salah satu dari mereka untuk menjadi istimewa. Akibatnya, kita akan mengasumsikan bahwa setiap proses memiliki nomor yang unik, misalnya, alamat jaringan nya (untuk kesederhanaan, kita akan mengasumsikan satu proses per mesin). Secara umum

algoritma pemilu, berusaha untuk menemukan proses dengan nomor proses tertinggi dan menetapkannya sebagai koordinator. Algoritma berbeda dalam cara mereka lakukan lokasi. Selain itu, kami juga menganggap bahwa setiap proses mengetahui jumlah proses setiap proses lainnya. Apa proses tidak tahu adalah mana yang. sekarang yang naik dan yang turun saat ini. Tujuan dari algoritma pemilu adalah untuk memastikan bahwa ketika pemilihan dimulai, diakhiri dengan semua proses setuju pada siapa koordinator baru adalah menjadi. Ada banyak algoritma dan variasi, yang yang penting yang dibahas dalam bukubuku teks dengan Lynch (l996) dan Tel (2000), masing-masing. 5.4.1 The Bully Algorithm Sebagai contoh pertama, mempertimbangkan algoritma pengganggu yang dibuat oleh Garcia-Molina (1982). Bila sebuah proses mendapatkan coordinator tidak lagi menanggapi request yang dikirim, maka proses pemilihan akan diinisiasi. Proses P mengadakan pemilihan sebagai berikut: 1. P mengirim pesan ELECTION ke semua proses dengan nomor proses yang lebihbesar. 2. Bila tidak ada tanggapan, proses P memenangkan pemilihan dan menjadi koordinator. 3. Namun bila salah satu proses dengan nomor yang lebih tinggi menjawab, proses tesebutlah yang akan mengambil alih proses pemilihan. Pekerjaan prosess P sendiri selesai disini. Setiap saat, proses bisa mendapatkan pesan PEMILIHAN dari salah satu nya rendah-nomor rekan. Bila pesan seperti itu tiba, penerima mengirimkan Pesan kembali ke pengirim OK untuk menunjukkan bahwa ia masih hidup dan akan mengambil alih. Itu penerima kemudian memegang pemilu, kecuali sudah memegang satu. Akhirnya, semua proses menyerah tapi satu, dan yang satu adalah koordinator baru. Ini mengumumkan nya Kemenangan dengan mengirimkan semua proses pesan mengatakan kepada mereka bahwa mulai segera itu adalah koordinator baru. Jika proses yang sebelumnya turun datang kembali, memegang pemilu. Jika akan terjadi pada proses tertinggi bernomor sedang berjalan, maka akan memenangkan pemilu dan mengambil alih pekerjaan koordinator. Dengan demikian orang terbesar di kota selalu menang, maka nama "algoritma pengganggu." Dalam Gambar. 6-20 kita melihat contoh bagaimana algoritma bully bekerja. Kelompok terdiri dari delapan proses, nomor dari 0 sampai 7. Sebelumnya proses 7 adalah koordinator, tetapi baru saja jatuh. Proses 4 adalah yang pertama untuk melihat ini, sehingga mengirimkan pesan PEMILU bagi semua proses yang lebih tinggi dari itu, yaitu 5, 6, dan 7. seperti yang ditunjukkan pada Gambar. 6-20 (a). Proses 5 dan 6 keduanya merespon dengan OK, seperti yang ditunjukkan pada Gambar. 6-20 (b). Setelah mendapatkan pertama dari tanggapan, 4 tahu bahwa tugasnya

adalah atas. Ia tahu bahwa salah satu petinggi akan mengambil alih dan menjadi koordinator. Itu hanya duduk kembali dan menunggu untuk melihat siapa pemenangnya akan (meskipun pada titik ini dapat membuat perkiraan yang cukup baik). Sebuah Algoritma Cincin Lain algoritma pemilihan didasarkan pada penggunaan cincin. Tidak seperti beberapa algoritma cincin, satu ini tidak menggunakan token. Kami berasumsi bahwa proses secara fisik atau logis memerintahkan, sehingga setiap proses tahu siapa penggantinya adalah. Ketika setiap proses pemberitahuan bahwa koordinator tidak berfungsi, itu membangun suatu PEMILU pesan yang berisi nomor proses sendiri dan mengirimkan pesan ke 'nya penggantinya. Jika penggantinya sedang down, pengirim melompat lebih penerus dan pergi ke anggota berikutnya di sepanjang cincin. atau satu setelah itu, sampai proses yang berjalan adalah terletak. Pada setiap langkah di sepanjang jalan, pengirim menambahkan nomor proses sendiri untuk daftar di pesan secara efektif membuat dirinya calon yang akan terpilih sebagai koordinator. Akhirnya, pesan akan kembali ke proses yang memulai semuanya. proses mengakui acara ini ketika menerima pesan masuk yang berisi nya sendiri proses nomor. Pada saat itu, jenis pesan diubah menjadi KOORDINATOR dan beredar sekali lagi, kali ini untuk menginformasikan orang lain yang koordinator adalah (anggota daftar dengan jumlah tertinggi) dan siapa para anggota cincin baru. Ketika pesan ini sudah beredar sekali, itu akan dihapus dan semua orang kembali bekerja