Cassandra Architekstur & Faktor Replikasi
Cassandra dirancang untuk ditangani Big data. CassandraFitur utama adalah menyimpan data di banyak node tanpa satu titik kegagalan pun.
Alasannya seperti ini CassandraArsitekturnya adalah kegagalan perangkat keras dapat terjadi kapan saja. Setiap node dapat mati. Jika terjadi kegagalan, data yang disimpan di node lain dapat digunakan. Oleh karena itu, Cassandra dirancang dengan arsitektur terdistribusi.
Cassandra menyimpan data pada node-node yang berbeda dengan arsitektur mode terdistribusi peer-to-peer.
Semua node bertukar informasi satu sama lain menggunakan Protokol gosip. Gosip adalah sebuah protokol Cassandra dimana node dapat berkomunikasi satu sama lain.
Komponen dari Cassandra Architekstur
Ada beberapa komponen dalam Cassandra Architekstur:
Node
Node merupakan tempat penyimpanan data. Ini adalah komponen dasar dari Cassandra.
Data Center
Kumpulan node disebut pusat data. Banyak node yang dikategorikan sebagai pusat data.
Cluster
Klaster adalah kumpulan banyak pusat data.
Log Komit
Setiap operasi tulis ditulis ke Commit Log. Log komit digunakan untuk pemulihan kerusakan.
Tabel Mem
Setelah data ditulis di log Commit, data ditulis di Mem-table. Data ditulis dalam tabel Mem untuk sementara.
SSTabel
Ketika Mem-table mencapai ambang batas tertentu, data dipindahkan ke file disk SSTable.
Replikasi Data di Cassandra
Karena masalah perangkat keras dapat terjadi atau link dapat terputus sewaktu-waktu selama proses data, maka diperlukan solusi untuk menyediakan cadangan ketika masalah tersebut terjadi. Jadi data direplikasi untuk memastikan tidak ada satu titik kegagalan pun.
Cassandra menempatkan replika data pada node berbeda berdasarkan dua faktor ini.
- Tempat menempatkan replika berikutnya ditentukan oleh Strategi Replikasi.
- Sedangkan jumlah replika yang ditempatkan pada node berbeda ditentukan oleh Faktor Replikasi.
Faktor replikasi satu berarti hanya ada satu salinan data, sedangkan faktor replikasi tiga berarti ada tiga salinan data pada tiga node berbeda.
Untuk memastikan tidak ada satu titik kegagalan pun, faktor replikasi harus tiga.
Ada dua jenis strategi replikasi Cassandra.
Strategi Sederhana di Cassandra
Strategi Sederhana digunakan saat Anda hanya memiliki satu pusat data. SimpleStrategy menempatkan replika pertama pada node yang dipilih oleh pemartisi. Setelah itu, replika yang tersisa ditempatkan searah jarum jam di ring Node.
Berikut adalah representasi gambar dari SimpleStrategy:
Strategi Topologi Jaringan di Cassandra
Strategi Topologi Jaringan digunakan saat Anda memiliki lebih dari dua pusat data. Dalam NetworkTopologyStrategy, replika ditetapkan untuk setiap pusat data secara terpisah. NetworkTopologyStrategy menempatkan replika searah jarum jam di dalam ring hingga mencapai node pertama di rak lain. Strategi ini mencoba menempatkan replika di rak yang berbeda di pusat data yang sama.
Hal ini disebabkan terkadang kegagalan atau masalah dapat terjadi pada rak. Kemudian replika pada node lain dapat menyediakan data.
Berikut adalah representasi bergambar strategi topologi Jaringan:
Menulis Operamasuk Cassandra
Koordinator mengirimkan permintaan tulis ke replika. Jika semua replika sudah habis, mereka akan menerima permintaan tulis terlepas dari tingkat konsistensinya.
Tingkat konsistensi menentukan berapa banyak node yang akan merespons kembali dengan pengakuan keberhasilan.
Node akan merespon kembali dengan pengakuan sukses jika data berhasil ditulis ke log komit dan memTable.
Misalnya, dalam satu pusat data dengan faktor replikasi sama dengan tiga, tiga replika akan menerima permintaan tulis. Jika tingkat konsistensinya satu, hanya satu replika yang akan merespons kembali dengan pengakuan keberhasilan, dan dua replika lainnya akan tetap tidak aktif.
Misalkan jika dua replika yang tersisa kehilangan data karena node down atau masalah lainnya, Cassandra akan membuat baris konsisten dengan mekanisme perbaikan bawaan di Cassandra.
Di sini dijelaskan bagaimana proses penulisan terjadi Cassandra,
- Ketika permintaan tulis datang ke node, pertama-tama, ia mencatat log komit.
- Kemudian Cassandra menulis data di tabel mem. Data yang ditulis dalam tabel mem pada setiap permintaan tulis juga ditulis dalam log komit secara terpisah. Mem-table adalah data yang disimpan sementara di memori sementara log Commit mencatat catatan transaksi untuk tujuan pencadangan.
- Ketika mem-table penuh, data dipindahkan ke file data SSTable.
Baca Operamasuk Cassandra
Ada tiga jenis permintaan baca yang dikirimkan koordinator ke replika.
- Permintaan langsung
- Permintaan intisari
- Baca permintaan perbaikan
Koordinator mengirimkan permintaan langsung ke salah satu replika. Setelah itu, koordinator mengirimkan permintaan intisari ke jumlah replika yang ditentukan oleh tingkat konsistensi dan memeriksa apakah data yang dikembalikan merupakan data yang diperbarui.
Setelah itu, koordinator mengirimkan permintaan intisari ke semua replika yang tersisa. Jika ada node yang memberikan nilai kedaluwarsa, permintaan perbaikan pembacaan latar belakang akan memperbarui data tersebut. Proses ini disebut mekanisme perbaikan baca.
Ringkasan
- Tutorial ini menjelaskan Cassandra arsitektur internal, dan bagaimana Cassandra mereplikasi, menulis dan membaca data pada tahapan yang berbeda.
- Juga, di sini dijelaskan tentang caranya Cassandra menjaga tingkat konsistensi sepanjang proses.
- Komponen dari Cassandra Architekstur: Node, Pusat Data, Cluster, Log Komit, Tabel Mem, SSTable
- Faktor replikasi satu berarti hanya ada satu salinan data, sedangkan faktor replikasi tiga berarti ada tiga salinan data pada tiga node berbeda.
- SimpleStrategy digunakan ketika Anda hanya memiliki satu pusat data.
- NetworkTopologyStrategy digunakan ketika Anda memiliki lebih dari dua pusat data.