Sunday, September 10, 2023

Gossip Protocol

Gossip is a peer-to-peer communication protocol in which nodes periodically exchange state information about themselves and about other nodes they know about. The gossip process runs every second and exchanges state messages with up to three other nodes in the cluster. The nodes exchange information about themselves and about the other nodes that they have gossiped about, so all nodes quickly learn about all other nodes in the cluster. A gossip message has a version associated with it, so that during a gossip exchange, older information is overwritten with the most current state for a particular node. 

Here is how the gossiper works: 
1. Once per second, the gossiper will choose a random node in the cluster and initi‐ alize a gossip session with it. Each round of gossip requires three messages.
2. The gossip initiator sends its chosen friend a GossipDigestSyn message. 
3. When the friend receives this message, it returns a GossipDigestAck message.
4. When the initiator receives the ack message from the friend, it sends the friend a GossipDigestAck2 message to complete the round of gossip.

more -> https://docs.datastax.com/en/cassandra-oss/3.x/cassandra/architecture/archGossipAbout.html





ubuntu@ds201-node1:~$ /home/ubuntu/node1/resources/cassandra/bin/nodetool describecluster
Cluster Information:
Name: Test Cluster
Snitch: com.datastax.bdp.snitch.DseDelegateSnitch
DynamicEndPointSnitch: enabled
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Schema versions:
00abff53-2837-363a-abd8-b75594c5631e: [127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4]

ubuntu@ds201-node1:~$ /home/ubuntu/node1/resources/cassandra/bin/nodetool status aug_space;
Datacenter: Cassandra
=====================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns (effective)  Host ID                               Rack
UN  127.0.0.1  380.53 KiB  1            77.1%             39e7bbfa-2250-41a2-975b-f6a32e8677d0  rack1
UN  127.0.0.2  365.82 KiB  1            89.2%             606d2798-fa58-4656-bcba-5ef8a9c5012f  rack1
UN  127.0.0.3  335.28 KiB  1            89.2%             ab14e681-7a13-4027-8b4c-0f40a2428a85  rack1
UN  127.0.0.4  323.7 KiB  1            44.6%             a411cdb0-f8a1-4f4b-ac44-c1b4ff703124  rack1


ubuntu@ds201-node1:~$ /home/ubuntu/node1/resources/cassandra/bin/nodetool gossipinfo;
/127.0.0.1
  generation:1694106957
  heartbeat:120749
  STATUS:25:NORMAL,0
  LOAD:120733:389660.0
  SCHEMA:117734:00abff53-2837-363a-abd8-b75594c5631e
  DC:41:Cassandra
  RACK:18:rack1
  RELEASE_VERSION:4:4.0.0.2284
  NATIVE_TRANSPORT_ADDRESS:3:127.0.0.1
  X_11_PADDING:92056:{"dse_version":"6.0.0","workloads":"Cassandra","workload":"Cassandra","active":"true","server_id":"08-00-27-32-1E-DD","graph":false,"health":0.9}
  NET_VERSION:1:256
  HOST_ID:2:39e7bbfa-2250-41a2-975b-f6a32e8677d0
  NATIVE_TRANSPORT_READY:54:true
  NATIVE_TRANSPORT_PORT:6:9041
  NATIVE_TRANSPORT_PORT_SSL:7:9041
  STORAGE_PORT:8:7000
  STORAGE_PORT_SSL:9:7001
  JMX_PORT:10:7199
  TOKENS:24:<hidden>
/127.0.0.2
  generation:1694107334
  heartbeat:120358
  STATUS:51:NORMAL,4223372036854775807
  LOAD:120300:374600.0
  SCHEMA:117343:00abff53-2837-363a-abd8-b75594c5631e
  DC:65:Cassandra
  RACK:18:rack1
  RELEASE_VERSION:4:4.0.0.2284
  NATIVE_TRANSPORT_ADDRESS:3:127.0

No comments: