Cassandra, Open Source Database Management

cassandraSetelah 3 tahun, akhirnya ada ide juga untuk mulai menulis, dan akhirnya memilih Cassandra untuk saya bahas di tulisan ini, dan rangkaian tulisan kedepan. Cassandra apa itu Cassandra, ini saya bukan membahas nama salah satu band indonesia atau telenovela jaman-jaman kejayaan telenovela dahulu, Cassandra atau lengkapnya APACHE CASSANDRA adalah salah satu produk open source untuk managemen database terdistibusi untuk mengelola data terstruktur yang dapat berkapasitas sangat besar yang tersebar di banyak tempat . Dasar dari Cassandra adalah sama dengan MongoDB, yaitu berbasis Document Oriented Database , NoSQL,  untuk lebih jelasnya istilah istilah tersebut anda dapat baca di rangkaian tulisan MongoDB disini.

Fitur

Sama dengan MongoDB atau pun konsep database berbasis NoSQL lainnya, Cassandra mengusung keunggulan keunggulan seperti

  • Elastic Scalability,  Karena konsepnya adalah database terdistribusipenambahan kapasitas penyimpanan dapat ditambah sewaktu waktu dan tanpa terikat hardware dan lokasi yang sama, jadi bisa jadi data A di taruh di Indonesia , data lainnya di taruh di negara lain, dengan server yang berbeda baik hardware maupun platformnya.
  • Penyimpanan data yang fleksibel , Cassandra mengakomodasi semua format data yang ada, termasuk: terstruktur, semi-terstruktur, dan tidak terstruktur. Secara dinamis dapat mengakomodasi perubahan struktur data anda sesuai dengan kebutuhan Anda.
  • Distribusi data yang mudah ,Cassandra memberikan fleksibilitas untuk mendistribusikan data mana yang Anda butuhkan dengan mereplikasi data di beberapa pusat data.
  • Menulis cepat ,Cassandra dirancang untuk berjalan pada perangkat keras low end. Ia melakukan menulis  cepat dan dapat menyimpan ratusan terabyte data, tanpa mengorbankan efisiensi membacanya.

Sejarah

Cassandra di rancang pertama kali oleh team developer Facebook  untuk fasilitas inbox search di Facebook, selanjutnya di open source kan sejak Juni 2008, dan masuk dalam project apache foundation sekitar maret 2009.

Arsitektur 

Cassandra di desain awal untuk menghandle Big Data yang terdiri dari banyak titik-titik (node) yang terpisah-pisah dan  saling bekerjasama nyaris tanpa ada kesalahan.

Cassandra memiliki peer-to-peer sistem terdistribusi di seluruh node, dan data didistribusikan di antara semua node dalam sebuah cluster.

Semua node dalam sebuah cluster memainkan peran yang sama. Setiap node independen dan pada saat yang sama saling berhubungan ke node lain.

Setiap node dalam sebuah cluster dapat menerima membaca dan menulis permintaan, terlepas dari mana data sebenarnya terletak di cluster.

Ketika sebuah node performanya turun, membaca permintaan / tulis dapat dilayani dari node lain dalam jaringan.

Replikasi data di Cassandra disebut dengan istilah Gossip Protocol dimana satu atau lebih node dalam sebuah Cluster sebagai replika untuk bagian tertentu dari data. Jika terdeteksi bahwa beberapa node datanya out of date, Cassandra akan mengembalikan nilai terbaru untuk klien. Setelah mendapatkan nilai kembalian terbaru, Cassandra melakukan perbaikan membaca di latar belakang untuk memperbarui nilai-nilai yang out of date.

Gambar berikut menunjukkan bagaimana Cassandra menggunakan replikasi data antara node dalam sebuah cluster untuk memastikan tidak ada satu titik yang mengalami kegagalan.

data_replication

Konsep Replication Antar Node Cassandra

Komponen 

Cassandra mempunyai beberapa komponen utama yaitu :

  • Node : ini adalah server tempat penyimpanan data.
  • Data Center : kumpulan dari beberapa node.
  • Cluster : Kumpulan dari beberapa data center.
  • Commit Log : adalah log dari proses penulisan di Cassandra , yang berfungsi juga sebagai Crash Recovery Mechanism.
  • Mem-Table :  Adalah memory-resident data structure. Setelah menulis dalam commit log , cassandra melakukan penulisan di sini.
  • CQL : Cassandra Query Language , adalah bahasa perintah query di cassandra .

Saat ini Cassandra telah dipakai oleh beberapa situs terkenal antara lain Facebook, Twitter, Cisco, Rackspace, ebay, Twitter, Netflix, dan banyak lagi. Jadi secara implementasi Cassandra relatif teruji.