- 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
- Semua memiliki cadangan, jadi tidak ada komponen yang bergantung kepada satu alat saja
- Memiliki kemampuan memisahkan sistem yang gagal/rusak
- Bisa mencegah efek kerusakan supaya tidak menjalar ke komponen lain
- 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 :
- Atomicity, semua berhasil atau semua gagal
- Consistency, transaksi mempertahankan konsistensi database
- Isolation, transaksi terisolasi satu dengan yang lain
- Durability, setelah commit update harus survive di database
Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
- Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system)
- 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 :
- Lost update problem, ketika dua user mengupdate dua buah data yang sama
- Uncommited dependency problem, ketika user yang satu meretrieve data dan user yang lain merollback data tersebut
- 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
- Exclusive Lock (Xlock) à write lock
- Shared Lock (Slock) à read lock
Jadi cara kerjanya :
- Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
- 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 :
- Deteksi dan pecahkan deadlock
- Deteksi deadlock à wait-for-graph
- Pecahkan deadlock à salah satu dirollback paksa
- 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 :
- 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.
- Aplikasi transaksi online terpisah dari aplikasi pembacaan seperti proses analisis database secara online, data smarts atau data warehouse.
- 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
- Data dapat ditampilkan seperti layaknya melihat data tersebut dengan menggunakan aplikasi berbasis Web
- Meningkatkan kinerja pembacaan
- 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.
- 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:
- Mengcopy dan mendistribusikan data dari satu atau lebih lokasi
- Mendistribusikan hasil copy data berdasarkan jadwal
- Mendistribusikan perubahan data ke server lain
- Memungkinkan beberapa pengguna di beberapa lokasi untuk melakukan perubahan dan kemudian menggabungkan data yang telah dimodifikasi
- Membangun aplikasi data yang menggunakan perlengkapan online maupun offline
- Membangun aplikasi Web sehingga pengguna dapat melihat volume data yang besar.
Tidak ada komentar:
Posting Komentar