Sunday, April 24, 2005

mendeteksi kegagalan

Ini sekedar tulisan ringan saja seputar implementasi fail-over pada komputer.

Dasarnya sederhana, supaya lebih andal, dua komputer dikonfigurasi untuk menjalankan tugas yang sama, satu sebagai primary, satunya lagi sebagai backup. Jika primary gagal/crash/dead/stoned/ex-computer, backup bisa mengambil alih, dan dan semua komunikasi dengan pihak luar (client) dilanjutkan oleh backup.

Bagaimana hal ini dilakukan, bisa dibahas pada artikel lainnya. Tulisan ini hanya khusus fokus pada, bagaimana backup bisa mengetahui bahwa primary sudah crash. Istilah standarnya, failure detection, dan komponen yang bertanggung jawab tentang hal ini disebut failure detectors.

Prinsip dasarnya menggunakan heartbeat, yaitu message yang dikirim secara periodik oleh primary ke backup. Ketika backup tidak menerima heartbeat dari primary, backup dapat mengasumsikan primary crash, dan dapat diambil alih. Selesai? Belum. Mungkin saja heartbeat tersebut tidak diterima karena berbagai hal lainnya, bukan karena primary crash. Jika backup mengambil alih komputasi padahal primary masih hidup, bisa terjadi keduanya berebut melayani user, dan justru berefek fatal.

Heartbeat dapat hilang karena misalnya primary sangat sibuk melayani user, sehingga tidak sempat mengirimkan pesan heartbeat ke backup. Atau, jaringan yang menghubungkan primary dan backup sangat padat, sehingga pengiriman heartbeat tertunda. Atau network adaptor di primary atau backup rusak.

Ada solusi untuk menghindari masalah di atas dengan cara menggunakan prioritas dan network khusus untuk menangani heartbeat, misalnya dengan menggunakan kabel serial, dan menggunakan proses dengan prioritas tinggi untuk menghandle heartbeat. Namun hal ini juga menimbulkan masalah baru, karena model ini tidak dapat memberikan indikasi kegagalan yang terjadi pada network yang digunakan untuk lalulintas data.

Umumnya, implementasi sistem nyata menggunakan berbagai media untuk mendeteksi kegagalan ini. Yaitu, heartbeat dikirim melalui network biasa, dan juga melalui network khusus. Kemudian backup menganalisis sinyal-sinyal yang diterima untuk menyimpulkan apakah primary sudah dead atau belum.

Teori

Dalam literatur, ada banyak tulisan yang membahas mengenai failure detection ini. Konsep ini mulai diformalkan oleh Chandra dan Toueg pada tahun 1991, dengan mendefinisikan abstraksi failure detectors yang didefinisikan berdasarkan kemampuannya mendeteksi secara lengkap (completeness property) kegagalan yang terjadi, serta keakuratannya (accuracy property) dalam melakukan kesalahan mendeteksi kegagalan. Dalam konsep Chandra dan Toueg ini, sebuah failure detector dapat saja melakukan kesalahan dalam mendeteksi dan juga dapat juga tidak berhasil mendeteksi kegagalan, dan semua failure detectors dapat dikelompokkan ke dalam kelas-kelas berdasarkan parameter kelengkapan dan keakuratan ini.

stop dulu. diterusin nanti-nanti kl sempat.

Friday, April 22, 2005

Asal kata log

Dalam dunia komputer, kita sering menemukan kalimat yang berisi kata log: login, logout, weblog, jeblog, ..ups, sorry, kata terakhir gak berhubungan. Arti umumnya berkaitan seputar catatan atau record terhadap sekumpulan event yang terjadi. Login dan logout, bisa ditebak, awalnya karena seseorang yang akan menggunakan sistem komputer mulai di catat (in), dan selesai (out).

Konon, istilah 'log' ini awalnya dari navigasi kapal di laut. Jaman dahulu, sekitar abad 17-an, para pelaut selalu mencatat kecepatan kapalnya secara periodik. Tujuannya, jika satu saat mereka tidak dapat melihat daratan yang dijadikan patokan berlayar, mereka bisa menghitung perkiraan lokasi kapal berdasarkan catatan tersebut. Untuk menghitung kecepatan, mereka melemparkan sepotong kayu (log) yang diikat dengan tali ke laut. Tali ini memiliki simpul-simpul (knot) yang berjarak sama, dan seseorang yang memegang tali tersebut dapat menghitung ada berapa jumlah simpul yang dilewati dalam jangka waktu tertentu. Jumlah simpul inilah yang dijadikan ukuran kecepatan, dan disimpan pada buku catatan yang disebut sebagai, yup, log-book.

Kemudian, awal abad ke-20, kata log juga digunakan untuk catatan penerbangan (saat itu masih pakai balon udara), meski kali ini sama sekali tidak menggunakan kayu untuk menghitung kecepatannya.