Rabu, 17 Desember 2014

Fault Tolerance, Transaction & Skema Dari Replication Sistem Terdistribusi

Fault Tolerance

Salah satu tujuan dalam membangun sebuah system terdistribusi adalah memungkinkan untuk melakukan improvisasi terhadap kehandalan sistem. Ini dilakukan karena setiap system pasti akan menemukan kesalahan atau gangguan. Sehingga perlu untuk dibuat pencegahan atau solusi untuk mengatasi masalah tersebut. Availability: kalau mesin mati (down), sistem tetap harus berjalan dengan jumlah layananan yang tersisa. Dalam suatu sistem terdistribusi komponen dalam system yang sangat vital terutama pada resources (critical resources) berjumlah seminimal mungkin. Yang dimaksud dengan critical resources adalah komponen dalam system yang harus ada untuk menjalankan sistem terdistribusi.
Secara umum, ada dua jenis fault tolerant, yaitu fault tolerant secara hardware dan secara software. Untuk itu, masing – masing Software dan Hardware harus di replikasi. Sehingga kalau terjadi kegagalan / error maka yang lain akan menangani. Data dalam sistem terdistribusi tidak boleh hilang, oleh karena itu copy dari data atau resource lainnya tersebut disimpan secara redundan pada server lain, tapi tetap harus dijaga konsistensi datanya. Hal ini memang berkaitan dengan replikasi. Dengan membuat system terdistribusi yang fault tolerance maka Sistem harus bisa mendeteksi kegagalan dan melakukan tindakan dasar sebagai berikut:
1.Mask the fault (menutupi kegagalan): tugas harus dapat dilanjutkan dengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau informasi.
2.Fail Gracefully: membuat suatu antisipasi terhadap suatu kegagalan ke suatu prosedur yang telah di rencanakan dan memungkinkan untuk menghentikan proses dalam waktu yang singkat tanpa menghilangkan  informasi atau data.

Data Transaction

Adalah transaksi pengiriman ( Send – Request ) ke sebuah Server-Host  dengan alamat IP / IP adress  dengan Format ( Protokol ) Server-Host tersebut dengan harapan Server-Host melakukan apa yang pengirim Inginkan dalam hal ini Server-Host atau Client. Sebagai Contoh :    Server – Host A atau Client mengirim sebuah data kepada Server – Host B, Pengirim menginginkan  sebuah data xxx agar di proses oleh Server-Host – B lalu memberikan informasi dsb ke pada Pengirim dalam hal ini ( Server – Host A atau Client ). Pada contoh di atas tentu pengirim harus tahu kemana akan di kirim, yah itulah butuhnya sebuah ip address, dengan ip adress tentu data yang kita kirim akan sampai ke tujuan yang kita inginkan, pengiriman data dengan TCP/IP adalah baik,  karena dengan konsep protokol TCP/IP data yang kita kirim pasti sampai kepada tujuan yang tepat, keculi memakai protokol UDP alias broadcast.

Replication Sistem Terdistribusi




Replicate atau replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database ke database lain dan melaksanakan sinkronisasi antardatabase sehingga konsistensi data dapat terjamin. Jadi, dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai dengan penggunaannya, seperti pemrosesan transaksi online dan DSS (Decision Support System) atau pemrosesan database terdistribusi melalui beberapa server.
Dengan menggunakan teknik ini, kehandalan database akan lebih terjamin karena data dapat didisitribusikan ke server-server yang lain. Misalnya seperti transaksi yang terjadi pada Bank, apa yang akan terjadi jika Bank hanya memiliki sebuah database server, apabila pada database server tersebut terjadi kerusakan atau padamnya arus listrik? Pasti transaksi perbankan akan berhenti total. Hal ini tidak demikian terjadi jika kita menggunakan database terdistribusi yang pada setiap transaksi juga direplikasi ke server yang lain.
Terdapat beberapa jenis replikasi akan tetapi yang akan kita bahas di sini hanya sebuah teknik replikasi sederhana saja. Replikasi dapat dilakukan dengan jumlah komputer minimal dua buah, satu buah master dan satu buah slave. Komputer slave akan mengkopi secara otomatis setiap perubahan database yang terjadi pada komputer master.Cara membuat replikasi MySQL di sini hanya bisa digunakan untuk MySQL versi 5.1.x atau di bawah ver si 5.2.x. Jika anda menggunakan MySQL versi yang lebih baru, ada kemungkinan gagal.
Tujuan dasar dari replikasi adalah menjaga data suatu server yang disinkronkan dengan server yang lain. Banyak slave yang dapat dihubungkan ke master tunggal, dan pada suatu waktu slave bisa dipromosikan sebagai master. Replikasi dapat mengatur master dan slavedengan banyak topologi yang berbeda. Replikasi dapat meniru basis data seluruh server, mereplika basis data tertentu, atau bahkan hanya memilih tabel yang ingin replikasi.

Model Sinkronisasi dan Asinkronisasi Pada Sistem Terdistribusi

Sinkronisasi adalah adalah satu kunci kerja dari komunikasi data. Transmiter mengirimkan pesan 1 bit pada satu saat melalui medium ke receiver. Receiver harus menandai awal dan akhir blok dari bit, juga harus diketahui durasi untuk masing-masing bit sehingga dapat sample lajur dari timing untuk membaca masing-masing bit (merupakan tugas dari timming).
Contoh : jika ada perbedaan misalkan 1 % (clock receiver 1% lebih lambat atau lebih cepat daripada clock transmitter), maka pada pensamplingan pertama akan meleset dari tengah bit dan setelah jumlah waktu tertentu, akan mengalami error.
Sinkronisasi di bagi menjadi 2, yaitu :

 1. Asynchronous
          Untuk mencegah problem timming dengan tidak mengirim aliran bit panjang yang tidak putus putusnya. Bit-bit dikirim per-karakter pada setiap waktu yang mana masing-masing karakter mempunyai panjang 5-8 bit. Timing atau synchronisasi harus dipertahankan antara tiap karakter; receiver mempunyai kesempatan untuk men-synchron-kan awal dari tiap karakter baru



Keterangan gambar 4.1 :

·  Idle (biasanya =‟1‟) jika tidak ada karakter yang ditransmisikan dan start bit = “0”, sedangkan jumlah karakter yang ditransmisikan antara 5-8 bit.
·   Bit paritas digunakan untuk mendeteksi error, diatur oleh pengirim agar jumlah total „1‟ termasuk bit paritas adalah genap, dan stop bit = „1‟, yang panjangnya 1; 1,5; 2 kali durasi bit pada umumnya
·  Komunikasi asinkron adalah sederhana dan murah, tetapi memerlukan overhead dari 2 ke 3 bit per karakter, prosentasi overhead dapat dikurangi dengan mengirimkan blok-blok bit besar antara bit start dan bit stop

2. Synchronous / timing



       Lebih efisien, karena blok-blok karakter / bit-bit ditransmisikan tanpa kode start dan stop, tetapi tiap blok blok dimulai dengan suatu pola preamble bit dan diakhiri dengan pola postamble bit. Pola-pola ini adalah kontrol informasi.Waktu kedatangan dan keberangkatan untuk masing-masing bit dapat diramalkan. Frame adalah data plus kontrol informasi. Format framenya tergantung dari metode transmisi, yaitu:

1. Transmisi orientasi karakter

·   Blok-blok data dikerjakan sebagai barisan karakter (biasanya 8 bit karakter), frame dimulai dengan 1 atau lebih karakter sinkronisasi. Karakter sinkronisasi biasanya disebut dengan “SYN” yang merupakan bit pattern unik sinyal yang diterima penerima permulaan dari blok.
· Penerima kemudian merubah blok-blok data yang datang oleh karakter SYN dan menerima data sampai karakter postamble (informasi yang terletak pada bagian belakang blok data yang dikirimkan) terlihat dan begitu seterusnya

2. Transmisi bit.

· Blok-blok data dikerjakan sebagai barisan bit-bit, tidak ada data maupun informasi kontrol diperlukan untuk menginter-prestasikan dalam satuan karakter 8 bit
Perbandingan asinkron dan sinkron
·   Untuk blok-blok data yang cukup besar, transmisi sinkronisasi jauh lebih efisien daripada asinkron. Transmisi asinkron memerlukan overhead 20 % atau lebih.
·   Bila menggunakan transmisi sinkron biasanya lebih kecil dari 1000 bit, yang mengandung 48 bit kontrol informasi (termasuk flag), maka untuk pesan 1000 bit, overheadnya adalah 48 / 1048 X 100% = 4.6%
Urutan pengerjaan sinkronisasi yaitu :
1.                 Sinkronisasi bit: Ditandai awal & akhir untuk masing-masing bit
2.                 Sinkronisasi karakter / kata: Ditandai awal dan akhir untuk masing-masing karakter / satuan kecil lainnya dari data
3.                 Sinkronisasi blok / pesan :Ditandai awal dan akhir dari satuan besar data. Dan untuk pesan yang besar, dibagi-bagi menjadi beberapa blok kemudian baru dikirimkan pengurutan blok-blok yang telah dibagi tersebut adalah tugas dari timming. Sedangkan pengaturan level sinyal adalah tugas dari sintax dan untuk melihat arti dari pesan adalah tugas dari semantik.