Peer-to-Peer-http://www.cs.rutgers.edu/~tdnguyen/pubs/cuenca-hpdc-2003.pdf*基本アイディアDHTがnameからlocationの解決と言った、いわばDNS的な世界なのに対し、PlanetPは、P2P上の全文検索、いわばgoogle的な世界です。P2Pの全文検索と言うと、GnutellaベースのInfrasearchが最初に思いつきます。Infrasearchは、簡単に言うと、検索queryをP2Pのノード群に伝播させるイメージです。各ノードは、他ノードの全ての全文検索用インデックスをローカルに持つイメージです。Filterを使います。Filterを拡散します。Filter」ペアの集合を保持します。Filter(のコピー)の集合に対して、全文検索を行い、検索結果対象の文書を持つノードにアクセスして文書を取得します。*gossiping(ゴシッピング)次のふたつの基本戦略の組み合わせで、P2Pの中に情報を拡散するアルゴリズムです。mongering次のように動作します。情報拡散元のノードをxとします。ノードxはゴシッピングを開始すると、インターバルTg秒ごとに適当なノード(ノードyと呼びます)を選択して、情報を送りつけます(噂の送信)。情報を受けたノードyも、同じロジックで情報の送信を開始します。ゴシップの送信先ノードが連続してn個、既にその情報を持っていた場合、ゴシップの送信を止めます。適切なnを選ぶには、全体のノード数に関する知識が必要な気はしますが、そこを無視すると、非常に局所的な状態管理だけで全体に情報を拡散させることができるアルゴリズムです(全体に行き渡ったかどうかは確率的ですが)。それぞれのノードが勝手にひそひそとおしゃべりをしていき、みんなに噂が行き渡った頃には、自然におしゃべりが止まります。PlanetPのTgの初期値のデフォルトは30秒です(動的に変動します)。mongeringがpush的な拡散なのに対し、anti-entropyはpull的に動作します。mongeringの10回に1回、anti-entropyにモードが切り替わります。ら、ノードyが持つ全ての情報のsummaryをpullします。Filterの最終更新時刻で良い気がしますが不明です)。要は、ノードxは、自分が知らない情報をノードyが持っているようなら、ノードyからpullします。filterが相互に交換されるイメージです。anti-entropyanti-entropyは重いやりとりなので、ちょっとした工夫をしています。mongering(push)の時、ノードyは、持っている最新の情報のid(このidはやや不明。Filterの最終更新時刻で良い気がします)を返します。ノードyから情報をpullします。ノード間の情報の同期が少しでも可能ならその機会は逃すな、と言う、微妙に貧乏臭い戦略ですが、ぼくはこういうハックは好きです。ほとんどDHT)gossipingの情報拡散の速度には限度があります。PlanetPでは、数千ノードで約10分だそうです。この辺の批判をかわすためか分かりませんが、一応、Brokerサービス(ある意味、サーバ)もオプションとして許しています。一応、書いてあるだけで、たいして説明はしていません。searchいわゆる全文検索の話です。知られた戦略のP2P応用です。要は、不完全な情報しか揃っていない状況でもそこそこうまく全文検索しよう、という話です。Frequency)が基本です。この文書で言えば、「PlanetP」という単語は多く出現して、かつ他の文書には出てこなさそうなので大きな評価値がつくでしょう。索」や「ノード」のような単語は多く出現しても、他の文書にも多く出てきそうなので、あまり大きな評価値にはならないでしょう。検索queryの単語(複数あっても良い)が与えられると、文書のvector空間との類似度から、検索にヒットする文書が決まります。この辺の話は、全文検索を説明しているサイトでもっと詳しく説明しているので、興味があれば探してください。TFxIDFはP2Pと全然関係無い話で、PlanetPのポイントは次のふたつです。Filterのコピーで行います)。