DS201の実施_Gossip
DS201: Foundations of Apache Cassandra™ and DataStax Enterpriseの学習記録。
Cassandraのノード間の通信とデータの同期は、Gossipプロトコルに基づいて行われる。
Gossipは、ネットワーク内のノード間で情報を分散させるためのプロトコル。ノードは定期的にお互いに通信し、各ノードが保持する情報を交換する。この情報には、ノードの状態やトポロジー、データの位置情報などが含まれる。
具体的な動作手順は以下の通り。
- 各ノードは、互いに定期的に「ゴシップ(情報交換)」メッセージを送信。
- ノードは、受信したメッセージに含まれる情報を自身の状態と比較し、新しい情報があれば自身の情報を更新。
- ノードは、自身の情報を他のノードに送信。すべての情報を送信するのではなく、変更された情報のみを送る。
- ノードは、他のノードから受信した情報を受け入れ、自身の情報を更新。
演習
$ nodetool gossipinfo
localhost/127.0.0.1
generation:1686366680
heartbeat:8156
STATUS:19:NORMAL,-1868919513406135542
LOAD:8135:1.2650205E7
SCHEMA:223:8aec9840-06b7-356a-b5ed-07e43a42d65e
DC:9:datacenter1
RACK:11:rack1
RELEASE_VERSION:6:4.1.2
RPC_ADDRESS:5:127.0.0.1
NET_VERSION:2:12
HOST_ID:3:349d6a93-038a-45a9-bd86-cc22ed3d8e0d
RPC_READY:21:true
NATIVE_ADDRESS_AND_PORT:4:127.0.0.1:9042
STATUS_WITH_PORT:18:NORMAL,-1868919513406135542
SSTABLE_VERSIONS:7:big-nb
TOKENS:17:<hidden>
ノードの状態はキーバリューペアとして表される。
2ノードある場合、ノード1でnodetool gossipinfo
コマンドを実行しても、ノード1とノード2のGossip状態を確認することができる。
Tags: