【ごしっぷぷろとこる】

ゴシッププロトコル とは?

最終更新:
💡 少数の相手との交換を重ね、情報を広げる

各ノードが選んだ相手と繰り返し情報を交換し、噂話のように全体へ広げる分散通信方式。相手をランダムに選ぶ方式が多い。到達の速さや確実さは、交換の規則や通信状態などに左右される。

📌 このページのポイント
少数の相手への交換を繰り返す N1N2N3N4N5N6最初の交換次の交換矢印は、一部の送信を選んで描いた例全員への到達時間や回数の保証ではない
N1から情報が広がる経路の例です。相手選びや再交換を繰り返して伝えますが、通信の分断や高負荷などでは到達が妨げられます。
ひよこ ひよこ
ゴシップって、噂話と何の関係があるの?
ペンギン先生 ペンギン先生
一つの送信元が全員へ直接配る代わりに、ノード同士の交換を繰り返して情報を広げるイメージだよ。ランダムに相手を選ぶ方式が多く、受け取った側もさらに別の相手へ伝えるんだ。
ひよこ ひよこ
中央の管理者はいらない?
ペンギン先生 ペンギン先生
情報を配る仕事を各ノードへ分散できるよ。ただし参加する相手を見つける仕組みや設定は必要。たとえばCassandraでは、最初の接続などにシードノードを使う。分散方式だから運用上の設定が全て不要、という意味ではないね。
ひよこ ひよこ
一つのノードが壊れても大丈夫?
ペンギン先生 ペンギン先生
ほかの経路や再交換を使って、届く可能性を高められるよ。でも通信が分断されたままなら、離れた側へは届かない。情報量が多く、通信や処理が追い付かない場合も遅れる。無条件の全員到達や時間の保証ではないんだ。
ひよこ ひよこ
どんなシステムで使うの?
ペンギン先生 ペンギン先生
Cassandraではメンバーやハートビートなどの状態を共有し、障害検知の材料に使うよ。2007年のAmazon Dynamo論文でも、メンバー変更の伝播に使っている。ノード状態の共有と、保存データ全体の複製は区別しよう。
ひよこ ひよこ
全員が同じ情報なら、合意もできている?
ペンギン先生 ペンギン先生
情報を広げることと、一つの値や順序に合意することは別だよ。途中では古い情報と新しい情報が混在するので、版の比較や競合の扱いを決める。受け渡し、照合、再交換の規則を組み合わせて設計するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ゴシッププロトコル」って出てきたら「ノード同士の情報交換を繰り返して、噂話のように広げる仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Gossip Protocol」 = 噂話プロトコル
💬 gossipは英語で噂話のこと。人から人へ話が広がるように、ノード間で情報を伝える方式を表す言葉だよ

参考資料

← 用語集にもどる