Professional Documents
Culture Documents
NPM NAMA
10107005 ABDUL AZIZ
Universitas gunadarma
Logical clock and synchronization
Waktu adalah hal yang penting dalam sistem terdistribusi karena beberapa hal. Pertama,
waktu adalah satuan akurasi. Untuk mengetahui kapan suatu peristiwa terjadi, dibutuhkan
sinkronisasi clock pada sistem dan di luar sistem. Sebagai contoh, transaksi e-commerce terjadi
di komputer pengguna dan komputer bank. Kejadian tersebut haruslah dicatat waktunya secara
akurat untuk keperluan audit. Kedua, algoritma mengenai sinkronisasi clock memiliki beberapa
masalah, antara lain mempertahankan konsistensi data yang didistribusikan, otentikasi request
yang dikirim ke server, dan menghapus proses yang terduplikasi.
Jika dianalogikan, seperti teori relativitas milik Einstein. Suatu kejadian yang diamati
oleh pengamat yang satu bisa saja berbeda dengan pengamat lainnya dalam hal interval (jeda)
waktu. Dalam sistem terdistribusi, masalahnya adalah mencatat waktu terjadinya suatu kejadian
pada node yang berbeda-beda secara akurat sehingga dapat diketahui mana yang hanya terjadi
dan mana yang terjadi secara serempak.
Clock milik tiap-tiap komputer tidak selalu sama. Perbedaan antara pembacaan dua clock
komputer berbeda disebut skew. Sedangkan perbedaan clock rate disebut clock drift. Pada clock
fisik, osilasi, frekuensi, dan temperatur mempengaruhi perbedaan clock tiap komputer.
Perbedaannya mungkin sangat kecil, tetapi akumulasi perbedaan tersebut dapat mencapai tahap
yang bisa diamati dengan mata telanjang walaupun sudah disamakan nilainya. Clock drift rate
adalah perubahan perbedaan pembacaan antara clock dan perfect reference clock (clock yang
dijadikan acuan).
Clock komputer dapat disinkronkan dengan clock luar yang akurasinya tinggi. Clock
yang akurasinya paling tinggi menggunakan osilator atom. Keluaran clock ini digunakan sebagai
standar waktu international. Coordinated Universal Time (UTC) adalah standar internasional
untuk penjagaan waktu (timekeeping). Sinyal UTC disiarkan dari stasiun radio dan satelit ke
seluruh dunia. Komputer dengan penerima sinyal di seluruh dunia dapat mensinkronkan
clocknya dengan sinyal ini.
Clock yang tidak menerima pengkoreksian apapun dinyatakan faulty. Clock dinyatakan crash
failure ketika berhenti berdetik sama sekali. Kegagalan clock lainnya adalah arbitrary failure.
Contoh arbitrary failure adalah ‘Y2K bug’ yang terjadi pada pergantian tahun 1999 ke 2000.
Setelah 31 Desember 1999 dilanjutkan ke 1 Januari 1900. Catatan: clock tidak harus akurat
untuk menjadi benar.
Pada sistem sinkron, sebuah proses mengirim waktu t dari clock lokalnya ke proses
lainnya dalam pesan m. Proses seharusnya menerima dan mencocokkannya dengan clock
lokalnya sendiri dengan t + Ttrans, di mana Ttrans adalah waktu transmisi. Sayangnya Ttrans
bervariasi dan sulit diketahui. Namun, waktu minimal transmisi min tetap dapat diperkirakan
apabila jaringan lancar dan tidak ada proses lain yang berjalan bersamaan. Sistem terdistribusi
yang banyak digunakan adalah asinkron. Delay pesan tidak terbatas atau tergantung masing-
masing clock komputer. Pada sistem asinkron, Ttrans = min + x, di mana x ≥ 0. Nilai x tidak
diketahui, tetapi dapat diukur.
• Untuk menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak.
• Untuk menyediakan perlindungan terhadap interferensi dari layanan waktu, baik galat
maupun ketidaksengajaan.
Layanan NTP tersebar pada banyak server di internet. Server utama tersambung langsung
ke sumber waktu, seperti penerima sinyal radio UTC. Server sekunder disinkronisasi dengan
server primer. Server-servernya tersambung dalam hierarkikal logika yang disebut
synchronization subnet seperti Gambar 3. Semakin keatas levelnya akan semakin akurat clock-
nya. Galat terjadi setiap melewati satu level. Server-server NTP bersinkronasi satu sama lain
dengan tiga cara, antara lain multicast, procedure-call, dan symmetric.
1. Multicast ditujukan untuk LAN berkecepatan tinggi. Satu atau lebih server secara periodik
menyebar waktu clock ke server di komputer lain yang tersambung di LAN. Mode ini akurasinya
rendah tetapi cocok untuk berbagai kepentingan.
2. Procedure-call hampir sama dengan algoritma Cristian. Server menerima request dari
komputer lain dan membalasnya dengan pembacaan clock saat pengiriman. Mode ini cocok
ketika keakurasian tinggi dibutuhkan atau ketika multicast tidak dappat dilakukan.
3. Mode symmetric ditujukan untuk server yang mensuplai waktu dalam LAN atau pada level
tertinggi dari sebuah synchronization subnet.
• Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 1,2, … ,N),
kemudian event-event tersebut terjadi sesuai dengan urutan pi yang kita sebutkan diatas.
• Kapan saja sebuah message dikirim diantara proses-proses, event dari pengiriman
message terjadi sebelum event dari penerimaan message
- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari
penerimaan message
Relasi diilustrasikan pada gambar 5. Pada ketiga proses tersebut, dapat dikombinasikan
LC 2 : (a) Ketika sebuah proses pi mengirim sebuah message m, nilai L juga ditempelkan pada
nilai m , t = Li
(b) pada saat menerima pesan (m,t), sebuah proses pj menghitung L j := max(Lj ,t) dan lalu
mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m).
3.2 Totally ordered logical clocks
Beberapa pasang event yang berbeda, yang dihasilkan oleh proses yang berbeda, telah
diidentifikasi dengan Lamport timestamp secara numeris. Namun, kita dapat menciptakan sebuah
urutan total peristiwa yaitu, satu untuk yang semua pasangan dari event yang berbeda terjadi.
Jika e adalah sebuah peristiwa yang terjadi di pi dengan local timestamp Ti dan e' adalah sebuah
event yang terjadi di pj dengan local timestamp Tj, kita mendefinisikan global logic timestamp
untuk event ini menjadi (Ti, i) dan (Tj, j). Dan kita define (Ti, i) <(Tj, j) jika hanya jika salah Ti
<Tj atau Ti = Tj dan i <j terpenuhi. Urutan ini tidak memiliki arti fisik umum (karena
pengidentifikasi proses yang tidak beraturan), tetapi kadang-kadang berguna. Lamport
menggunakannya, misalnya, untuk mengurutkan proses masuknya ke bagian kritis.
Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi
kekurangan pada Lamport clocks : fakta bahwa dari L(e) < L(e’) kita tidak dapat menyimpulkan
bahwa e e’ . Vektor clock untuk sebuah sistem dari N proses adalah sebuah array dari N
integer. Setiap proses berada pada vektor clock Vi masing-masing. Aturan adalah sebagai berikut
VC4 : Ketika pi menarima sebuah timestamp t pada sebuah sebuah message, pi di set Vi[j] :=
max(Vi[j], t[j]) , for j = 1,2,…,N.
DAFTAR PUSTAKA