Cassandra dirancang untuk menangani data besar. Fitur utama Cassandra adalah menyimpan data di banyak node tanpa satu titik kegagalan.
Alasan arsitektur Cassandra semacam ini adalah bahwa kegagalan perangkat keras dapat terjadi kapan saja. Node mana pun bisa turun. Jika terjadi kegagalan, data yang disimpan di node lain dapat digunakan. Karenanya, Cassandra dirancang dengan arsitektur terdistribusi.
Cassandra menyimpan data pada node yang berbeda dengan arsitektur mode terdistribusi peer to peer.
Semua node bertukar informasi satu sama lain menggunakan protokol Gossip . Gosip adalah protokol di Cassandra yang dengannya node dapat berkomunikasi satu sama lain.
Dalam tutorial ini, Anda akan belajar-
- Komponen Cassandra
- Replikasi Data
- Operasi Tulis
- Baca Operasi
Komponen Cassandra
Ada komponen berikut di Cassandra;
- Node
Node adalah tempat penyimpanan data. Ini adalah komponen dasar Cassandra.
- Pusat Data
Kumpulan node disebut pusat data. Banyak node dikategorikan sebagai pusat data.
- Gugus
Cluster adalah kumpulan dari banyak pusat data.
- Log Komit
Setiap operasi tulis ditulis ke Log Komit. Commit log digunakan untuk pemulihan crash.
- Tabel Mem
Setelah data ditulis dalam log Komit, data ditulis dalam tabel Mem. Data ditulis dalam tabel Mem sementara.
- SSTable
Ketika Mem-table mencapai ambang tertentu, data dialihkan ke file disk SSTable.
Replikasi Data
Karena masalah perangkat keras dapat terjadi atau tautan dapat turun kapan saja selama proses data, solusi diperlukan untuk menyediakan cadangan ketika masalah telah terjadi. Jadi data direplikasi untuk memastikan tidak ada satupun titik kegagalan.
Cassandra menempatkan replika data pada node yang berbeda berdasarkan kedua faktor ini.
- Tempat menempatkan replika berikutnya ditentukan oleh Strategi Replikasi .
- Sedangkan jumlah replika yang ditempatkan pada node yang berbeda ditentukan oleh Faktor Replikasi .
Satu faktor replikasi berarti hanya ada satu salinan data sedangkan tiga faktor replikasi berarti ada tiga salinan data pada tiga node yang berbeda.
Untuk memastikan tidak ada satu titik kegagalan, faktor replikasi harus tiga.
Ada dua jenis strategi replikasi di Cassandra.
SimpleStrategy
SimpleStrategy digunakan jika 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 bergambar SimpleStrategy.
NetworkTopologyStrategy
NetworkTopologyStrategy digunakan ketika Anda memiliki lebih dari dua pusat data.
Di NetworkTopologyStrategy, replika ditetapkan untuk setiap pusat data secara terpisah. NetworkTopologyStrategy menempatkan replika searah jarum jam di ring sampai mencapai node pertama di rak lain.
Strategi ini mencoba menempatkan replika di rak yang berbeda di pusat data yang sama. Hal ini disebabkan karena terkadang kegagalan atau masalah dapat terjadi pada rak. Kemudian replika di node lain dapat memberikan data.
Berikut adalah representasi bergambar dari strategi topologi Jaringan
Operasi Tulis
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 merespon kembali dengan pengakuan sukses.
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 konsistensi adalah satu, hanya satu replika akan merespon kembali dengan pengakuan sukses, dan dua sisanya akan tetap tidak aktif.
Misalkan jika sisa dua replika kehilangan data karena node down atau masalah lain, Cassandra akan membuat baris konsisten dengan mekanisme perbaikan built-in di Cassandra.
Di sini dijelaskan, bagaimana proses menulis terjadi di Cassandra,
- Ketika permintaan tulis datang ke node, pertama-tama, ia masuk ke log komit.
- Kemudian Cassandra menulis datanya di mem-table. Data yang ditulis dalam mem-table pada setiap permintaan tulis juga ditulis dalam log komit secara terpisah. Mem-table adalah data yang disimpan sementara di memori sementara log Komit mencatat catatan transaksi untuk tujuan cadangan.
- Ketika mem-table sudah penuh, data dipindahkan ke file data SSTable.
Baca Operasi
Ada tiga jenis permintaan baca yang dikirim 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 tanggal, permintaan perbaikan pembacaan latar belakang akan memperbarui data tersebut. Proses ini disebut mekanisme perbaikan baca.
Ringkasan
Tutorial ini menjelaskan arsitektur internal Cassandra, dan bagaimana Cassandra mereplikasi, menulis, dan membaca data pada tahapan yang berbeda. Juga, di sini dijelaskan tentang bagaimana Cassandra mempertahankan tingkat konsistensi selama proses berlangsung.