新月 - P2P掲示板

書き込みすると何が起こるのか

2005-11-19

新月のネットワークについては前に説明しましたが、 より実際的に、ネットワーク全体ではなく1ノードに注目しての解説をします。 用語についてはネットワークをご覧ください。

書き込みをすると次のような通信が発生します (の場合)。

  1. 共有ノード・隣接ノードから1つ選ぶ。
  2. そのノードに「書き込みしたよ」というメッセージを送る。
  3. 相手から「書き込みを見せて」というメッセージが来る。
  4. 書き込みを送る。
  5. 最初に戻る。

Perl版のときはこんな感じでした。

  1. 隣接ノード全体に「書き込みしたよ」というメッセージを送る。
  2. 相手から「書き込みを見せて」というメッセージが続々と来る。
  3. それぞれに書き込みを送る。

これだと「書き込みを見せて」というメッセージが集中して 通信が行えなくなってしまう恐れがあったため、上のように変更したわけです。

実測してくださった方によると、 現在のネットワーク(10ノード弱?)だと20分程度で全体に伝わるようです (2005-12-11追記: 別の実験では3分で伝わったこともあります)。 ノードが増えると所要時間は対数関数的に増加すると考えています。

通信が行えなくなるとどうなるのでしょうか。 新しい書き込みは他のノードには伝わることなく、 書き込まれたノードだけに存在します。 各ノードは1〜5時間に1回の周期でデータの同期を行いますので、 運がよければ検索ノードが書き込みをみつけてくれます。 現在はノード数が少ないため、 数日もすれば書き込みはネットワーク全体に伝わります。 しかしノード数が増えればうまくいきません。

新月で書き込みの伝播に数時間から数日かかっているとしたら、 それはバグ・不具合の類いです。 新月本体のバグなのか、回線が混んでいるのか、 WindowsXP SP2 の同時接続制限のようなOSの問題か、 原因はともかく不具合だと考えてください。

Copyright© 2003-2024 shinGETsu Project. All Rights Reserved.
webmaster@shingetsu.info (Legal Notices)