Penjelasan Arsitektur Cassandra: Tutorial Komprehensif
Diterbitkan: 2021-03-10Sejak didirikan di Facebook, Cassandra telah menjadi salah satu proyek Apache paling populer. Ini adalah database open-source, kinerja tinggi, dan terdistribusi yang banyak digunakan dan membuat kehidupan para insinyur perangkat lunak, ilmuwan data, dan pengembang web menjadi lebih mudah.
Pengguna solusi database yang kuat ini termasuk IBM, Facebook, Reddit, eBay, dan Twitter.
Namun, untuk mengenal Cassandra, Anda harus tahu tentang arsitekturnya dan arsitektur Apache Cassandra bisa sedikit rumit untuk dipahami.
Itu sebabnya kami telah membuat panduan pengantar berikut tentang arsitektur Cassandra. Ini akan membuat Anda terbiasa dengan semua konsep arsitektur Cassandra yang diperlukan:
Daftar isi
Dasar-dasar Arsitektur Cassandra
Arsitektur Apache Cassandra tidak memiliki node master atau slave. Sebaliknya, ia memiliki arsitektur seperti cincin di mana node didistribusikan secara logis dalam sebuah cincin. Arsitektur memungkinkan data untuk didistribusikan secara otomatis di semua node. Seperti HDFS, data di Cassandra direplikasi di seluruh node untuk redundansi dan disimpan dalam memori. Ini menggunakan nilai hash dari kunci untuk mendistribusikan data di antara node dalam cluster.
Arsitektur Cassandra memungkinkan sistem berfungsi terlepas dari satu titik kegagalan. Ini berarti jika sebuah cluster memiliki seratus node dan salah satunya gagal, cluster tersebut akan tetap berjalan. Di sisi lain, dengan Hadoop, kegagalan namenode akan menggagalkan seluruh sistem.
Arsitektur Cassandra menawarkan skalabilitas tinggi sehingga sebuah cluster bahkan dapat memiliki ribuan node. Selain itu, Anda dapat menambahkan node baru ke cluster tanpa mengganggu operasinya.
Terlepas dari fitur-fitur yang telah kita bahas di atas, arsitektur Apache Cassandra juga mendukung beberapa pusat data dan memungkinkan replikasi data di seluruh pusat data.
Topologi dan Desain
Arsitektur Cassandra didasarkan pada arsitektur sistem terdistribusi. Versi Cassandra yang paling sederhana dapat berjalan di satu mesin dan bekerja dengan baik dengan pengujian dasar. Satu instance Cassandra disebut node.
Cassandra menawarkan skalabilitas horizontal di mana Anda dapat menambahkan lebih dari satu node sebagai komponen cluster. Ia bekerja dengan arsitektur peer to peer di mana setiap node terhubung ke setiap node lainnya. Setiap node Cassandra melakukan semua operasi database dan server permintaan klien tanpa node master.
Arsitektur terdistribusi peer-to-peer ini memastikan bahwa satu titik kegagalan tidak menyebabkan seluruh sistem gagal. Cluster di Cassandra dapat berkomunikasi satu sama lain untuk berbagai fungsi. Konsep-konsep berikut sangat penting untuk komunikasi semacam itu:
Gosip
Gosip adalah protokol Cassandra yang digunakan node untuk komunikasi peer-to-peer. Ini menginformasikan sebuah node tentang status node lain. Setiap detik, satu node melakukan gosip dengan hingga tiga node lainnya dan setiap pesan gosip mengikuti format dan nomor versi tertentu untuk menjaga komunikasi tetap efisien.
Biji
Setiap node di Cassandra mengonfigurasi daftar seed yang merupakan daftar node lain. Sebuah node benih tidak memiliki tujuan selain bootstrap sebuah node ketika pertama kali bergabung dengan sebuah cluster. Setelah bootstrap, sebuah node tidak memerlukan seed saat memulai ulang. Sebaiknya gunakan dua atau tiga node benih per pusat data Cassandra dan pertahankan agar daftar benih tetap seragam.
Struktur Basis Data
Di Cassandra, data disimpan dalam tabel di mana setiap tabel diatur ke dalam baris dan kolom. Selain itu, tabel di Cassandra dikelompokkan dalam ruang kunci seperti tabel data pelanggan semua dapat dikelompokkan dalam satu ruang kunci sementara tabel transaksi bisnis dapat disimpan di lain.
Setiap tabel memiliki kunci utama yang dibagi menjadi kolom pengelompokan dan kunci partisi. Perhatikan bahwa kolom pengelompokan adalah opsional. Cassandra menggunakan kunci partisi untuk mengindeks data. Semua baris dengan kunci partisi umum merupakan satu partisi data, unit dasar untuk partisi data.
Partisi di Cassandra
Di Cassandra, seorang pembuat partisi mengubah kunci partisi menjadi token. Ada beberapa opsi partisi yang ada di Cassandra di mana Murmur3Partitioner adalah default. Setiap token diberi nilai integer antara -2^63 hingga +2^63-1, dan nama rentang ini adalah rentang token.
Setiap Cassandra memiliki bagian dari kisaran ini dan terutama memiliki data yang terkait dengan jangkauan. Kami menggunakan token untuk menemukan data secara tepat di antara node.
Anda dapat memahami sistem kepemilikan dengan konsep ini: Jika sebuah cluster hanya memiliki satu node, maka node tersebut akan memiliki rentang token yang lengkap. Dengan penambahan lebih banyak node, kepemilikan rentang token akan dibagi sesuai.
Node Virtual
Cassandra menyederhanakan perhitungan token dan tantangan penugasan dengan menggunakan node virtual, juga dikenal sebagai Vnodes.
Ini membagi cluster menjadi banyak node virtual untuk menetapkan token dan setiap node fisik mendapatkan jumlah Vnode yang sama. Jumlah default Vnodes yang dimiliki oleh sebuah node adalah 256. Anda dapat mengaturnya dengan menggunakan properti num_tokens. Saat Anda menambahkan node baru ke cluster, algoritme alokasi token akan mengalokasikan token yang diperlukan dengan menggunakan Vnodes.
Replikasi
Cassandra mereplikasi data yang ada di setiap keyspace dengan faktor replikasi. Satu replika utama data tetap dengan node pemilik token sementara sisanya ditempatkan oleh Cassandra pada node tertentu melalui strategi penempatan replikanya. Perhatikan bahwa semua replika memiliki kepentingan yang sama untuk sebagian besar operasi database.
Dua pengaturan mempengaruhi penempatan replika di Cassandra, yaitu snitch dan strategi replikasi. Snitch menentukan pusat data dan rak tempat sebuah node berada. Mereka bertanggung jawab untuk menginformasikan Cassandra tentang topologi untuk menjaga hal-hal yang efisien.
Strategi replikasi diatur pada tingkat keyspace dan ada dua di antaranya: NetworkTopologyStrategy dan strategi sederhana. Yang pertama adalah rak dan pusat data yang sadar sedangkan yang terakhir tidak.
Teorema CAP
Setiap sistem terdistribusi bekerja berdasarkan teorema CAP. Menurut teorema ini, setiap sistem terdistribusi dengan benar dapat mengirimkan dua dari tiga properti, Konsistensi, Ketersediaan, dan Toleransi partisi.
Di Cassandra, Anda dapat memilih antara ketersediaan dan konsistensi. Ini berarti data bisa sangat konsisten dengan ketersediaan yang lebih rendah atau sangat tersedia dengan konsistensi yang rendah.
Konsep meminta sejumlah pengakuan tertentu disebut konsistensi merdu dan Anda dapat menerapkannya pada tingkat kueri individu.
Proses Tulis
Dalam proses ini, data ditulis ke log komentar pada disk dan kemudian dikirim ke node yang bertanggung jawab sesuai dengan nilai hash.
Setelah itu, node menulis data ke tabel di memori yang disebut memtable dari mana data ditulis ke "sstable" di memori. Selanjutnya, itu akan diperbarui ke tabel yang sebenarnya.
Jika node yang bertanggung jawab sedang down karena suatu alasan, data akan ditulis ke node lain.
Pelajari Lebih Lanjut Tentang Arsitektur Cassandra
Memahami arsitektur Apache Cassandra akan membantu Anda memahami cara kerja solusi ini. Sekarang, Anda juga tahu mengapa Cassandra menonjol dalam kompetisi dan mengapa begitu populer.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang database, Anda dapat melihat sumber daya berikut:
SQL untuk Ilmu Data: Mengapa SQL, Daftar Manfaat & Perintah
20 Pertanyaan & Jawaban Wawancara SQL Paling Umum [Untuk Freshers]
Kursus Online Gratis SQL dengan Sertifikat [2021]
Di sisi lain, jika Anda mencari pengalaman belajar yang dipersonalisasi, kami sarankan untuk mengambil kursus ilmu data. Di upGrad, kami menawarkan Diploma PG dalam Ilmu Data dan Magister Sains dalam Ilmu Data . Kursus-kursus ini akan mengajarkan Anda semua keterampilan yang diperlukan untuk menjadi seorang profesional ilmu data.
Kesimpulan
Jika Anda tertarik untuk mengetahui lebih banyak tentang Program Big Data, lihat Diploma PG kami dalam Spesialisasi Pengembangan Perangkat Lunak dalam program Big Data yang dirancang untuk para profesional yang bekerja dan menyediakan 7+ studi kasus & proyek, mencakup 14 bahasa & alat pemrograman, praktik langsung- pada lokakarya, lebih dari 400 jam pembelajaran yang ketat & bantuan penempatan kerja dengan perusahaan-perusahaan top.
Lihat Kursus Rekayasa Perangkat Lunak kami yang lain di upGrad.