Cassandra direka untuk menangani data besar. Ciri utama Cassandra adalah menyimpan data pada pelbagai nod tanpa satu titik kegagalan.
Sebab seni bina Cassandra seperti ini adalah kerana kegagalan perkakasan boleh berlaku pada bila-bila masa. Mana-mana nod boleh turun. Sekiranya berlaku kegagalan data yang tersimpan di simpul lain dapat digunakan. Oleh itu, Cassandra direka dengan seni bina tersebar.
Cassandra menyimpan data pada nod yang berbeza dengan seni bina fesyen yang diedarkan oleh rakan sebaya.
Semua nod bertukar maklumat antara satu sama lain menggunakan protokol Gosip . Gosip adalah protokol di Cassandra di mana node dapat berkomunikasi antara satu sama lain.
Dalam tutorial ini, anda akan belajar-
- Komponen Cassandra
- Replikasi Data
- Tulis Operasi
- Baca Operasi
Komponen Cassandra
Terdapat komponen berikut di Cassandra;
- Node
Node adalah tempat di mana data disimpan. Ia adalah komponen asas Cassandra.
- Pusat data
Kumpulan nod dipanggil pusat data. Banyak nod dikategorikan sebagai pusat data.
- Kluster
Kluster adalah pengumpulan banyak pusat data.
- Komit Log
Setiap operasi tulis ditulis ke Commit Log. Commit log digunakan untuk pemulihan kerosakan.
- Jadual Mem
Setelah data ditulis dalam Commit log, data ditulis dalam Mem-table. Data ditulis dalam Mem-table untuk sementara waktu.
- SSTable
Apabila Mem-table mencapai ambang tertentu, data dialirkan ke fail disk SSTable.
Replikasi Data
Oleh kerana masalah perkakasan dapat terjadi atau pautan dapat dimatikan kapan saja semasa proses data, penyelesaian diperlukan untuk memberikan cadangan ketika masalah tersebut terjadi. Jadi data ditiru untuk memastikan tidak ada titik kegagalan.
Cassandra meletakkan replika data pada nod yang berlainan berdasarkan dua faktor ini.
- Tempat meletakkan replika seterusnya ditentukan oleh Strategi Replikasi .
- Sementara jumlah replika yang diletakkan pada node yang berbeza ditentukan oleh Faktor Replikasi .
Satu faktor Replikasi bermaksud bahawa hanya ada satu salinan data sementara tiga faktor replikasi bermaksud terdapat tiga salinan data pada tiga nod yang berlainan.
Untuk memastikan tidak ada titik kegagalan, faktor replikasi mestilah tiga.
Terdapat dua jenis strategi replikasi di Cassandra.
Strategi Ringkas
SimpleStrategy digunakan apabila anda hanya mempunyai satu pusat data. SimpleStrategy meletakkan replika pertama pada nod yang dipilih oleh pemisah. Selepas itu, replika yang tersisa ditempatkan mengikut arah jam di gelang Node.
Berikut adalah gambaran bergambar dari SimpleStrategy.
Strategi RangkaianTopologi
NetworkTopologyStrategi digunakan apabila anda mempunyai lebih dari dua pusat data.
Dalam NetworkTopologyStrategy, replika ditetapkan untuk setiap pusat data secara berasingan. NetworkTopologyStrategi meletakkan replika mengikut arah pusingan jam di gelang sehingga mencapai simpul pertama di rak lain.
Strategi ini cuba meletakkan replika pada rak yang berlainan di pusat data yang sama. Ini disebabkan oleh alasan bahawa kadangkala kegagalan atau masalah boleh berlaku di rak. Kemudian replika pada nod lain dapat memberikan data.
Berikut adalah gambaran strategi strategi topologi Rangkaian
Tulis Operasi
Penyelaras menghantar permintaan menulis ke replika. Sekiranya semua replika habis, mereka akan menerima permintaan menulis tanpa mengira tahap konsistensinya.
Tahap konsistensi menentukan berapa banyak nod yang akan bertindak balas dengan pengakuan kejayaan.
Node akan bertindak balas dengan pengakuan kejayaan sekiranya data berjaya ditulis ke log komitmen dan memTable.
Sebagai contoh, dalam satu pusat data dengan faktor replikasi sama dengan tiga, tiga replika akan menerima permintaan tulis. Sekiranya tahap konsistensi adalah satu, hanya satu replika yang akan bertindak balas dengan pengakuan kejayaan, dan dua lagi akan tetap tidak aktif.
Andaikan jika dua replika yang tersisa kehilangan data kerana gangguan simpul atau masalah lain, Cassandra akan membuat baris sesuai dengan mekanisme pembaikan terpasang di Cassandra.
Di sini dijelaskan, bagaimana proses menulis berlaku di Cassandra,
- Apabila permintaan tulis masuk ke simpul, pertama sekali, ia memasukkan log komit.
- Kemudian Cassandra menulis data dalam mem-table. Data yang ditulis dalam mem-table pada setiap permintaan tulis juga ditulis dalam log log secara berasingan. Mem-table adalah data yang disimpan sementara dalam memori sementara Commit log mencatat rekod transaksi untuk tujuan sandaran.
- Apabila mem-table penuh, data dialirkan ke fail data SSTable.
Baca Operasi
Terdapat tiga jenis permintaan baca yang dihantar oleh penyelaras ke replika.
- Permintaan langsung
- Permintaan pencernaan
- Baca permintaan pembaikan
Penyelaras menghantar permintaan langsung ke salah satu replika. Selepas itu, koordinator mengirimkan permintaan ringkasan ke bilangan replika yang ditentukan oleh tahap konsistensi dan memeriksa sama ada data yang dikembalikan adalah data yang dikemas kini.
Selepas itu, penyelaras menghantar permintaan ringkasan ke semua replika yang tinggal. Sekiranya ada nod yang memberikan nilai ketinggalan zaman, permintaan pembaikan baca latar akan mengemas kini data tersebut. Proses ini dipanggil mekanisme pembaikan baca.
Ringkasan
Tutorial ini menerangkan seni bina dalaman Cassandra, dan bagaimana Cassandra meniru, menulis dan membaca data pada tahap yang berbeza. Juga, di sini menerangkan bagaimana Cassandra mengekalkan tahap konsistensi sepanjang proses tersebut.