Selasa, 12 Juni 2012

Distributed Database a.k.a Database Terdistribusi


Wah udah berapa lama ya ga pernah posting artikel lagi. Kali ini aku pengen flashback tentang Tugas Akhir (TA) atau bahasa kerennya Skripsi. itung-itung merefresh ilmu lama biar ga hilang ama tuntutan kerjaan. hhehe... Tema yang aku ambil waktu TA dulu bertumpu pada sistem Distribusi Database

Mungkin temen2 sudah banyak yang pernah denger atau bahkan pake sistem ini buat Tugas Akhirnya.

langsung aja deh. posting pertama ini tentang apa itu Database Terdistribusi a.k.a Distributed Database

   Database terdistribusi adalah sebuah database  logic  yang tersimpan secara fisik pada beberapa komputer yang terdapat pada beberapa lokasi dengan terkoneksi pada sebuah jaringan. Jaringan tersebut harus bisa menyediakan akses bagi user untuk melakukan sharing data. Terdapat dua macam sifat dari database terdistribusi yaitu Heterogenous dan Homogenous. Homogenous artinya suatu database terdistribusi dimana data di distribusikan pada beberapa komputer dengan menggunakan DBMS(database management system) yang sama. DBMS digunakan pada database terdistribusi  untuk melakukan koordinasi data pada beberapa node. Sedangkan Heterogenous  adalah kebalikan dari Homogenous  dimana data di sebarkan dengan menggunakan DBMS yang berbeda.  
    Tujuan utama dari database terdistribusi menyediakan kemudahan untuk mengakses data bagi user pada banyak lokasi yang berjauhan. Untuk mencapai tujuan ini system dari database terdistribusi harus menyediakan apa yang di sebut  location transparency  yang artinya seorang user dalam mengakses data tidak akan terbatas pada tempat, di manapun dia berada user dapat mengakases data. Tujuan kedua dari database terdistribusi adalah  local autonomy, yaitu kemampuan untuk mengatur database local dan mengoperasikannya secara sendiri  –  sendiri jika terjadi error atau kerusakan pada koneksi antar komputer.  
  Ada dua macam teknologi yang di gunakan untuk membangun sebuah database terditribusi. Yang pertama adalah synchronous distributed database technology dimana data yang terhubung pada suatu jaringan akan selalu ter-update sehingga user pada beberapa  tempat dapat mengakses data. Sedangkan teknologi yang lain yaitu  asynchronous distributed database technology  di mana system akan menyediakan suatu kopi dari replikasi data pada beberapa node sehingga local server dapat mengakses data tanpa harus keluar dari jaringan lokal. Metode yang biasa di gunakan yaitu  Replication  serta  circular Replication. 

  • Replikasi database 

Adapun salah satu cara untuk mendistribusikan database adalah dengan replikasi.
Ada 5 keuntungan dari replikasi data yaitu :
1.   Reliability jika sebuah sistem yang menyimpan suatu database mengalami kerusakan maka sistem lain dapat menemukan kopi dari database yang di maksud pada node yang lain yang tidak mengalami kerusakan system karena database di simpan pada beberapa node.
2.   Fast response setiap situs mempunyai kopi dari database sehingga proses query data dapat berjalan lebih cepat.
3.   Node decoupling setiap transaksi data bisa di proses tanpa koordinasi antar jaringan sehingga jika sebuah node sibuk atau mengalami kesalahan maka akan ada sistem tersendiri yang menangani koordinas antar data. 
4.  Reduced network trafic at prime time kemampuan sistem untuk memindahkan transaksi database pada jaringan yang sedang tidak sibuk atau berfungsi dengan tidak sebagaimana mestinya.


  • Circular replication mengatasi kelemahan dalam replikasi data. Bila dalam replikasi biasa replikasi data hanya berjalan pada satu arah, maka pada circular replication replikasi data akan berlangsung secara circular .

Dalam Circular Replication, juga di sebut replikasi multi master, replikasi data tidak hanya berjalan satu arah, tapi ke semua simpul sehingga database pada semua simpul akan tetap sama. Tapi replikasi tidak akan terjadi pada simpul yang melakukan replikasi itu sendiri, hal ini di tangani oleh sintaks ‘replicate-same-server = 0’ pada file konfigurasi mysql. 

Hal – hal yang penting dalam pengaturan circular replication :
•  Server-id : pada masing – masing simpul, server-id harus unik
•  Replicate-do-db : bagi server slave perintah ini  digunakan untuk mendapatkan database yang di replikasi
•  Binlog-do-db  : bagi master perintah ini di gunakan untuk  mengirim database yang di replikasikan pada slave.
•  replicate-same-server-id : di gunakan bagi semua node sebagai tanda untuk tidak mereplikasi database pada diri 
    mereka sendiri
•  auto_increment_increment : mengontrol nilai iterasi pada setiap pelaksanaan nilai AUTO_INCREMENT
•  auto_increment_offset : nilai awal dari nilai kolom  AUTO_INCREMENT
•  master-host : Nomor IP dari  master
•  master-user : user yang di buat pada master yang di gunakan oleh slave untuk melakukan replikasi
•  master-passsword : password yang mengijinkan slave untuk melakukan replikasi data.


Hmmmm... kira-kira seperti itulah gambaran dasar dari sistem Database Terdistribusi. Yang menjadi tantangan adalah ketika salah satu sistem down, bagaimana sistem tersebut  dapat saling menggantikan atau membackup database yang sedang down tanpa mennyebabkan duplikasi data yang sama.


Sekian dulu teman-teman semoga artikel ini bisa bermanfaat buat kita semua.