Part 13 — Gossip Protocol
2 min readMay 14, 2024
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
Gossiping Protocol
Konsep Gossping Protocol adalah setiap Node memperkenalkan dirinya hanya kepada beberapa Node saja, tidak semua Node, hingga semua Node saling mengenal satu sama lain.
Data yang dikirim saat perkenalan meliputi informasi berikut:
- IP Node tersebut.
- Heartbeat State (HS) yang berisi informasi waktu Node pertama kali berjalan dan Timestamp terkait kapan data gossip dikirim.
- Application State (AS) yang meliputi : Status (Normal / Leaving / Joining), Nomor Data Center (untuk snitch), Nomor Rack (untuk snitch), Schema Database, Load yaitu Disk pressure (untuk monitor performa), dan Severity yaitu IO pressure (untuk monitor performa).
Gossiping Protocol antar 2 node
Mekanisme Gossiping Protocol kurang lebih seperti berikut :
- Node 1 akan mengirim data IP, HS, dan AS yang diketahuinya ke Node 2.
- Node 2 akan memeriksa data yang dikirim oleh Node 1 dengan data yang dimilikinya berdasarkan Timestamp.
- Node 2 akan memilih data yang paling baru dan akan menyimpannya.
- Node 2 akan mencari data yang belum terbarukan di Node 1 dan akan mengirimkannya.
- Node 1 akan menyimpan data yang diterima dari Node 2.
- Node 1 akan mengirimkan konfirmasi (acknowledgement) ke Node 2.
- Data di Node 1 dan 2 akan menjadi sama.
🔔 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! 🌟