Part 11 — Peer To Peer Architecture
Apache Cassandra Series
- Part 1 — Introduction to Apache Cassandra
- Part 2 — The CAP Theorm
- Part 3 — Query First Approach
- Part 4 — Partitioning, Rings and Tokens
- Part 5 — Replication, Data Centers and Racks
- Part 6 — CQL — Keyspace and Table
- Part 7 — CQL — Consistancy, Inserts and Selects
- Part 8 — CQL — Timestamps, TTLs, Collections and Secondary Indexs
- Part 9 — CQL — UUIDs and Counters
- Part 10 — CQL — Materialized Views
- Part 11 — Peer To Peer Architecture
- Part 12 — Snitch
- Part 13 — Gossip Protocol
- Part 14 — Cassandra Write Path
- Part 15 — Cassandra Read Path
- Part 16 — Compaction
Arsitektur Cassandra
Peer To Peer
Di Cassandra, setiap node memiliki nilai yang sama pentingnya. Ketika client melakukan permintaan, Coordinator Node akan menerima permintaan tersebut dan menentukan di Node mana data harus disimpan sesuai dengan Replication Factor yang telah ditentukan. Perlu diingat bahwa Coordinator Node tidak selalu sama dan bisa berubah-ubah. Saat terjadi Network Partition, kita akan menghadapi situasi seperti yang terlihat pada gambar dibawah ini :
Pada gambar tersebut, terdapat 5 node yang terbagi menjadi dua bagian, yaitu 3 node dan 2 node, karena adanya Network partition. Akibatnya, node di sisi kiri tidak dapat berkomunikasi dengan node di sisi kanan.
Replication Factor diatur ke 3 dan Consistency Level Quorum. Jika sebuah request datang ke Coordinator Node di sisi kiri, request tersebut akan ditulis/dibaca ke 2 node Non Coordinator Node, sehingga masih berhasil karena telah melakukan operasi pada 2 dari 3 node yang ada. Setelah Network Partition berakhir, data akan diperbarui pada node ketiga.
Sedangkan di sisi kanan, tidak dapat dilakukan operasi read/write karena hanya ada 1 non Coordinator Node. Cassandra akan secara cerdas menentukan node mana yang cocok untuk digunakan sebagai Coordinator Node jika terjadi Network Partition.
🔔 Jika anda menyukai artikel ini, silahkan subscribe agar anda bisa mendapatkan notifikasi jika ada artikel baru atau anda bisa melihat artikel yang telah dipublikasikan disini. 🚀
📝 Jika ada pertanyaan atau saran, anda bisa menulisnya di kolom komentar atau mengirim pesan lewat Medium.
Thank you for your support! 🌟