Senin, 22 Desember 2014

Fault Tolerant, Data Transaction dan Replication



  • Fault Tolerant
Fault Tolerant adalah feature yang memungkinkan suatu sistem tetap berjalan normal meskipun ada komponen yang rusak pada salah satu komponennya. Fault tolerant juga dipakai dalam transmisi data sehingga meskipun ada bebarapa data yang gagal diterima, pesan dapat diterima secara utuh.

Dalam storage kita mengenail RAID di mana hardisk dikonfigurasi sedemikian rupa sehingga jika ada hardisk yang rusak, maka data dapat diambil dari hardisk yang masih berfungsi normal. Fault-tolerant berhubungan dengan sistem yang mempunyai high-availability yang tinggi. System yang fault-tolerant mempunyai karakteristik
  1. Semua memiliki cadangan, jadi tidak ada komponen yang bergantung kepada satu alat saja
  2. Memiliki kemampuan memisahkan sistem yang gagal/rusak
  3. Bisa mencegah efek kerusakan supaya tidak menjalar ke komponen lain
  4. Kemampuan untuk berpindah ke komponen backup, dan kemudian kembali lagi ke komponen utama setelah sistem utama diperbaiki

  • Transaksi Data

Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun lojik recovery yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan,seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan. Ada empat elemen dalam transaksi yang biasa disingkat ACID, yaitu :

  1. Atomicity,  semua berhasil atau semua gagal
  2. Consistency,  transaksi mempertahankan konsistensi database
  3. Isolation,  transaksi terisolasi satu dengan yang lain
  4. Durability,  setelah commit update harus survive di database

Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
  1. Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system)
  2. Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo

Untuk lojik recovery atau system recovery database dilakukan ketika terjadi kegagalan media, kegagalan system atau kesalahan pada transaksi. Sistem recovery menggunakan fungsi rollback dan checkpoint. Checkpoint adalah interval tertentu pada perjalanan transaksi basis data yang menyimpan keadaan basis data saat itu. Checkpoint dapat dilakukan untuk merecovery database secara backward (undo) maupun forward (redo).

Sedangkan concurrency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan. Pada umumnya terdapat 3 masalah utama pada concurrency :

  1. Lost update problem, ketika dua user mengupdate dua buah data yang sama
  2. Uncommited dependency problem, ketika user yang satu meretrieve data dan user yang lain merollback data tersebut
  3. Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut

Untuk menangani masalah tersebut, dilakukan proses locking, jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock. Ada dua jenis lock yaitu 

  1. Exclusive Lock (Xlock) à write lock
  2. Shared Lock (Slock) à read lock



Jadi cara kerjanya :
  1. Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
  2. Jika transaksi A memegang Slock pada record R maka :

o   Permintaan Xlock transaksi lain pada R ditolak
o   Permintaan Slock transaksi lain pada R diterima
Tapi, ada satu masalah yang dapat terjadi ketika melakukan proses locking ini, yaitu deadlock. Yaitu, situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai. Cara penanganannya adalah :

  1. Deteksi dan pecahkan deadlock
  2. Deteksi deadlock à wait-for-graph
  3. Pecahkan deadlock à salah satu dirollback paksa
  4. Ostrich Algorithm  à diabaikan
  • Replikasi

Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin. 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 (Desiscion Support System) atau pemrosessan database terdistribusi melalui beberapa server.

Keuntungan replikasi tergantung dari jenis replikasi tetapi pada umumnya replikasi mendukung ketersediaan data setiap waktu dan dimanapun diperlukan. Adapun keuntungan lainnya adalah :

  1. Memungkinkan beberapa lokasi menyimpan data yang sama. Hal ini sangat berguna pada saat lokasi-lokasi tersebut membutuhkan data yang sama atau memerlukan server yang terpisah dalam pembuatan aplikasi laporan.
  2. Aplikasi transaksi online terpisah dari aplikasi pembacaan seperti proses analisis database secara online, data smarts atau data warehouse.
  3. Memungkinkan otonomi yang besar. Pengguna dapat bekerja dengan meng-copy data pada saat tidak terkoneksi kemudian melakukan perubahan untuk dibuat database baru pada saat terkoneksi
  4. Data dapat ditampilkan seperti layaknya melihat data tersebut dengan menggunakan aplikasi berbasis Web
  5. Meningkatkan kinerja pembacaan
  6. Membawa data mendekati lokasi individu atau kelompok pengguna. Hal ini akan membantu mengurangi masalah karena modifikasi data dan pemrosesan query yang dilakukan oleh banyak pengguna karena data dapat didistribusikan melalui jaringan dan data dapat dibagi berdasarkan kebutuhan masing-masing unit atau pengguna.
  7. Penggunaan replikasi sebagai bagian dari strategi standby server.

Replikasi dapat digunakan apabila sebuah organisasi atau perusahaan didukung oleh hardware dan aplikasi sofware dalam sebuah sistem yang terdistribusi. Aplikasi yang berbeda mempunyai kebutuhan yang berbeda untuk otonomi dan konsistensi data. Replikasi diperlukan dalam sistem terdistibusi apabila berikut ini:

  1. Mengcopy dan mendistribusikan data dari satu atau lebih lokasi
  2. Mendistribusikan hasil copy data berdasarkan jadwal
  3. Mendistribusikan perubahan data ke server lain
  4. Memungkinkan beberapa pengguna di beberapa lokasi untuk melakukan perubahan dan kemudian menggabungkan data yang telah dimodifikasi
  5. Membangun aplikasi data yang menggunakan perlengkapan online maupun offline
  6. Membangun aplikasi Web sehingga pengguna dapat melihat volume data yang besar.


Tidak ada komentar:

Posting Komentar