logical clock and synchronization

15
LOGICAL CLOCK AND SYNCHRONIZATION KELOMPOK 5 : TIME AND COORDINATION NPM NAMA 10107005 ABDUL AZIZ 10107146 ALIF ANANDITO 12107054 ANDRI IRAWAN ISA PUTRA 10107203 ANGGI PURNAMA 10107765 HABIBI SEGAP AL HAMID

Upload: aanisaputra4244

Post on 27-Jun-2015

1.108 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Logical Clock and Synchronization

LOGICAL CLOCK AND SYNCHRONIZATION

KELOMPOK 5 TIME AND COORDINATION

NPM NAMA

10107005 ABDUL AZIZ

10107146 ALIF ANANDITO

12107054 ANDRI IRAWAN ISA PUTRA

10107203 ANGGI PURNAMA

10107765 HABIBI SEGAP AL HAMID

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

1 Clock Kejadian dan Process State

11 Clock (Jam)

Setiap komputer pasti memiliki clock fisik Clock adalah alat elektronik yang menghitung

osilasi yang terjadi pada kristal pada frekuensi tertentu dan menyimpannya dalam counter

register Sistem operasi membaca clock fisik tersebut dan menerjemahkannya ke software clock

Software clock tidak selalu akurat sehingga pewaktuan hardware dan software memiliki

perbedaan walaupun sangat kecil Namun software clock tetap menjadi acuan pencatatan waktu

setiap kejadian proses Kejadian yang terjadi setelah suatu kejadian akan tercatat di waktu yang

berbeda apabila resolusi clock (periode update software clock) lebih kecil daripada interval

waktu antar kejadian

12 Clock Skew And Clock Drift

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)

13 Waktu Universal Terkoordinasi (Coordinated Universal Time)

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

2 Sinkronasi Clock Fisik

Untuk mengetahui kapan sebuah peristiwa terjadi secara akurat pada proses system

terdistribusi diperlukan sinkronisasi dengan sumber waktu dari luar yang disebut sinkronisasi

eksternal (external synchronization) Dan jika satu clock tersinkronisasi dengan clock yang lain

dengan derajat akurasi yang diketahui maka kita bisa mengukur interval terjadinya dua peristiwa

pada komputer yang berbeda walaupun tidak tersinkronisasi ke sumber waktu dari luar Hal ini

disebut sinkronisasi internal (internal synchronization)

Beberapa gagasan pengkoreksian (correctness) untuk clock sudah pernah diajukan

Hardware clock H selalu dikoreksi apabila drift-nya sudah mencapai angka tertentu (ρ gt 0) Jadi

galat (error) perhitungan interval antara waktu sebenarnya t dan trsquo (t gt trsquo) adalah

(1 - ρ)(t - t) le H(t) - H(t) le (1 + ρ)(t -t)

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 lsquoY2K bugrsquo 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

21 Sinkronisasi pada Sistem Sinkron

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 ge 0 Nilai x tidak

diketahui tetapi dapat diukur

22 Metode Cristian untuk Sinkronisasi Clock

Cristian menyarankan untuk menggunakan server yang menerima sinyal UTC untuk

mensiknronisasikan komputer secara eksternal Sebuah proses p meminta waktu dalam pesan m

kepada server S kemudian menerima nilai waktu t dalam pesan mt Proses p merekam total

waktu yang dibutuhkan Tround untuk mengirim permintaan dan menerima balasan Dengan

begini waktu yang akurat dapat diperhitungkan Permasalahannya adalah server yang

menyimpan waktu hanya satu yang apabila gagal maka untuk sementara waktu sinkronisasi

tidak dapat dilakukan Cristian menyarankan untuk menggunakan beberapa server yang sudah

tersinkronasi Jadi klien meminta ke semua server dan hanya menggunakan balasan yang

pertama kali diterima

23 Algoritma Berkeley

Gusella dan Zatti mengembangkan algoritma untuk sinkronisasi internal Mereka

mengembangkan algoritma ini pada komputer berbasis Barkeley UNIX Pada lagoritma ini

sebuah komputer ditunjuk sebagai coordinator yang disebut master Komputer ini kemudian

memilih komputer-komputer untuk dimintai sinkronisasi yang disebut slave dengan master

secara periodik Slave-slave membalas dengan nilai clock miliknya Master menghitung

clocknya sendiri dengan memperhitungkan waktu perjalanan data dan rata-rata dari nilai clock

yang didapat Algoritma ini tidak akan membaca clock yang faulty Clock yang hanya berbeda

sedikit dengan jumlah tertentu dengan clock lainnya yang dipilih untuk dirata-rata Hal ini

disebut fault tolerant average Sehingga ketika ada satu clock yang gagal atau rusak tidak

mempengaruhi clock Master

24 Protokol Waktu Jaringan (Network Time Protocol)

Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi

intranet Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan

protocol untuk distribusi informasi waktu lewat internet Tujuan dan fitur NTP antara lain

Untuk menyediakan layanan yang memungkinkan klien di Internet yang akan disinkronkan akurat

UTC

Untuk menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak

Untuk mengaktifkan klien untuk mensinkronisasi cukup sering untuk mengimbangi tingkat drift

ditemukan di kebanyakan komputer NTP

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

Pada mode procedure-call dan symmetric mode memroses pertukaran bagian-bagian

pesan Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi yaitu waktu local

ketika pesan tersebut dikirimkan Seperti pada Gambar 4 pesan m menyimpan catatan waktu

setiap akan ditransmisikan yaitu Ti-3 dan Ti-1 dan ketika diterima yaitu Ti-2 dan Ti

Kemudian NTP menghitung jeda waktu antara dua clock komputer

3 Logical Time and Logical Clock

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 2: Logical Clock and Synchronization

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

1 Clock Kejadian dan Process State

11 Clock (Jam)

Setiap komputer pasti memiliki clock fisik Clock adalah alat elektronik yang menghitung

osilasi yang terjadi pada kristal pada frekuensi tertentu dan menyimpannya dalam counter

register Sistem operasi membaca clock fisik tersebut dan menerjemahkannya ke software clock

Software clock tidak selalu akurat sehingga pewaktuan hardware dan software memiliki

perbedaan walaupun sangat kecil Namun software clock tetap menjadi acuan pencatatan waktu

setiap kejadian proses Kejadian yang terjadi setelah suatu kejadian akan tercatat di waktu yang

berbeda apabila resolusi clock (periode update software clock) lebih kecil daripada interval

waktu antar kejadian

12 Clock Skew And Clock Drift

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)

13 Waktu Universal Terkoordinasi (Coordinated Universal Time)

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

2 Sinkronasi Clock Fisik

Untuk mengetahui kapan sebuah peristiwa terjadi secara akurat pada proses system

terdistribusi diperlukan sinkronisasi dengan sumber waktu dari luar yang disebut sinkronisasi

eksternal (external synchronization) Dan jika satu clock tersinkronisasi dengan clock yang lain

dengan derajat akurasi yang diketahui maka kita bisa mengukur interval terjadinya dua peristiwa

pada komputer yang berbeda walaupun tidak tersinkronisasi ke sumber waktu dari luar Hal ini

disebut sinkronisasi internal (internal synchronization)

Beberapa gagasan pengkoreksian (correctness) untuk clock sudah pernah diajukan

Hardware clock H selalu dikoreksi apabila drift-nya sudah mencapai angka tertentu (ρ gt 0) Jadi

galat (error) perhitungan interval antara waktu sebenarnya t dan trsquo (t gt trsquo) adalah

(1 - ρ)(t - t) le H(t) - H(t) le (1 + ρ)(t -t)

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 lsquoY2K bugrsquo 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

21 Sinkronisasi pada Sistem Sinkron

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 ge 0 Nilai x tidak

diketahui tetapi dapat diukur

22 Metode Cristian untuk Sinkronisasi Clock

Cristian menyarankan untuk menggunakan server yang menerima sinyal UTC untuk

mensiknronisasikan komputer secara eksternal Sebuah proses p meminta waktu dalam pesan m

kepada server S kemudian menerima nilai waktu t dalam pesan mt Proses p merekam total

waktu yang dibutuhkan Tround untuk mengirim permintaan dan menerima balasan Dengan

begini waktu yang akurat dapat diperhitungkan Permasalahannya adalah server yang

menyimpan waktu hanya satu yang apabila gagal maka untuk sementara waktu sinkronisasi

tidak dapat dilakukan Cristian menyarankan untuk menggunakan beberapa server yang sudah

tersinkronasi Jadi klien meminta ke semua server dan hanya menggunakan balasan yang

pertama kali diterima

23 Algoritma Berkeley

Gusella dan Zatti mengembangkan algoritma untuk sinkronisasi internal Mereka

mengembangkan algoritma ini pada komputer berbasis Barkeley UNIX Pada lagoritma ini

sebuah komputer ditunjuk sebagai coordinator yang disebut master Komputer ini kemudian

memilih komputer-komputer untuk dimintai sinkronisasi yang disebut slave dengan master

secara periodik Slave-slave membalas dengan nilai clock miliknya Master menghitung

clocknya sendiri dengan memperhitungkan waktu perjalanan data dan rata-rata dari nilai clock

yang didapat Algoritma ini tidak akan membaca clock yang faulty Clock yang hanya berbeda

sedikit dengan jumlah tertentu dengan clock lainnya yang dipilih untuk dirata-rata Hal ini

disebut fault tolerant average Sehingga ketika ada satu clock yang gagal atau rusak tidak

mempengaruhi clock Master

24 Protokol Waktu Jaringan (Network Time Protocol)

Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi

intranet Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan

protocol untuk distribusi informasi waktu lewat internet Tujuan dan fitur NTP antara lain

Untuk menyediakan layanan yang memungkinkan klien di Internet yang akan disinkronkan akurat

UTC

Untuk menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak

Untuk mengaktifkan klien untuk mensinkronisasi cukup sering untuk mengimbangi tingkat drift

ditemukan di kebanyakan komputer NTP

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

Pada mode procedure-call dan symmetric mode memroses pertukaran bagian-bagian

pesan Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi yaitu waktu local

ketika pesan tersebut dikirimkan Seperti pada Gambar 4 pesan m menyimpan catatan waktu

setiap akan ditransmisikan yaitu Ti-3 dan Ti-1 dan ketika diterima yaitu Ti-2 dan Ti

Kemudian NTP menghitung jeda waktu antara dua clock komputer

3 Logical Time and Logical Clock

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 3: Logical Clock and Synchronization

12 Clock Skew And Clock Drift

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)

13 Waktu Universal Terkoordinasi (Coordinated Universal Time)

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

2 Sinkronasi Clock Fisik

Untuk mengetahui kapan sebuah peristiwa terjadi secara akurat pada proses system

terdistribusi diperlukan sinkronisasi dengan sumber waktu dari luar yang disebut sinkronisasi

eksternal (external synchronization) Dan jika satu clock tersinkronisasi dengan clock yang lain

dengan derajat akurasi yang diketahui maka kita bisa mengukur interval terjadinya dua peristiwa

pada komputer yang berbeda walaupun tidak tersinkronisasi ke sumber waktu dari luar Hal ini

disebut sinkronisasi internal (internal synchronization)

Beberapa gagasan pengkoreksian (correctness) untuk clock sudah pernah diajukan

Hardware clock H selalu dikoreksi apabila drift-nya sudah mencapai angka tertentu (ρ gt 0) Jadi

galat (error) perhitungan interval antara waktu sebenarnya t dan trsquo (t gt trsquo) adalah

(1 - ρ)(t - t) le H(t) - H(t) le (1 + ρ)(t -t)

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 lsquoY2K bugrsquo 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

21 Sinkronisasi pada Sistem Sinkron

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 ge 0 Nilai x tidak

diketahui tetapi dapat diukur

22 Metode Cristian untuk Sinkronisasi Clock

Cristian menyarankan untuk menggunakan server yang menerima sinyal UTC untuk

mensiknronisasikan komputer secara eksternal Sebuah proses p meminta waktu dalam pesan m

kepada server S kemudian menerima nilai waktu t dalam pesan mt Proses p merekam total

waktu yang dibutuhkan Tround untuk mengirim permintaan dan menerima balasan Dengan

begini waktu yang akurat dapat diperhitungkan Permasalahannya adalah server yang

menyimpan waktu hanya satu yang apabila gagal maka untuk sementara waktu sinkronisasi

tidak dapat dilakukan Cristian menyarankan untuk menggunakan beberapa server yang sudah

tersinkronasi Jadi klien meminta ke semua server dan hanya menggunakan balasan yang

pertama kali diterima

23 Algoritma Berkeley

Gusella dan Zatti mengembangkan algoritma untuk sinkronisasi internal Mereka

mengembangkan algoritma ini pada komputer berbasis Barkeley UNIX Pada lagoritma ini

sebuah komputer ditunjuk sebagai coordinator yang disebut master Komputer ini kemudian

memilih komputer-komputer untuk dimintai sinkronisasi yang disebut slave dengan master

secara periodik Slave-slave membalas dengan nilai clock miliknya Master menghitung

clocknya sendiri dengan memperhitungkan waktu perjalanan data dan rata-rata dari nilai clock

yang didapat Algoritma ini tidak akan membaca clock yang faulty Clock yang hanya berbeda

sedikit dengan jumlah tertentu dengan clock lainnya yang dipilih untuk dirata-rata Hal ini

disebut fault tolerant average Sehingga ketika ada satu clock yang gagal atau rusak tidak

mempengaruhi clock Master

24 Protokol Waktu Jaringan (Network Time Protocol)

Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi

intranet Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan

protocol untuk distribusi informasi waktu lewat internet Tujuan dan fitur NTP antara lain

Untuk menyediakan layanan yang memungkinkan klien di Internet yang akan disinkronkan akurat

UTC

Untuk menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak

Untuk mengaktifkan klien untuk mensinkronisasi cukup sering untuk mengimbangi tingkat drift

ditemukan di kebanyakan komputer NTP

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

Pada mode procedure-call dan symmetric mode memroses pertukaran bagian-bagian

pesan Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi yaitu waktu local

ketika pesan tersebut dikirimkan Seperti pada Gambar 4 pesan m menyimpan catatan waktu

setiap akan ditransmisikan yaitu Ti-3 dan Ti-1 dan ketika diterima yaitu Ti-2 dan Ti

Kemudian NTP menghitung jeda waktu antara dua clock komputer

3 Logical Time and Logical Clock

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 4: Logical Clock and Synchronization

Untuk mengetahui kapan sebuah peristiwa terjadi secara akurat pada proses system

terdistribusi diperlukan sinkronisasi dengan sumber waktu dari luar yang disebut sinkronisasi

eksternal (external synchronization) Dan jika satu clock tersinkronisasi dengan clock yang lain

dengan derajat akurasi yang diketahui maka kita bisa mengukur interval terjadinya dua peristiwa

pada komputer yang berbeda walaupun tidak tersinkronisasi ke sumber waktu dari luar Hal ini

disebut sinkronisasi internal (internal synchronization)

Beberapa gagasan pengkoreksian (correctness) untuk clock sudah pernah diajukan

Hardware clock H selalu dikoreksi apabila drift-nya sudah mencapai angka tertentu (ρ gt 0) Jadi

galat (error) perhitungan interval antara waktu sebenarnya t dan trsquo (t gt trsquo) adalah

(1 - ρ)(t - t) le H(t) - H(t) le (1 + ρ)(t -t)

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 lsquoY2K bugrsquo 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

21 Sinkronisasi pada Sistem Sinkron

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 ge 0 Nilai x tidak

diketahui tetapi dapat diukur

22 Metode Cristian untuk Sinkronisasi Clock

Cristian menyarankan untuk menggunakan server yang menerima sinyal UTC untuk

mensiknronisasikan komputer secara eksternal Sebuah proses p meminta waktu dalam pesan m

kepada server S kemudian menerima nilai waktu t dalam pesan mt Proses p merekam total

waktu yang dibutuhkan Tround untuk mengirim permintaan dan menerima balasan Dengan

begini waktu yang akurat dapat diperhitungkan Permasalahannya adalah server yang

menyimpan waktu hanya satu yang apabila gagal maka untuk sementara waktu sinkronisasi

tidak dapat dilakukan Cristian menyarankan untuk menggunakan beberapa server yang sudah

tersinkronasi Jadi klien meminta ke semua server dan hanya menggunakan balasan yang

pertama kali diterima

23 Algoritma Berkeley

Gusella dan Zatti mengembangkan algoritma untuk sinkronisasi internal Mereka

mengembangkan algoritma ini pada komputer berbasis Barkeley UNIX Pada lagoritma ini

sebuah komputer ditunjuk sebagai coordinator yang disebut master Komputer ini kemudian

memilih komputer-komputer untuk dimintai sinkronisasi yang disebut slave dengan master

secara periodik Slave-slave membalas dengan nilai clock miliknya Master menghitung

clocknya sendiri dengan memperhitungkan waktu perjalanan data dan rata-rata dari nilai clock

yang didapat Algoritma ini tidak akan membaca clock yang faulty Clock yang hanya berbeda

sedikit dengan jumlah tertentu dengan clock lainnya yang dipilih untuk dirata-rata Hal ini

disebut fault tolerant average Sehingga ketika ada satu clock yang gagal atau rusak tidak

mempengaruhi clock Master

24 Protokol Waktu Jaringan (Network Time Protocol)

Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi

intranet Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan

protocol untuk distribusi informasi waktu lewat internet Tujuan dan fitur NTP antara lain

Untuk menyediakan layanan yang memungkinkan klien di Internet yang akan disinkronkan akurat

UTC

Untuk menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak

Untuk mengaktifkan klien untuk mensinkronisasi cukup sering untuk mengimbangi tingkat drift

ditemukan di kebanyakan komputer NTP

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

Pada mode procedure-call dan symmetric mode memroses pertukaran bagian-bagian

pesan Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi yaitu waktu local

ketika pesan tersebut dikirimkan Seperti pada Gambar 4 pesan m menyimpan catatan waktu

setiap akan ditransmisikan yaitu Ti-3 dan Ti-1 dan ketika diterima yaitu Ti-2 dan Ti

Kemudian NTP menghitung jeda waktu antara dua clock komputer

3 Logical Time and Logical Clock

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 5: Logical Clock and Synchronization

Cristian menyarankan untuk menggunakan server yang menerima sinyal UTC untuk

mensiknronisasikan komputer secara eksternal Sebuah proses p meminta waktu dalam pesan m

kepada server S kemudian menerima nilai waktu t dalam pesan mt Proses p merekam total

waktu yang dibutuhkan Tround untuk mengirim permintaan dan menerima balasan Dengan

begini waktu yang akurat dapat diperhitungkan Permasalahannya adalah server yang

menyimpan waktu hanya satu yang apabila gagal maka untuk sementara waktu sinkronisasi

tidak dapat dilakukan Cristian menyarankan untuk menggunakan beberapa server yang sudah

tersinkronasi Jadi klien meminta ke semua server dan hanya menggunakan balasan yang

pertama kali diterima

23 Algoritma Berkeley

Gusella dan Zatti mengembangkan algoritma untuk sinkronisasi internal Mereka

mengembangkan algoritma ini pada komputer berbasis Barkeley UNIX Pada lagoritma ini

sebuah komputer ditunjuk sebagai coordinator yang disebut master Komputer ini kemudian

memilih komputer-komputer untuk dimintai sinkronisasi yang disebut slave dengan master

secara periodik Slave-slave membalas dengan nilai clock miliknya Master menghitung

clocknya sendiri dengan memperhitungkan waktu perjalanan data dan rata-rata dari nilai clock

yang didapat Algoritma ini tidak akan membaca clock yang faulty Clock yang hanya berbeda

sedikit dengan jumlah tertentu dengan clock lainnya yang dipilih untuk dirata-rata Hal ini

disebut fault tolerant average Sehingga ketika ada satu clock yang gagal atau rusak tidak

mempengaruhi clock Master

24 Protokol Waktu Jaringan (Network Time Protocol)

Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi

intranet Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan

protocol untuk distribusi informasi waktu lewat internet Tujuan dan fitur NTP antara lain

Untuk menyediakan layanan yang memungkinkan klien di Internet yang akan disinkronkan akurat

UTC

Untuk menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak

Untuk mengaktifkan klien untuk mensinkronisasi cukup sering untuk mengimbangi tingkat drift

ditemukan di kebanyakan komputer NTP

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

Pada mode procedure-call dan symmetric mode memroses pertukaran bagian-bagian

pesan Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi yaitu waktu local

ketika pesan tersebut dikirimkan Seperti pada Gambar 4 pesan m menyimpan catatan waktu

setiap akan ditransmisikan yaitu Ti-3 dan Ti-1 dan ketika diterima yaitu Ti-2 dan Ti

Kemudian NTP menghitung jeda waktu antara dua clock komputer

3 Logical Time and Logical Clock

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 6: Logical Clock and Synchronization

Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi

intranet Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan

protocol untuk distribusi informasi waktu lewat internet Tujuan dan fitur NTP antara lain

Untuk menyediakan layanan yang memungkinkan klien di Internet yang akan disinkronkan akurat

UTC

Untuk menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak

Untuk mengaktifkan klien untuk mensinkronisasi cukup sering untuk mengimbangi tingkat drift

ditemukan di kebanyakan komputer NTP

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

Pada mode procedure-call dan symmetric mode memroses pertukaran bagian-bagian

pesan Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi yaitu waktu local

ketika pesan tersebut dikirimkan Seperti pada Gambar 4 pesan m menyimpan catatan waktu

setiap akan ditransmisikan yaitu Ti-3 dan Ti-1 dan ketika diterima yaitu Ti-2 dan Ti

Kemudian NTP menghitung jeda waktu antara dua clock komputer

3 Logical Time and Logical Clock

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 7: Logical Clock and Synchronization

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

Pada mode procedure-call dan symmetric mode memroses pertukaran bagian-bagian

pesan Tiap pesan memiliki catatan waktu dari peristiwa yang baru saja terjadi yaitu waktu local

ketika pesan tersebut dikirimkan Seperti pada Gambar 4 pesan m menyimpan catatan waktu

setiap akan ditransmisikan yaitu Ti-3 dan Ti-1 dan ketika diterima yaitu Ti-2 dan Ti

Kemudian NTP menghitung jeda waktu antara dua clock komputer

3 Logical Time and Logical Clock

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 8: Logical Clock and Synchronization

Dari sudut pandang dari setiap single proses event-event diurutkan berdasakan waktu

seperti pada local clock Tetapi seperti yang dikatakan oleh Lamport [1978] kita tidak dapat

melakukan singkronisasi clock secara sempurna pada sebuah sistem terdistribusi Kita tidak

dapat secara umum menggunakan physical time untuk menentukan urutan dari suatu event yang

terjadi Secara umum kita dapat menggunakan sebuah skema yang mirip dengan physical tapi

pada sistem terdistribusi digunakan untuk mengurutkan event-event yang terjadi pada proses

yang berbeda Pengurutan ini berdasarkan pada dua hal yang simple dan intuitif

Jika dua event terjadi bersamaam pada satu process yang sama pi (i = 12 hellip 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

Lamport menyebutkan partial ordering diperoleh dengan men-generalalisasikan kedua hubungan

ini relasi happened-before Istilah ini biasa juga disebut causal ordering atau potential causal

ordering Kita dapat mendefinisikan relasi happened-before dinotasikan dengan 1048890 seperti

berikut

HB1 Jika ᴲ process pi e iersquo maka e ersquo

HB2 untuk setiap message m send(m) receive(m)

- Dimana send(m) adalah event dari pengiriman message dan receive(m) adalah event dari

penerimaan message

HB3 Jika e ersquo dan erdquo adalah event dimana e ersquo dan ersquo erdquo maka e erdquo

Relasi diilustrasikan pada gambar 5 Pada ketiga proses tersebut dapat dikombinasikan

menjadi a f Antar a dan e tidak ada relasi maka ditulis a e

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 9: Logical Clock and Synchronization

31 Logical Clocks

Lamport menemukan sebuah mekanisme yang simple untuk mengurutkan happened-

before secara numeris Mekanisme ini disebut logical clock Lamport logical clock adalah

software counter yang bertambah secara monoton dimana nilainya tidak perlu menanggung

hubungan tertentu ke suatu physical clock Setiap proses pi tetap berada pada logical clock

masing-masing Timestamp dari suatu event e pada pi disini dinotasikan dengan Li(e) dan L(e)

Untuk notasi dalam suatu prose adalah sebagai berikut

LC 1 Li bertambah sebelum setiap event muncul pada proses pi Li = Li + 1

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 (mt) sebuah proses pj menghitung L j = max(Lj t) dan lalu

mengaplikasikan LC1 sebelum melakukan timestamp untuk event receive(m)

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 10: Logical Clock and Synchronization

32 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) lt(Tj j) jika hanya jika salah Ti

ltTj atau Ti = Tj dan i ltj 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

33 Vector clocks

Mattern [1989] dan Fidge [1991] mengembangkan vector clocks untuk mengatasi

kekurangan pada Lamport clocks fakta bahwa dari L(e) lt L(ersquo) kita tidak dapat menyimpulkan

bahwa e ersquo 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

VC1 Inisialisasi Vi [j] = 0 for ij = 12hellip N

VC2 sesaat sebelum pi men-timestamp sebuah event diset Vi[i] = Vi[i] + 1

VC3 pi memasukan nilai t = Vi pada setiap message yang diirim

VC4 Ketika pi menarima sebuah timestamp t pada sebuah sebuah message pi di set Vi[j] =

max(Vi[j] t[j]) for j = 12hellipN

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001

Page 11: Logical Clock and Synchronization

DAFTAR PUSTAKA

Herusetyo Arif Time and Global State UGM Publisher Yogyakarta

2006

L Lamport Time Clocks And The Ordering Of Events In A Distributed

System Computer Science Laboratory SRI International Massachusett

1990

Coulouris George Distributed System Concept and Design Addison

Press Wesley 2001