平成 17 年度卒業研究発表会(日本大学工学部情報工学科) G-8 QueryHits 履歴に基づく動的なクラスタリング手法 A Dynamic Clustering Method using History of QueryHits in P2P Networks 136033 1 樫尾 訓征 [竹中研究室] 10 10 はじめに d1 10 Query Hits aveN_Hops(d1) = 1 現在のインターネットサービスのうち大部分は、情報 を提供するサーバとそのサーバから情報を受信する端末 (クライアント)で構成されるクライアント・サーバモデル である。これに対して各端末(ピア)が対等に通信を行 う Peer-to-Peer (P2P)ネットワークが注目されている。 P2P ネットワークを利用したサービスとして、ファイ ル共有、インスタントメッセンジャー、分散コンピュー ティングなどが挙げられるが、特に注目されているのが ファイル共有である。[4][5] サーバが存在しない Pure 型 P2P ネットワークでは、 ノードの情報は、各ノード自身で保持し、各ノード同士 のみでデータのやり取りを行う。またサーバが無いため 負荷分散、耐障害性に優れるといった利点があるが、検 索メッセージ(Query)を広く伝播させるためシステム全 体の負荷が大きくなるという問題点もある。Gnutella[2] や Winny[3]がこれにあたる。 本稿では、Pure 型 P2P における Query 転送の負荷を 軽減するため、クラスタリングの概念を導入し、興味の 類似するノード同士が優先的に繋がることで、メッセー ジの伝播範囲を制限する方式を提案し、シミュレーショ ンにより比較、評価する。 R 8+2×2 8+2 2.3 3 灰色のノードは興味が類似 図1 繋ぎ換え前のトポロジー 図2 繋ぎ換え後のトポロジー ノードの重要度 Imp(d, t) = α* 問題点 提案手法 提案手法は、片方向リンクのネットワークを想定する。 すなわち、ノード A からノード B へと接続している場合 でも、ノード B からノード A へと接続しているとは限ら ない。既存方式の問題点を解決するために重要度ではな く、より多くの QueryHits を返信してきたノードに直接 接続する。その際、自身が保持するリンクすべてを繋ぎ 換えるのではなく、繋ぎ換えを行わないリンクを少なく とも1本は残すものとする。これは、興味の変化が起こ った場合、すべてのリンクを単一の興味に向けていると、 そのクラスタから抜け出せなくなり検索成功率が低下す る可能性があるためである。 また、QueryHits の履歴には有効期限が設定され、有 効期限が切れた場合はその履歴を削除する。これによっ て、興味が変わった後に、QueryHits を返さなくなった ノードの履歴が残らないようにする。この処理により、 既存方式の興味の変更後に古い履歴が残り続ける問題を 解決することができる。 R QueryHits ( d ) + QueryHits (i ) * numHops (i ) (1) QueryHits ( d ) + QueryHits (i ) QueryHits (d ) allQueryHits 平均ホップ数 前述したアルゴリズムの場合、式(3)よりホップ数の少 ない位置にいるノードの重要度が高くなるため、そうい ったノードが優先的にリクエスタに直接接続する。しか し、リクエスタからネットワーク的に遠い(ホップ数が多 い)位置にいるノードの場合、たとえ QueryHits を多く 返したとしても式(3)により重要度が低くなるため、リク エスタに直接接続することができないと考えられる。 また、既存方式では QueryHits の履歴を累積して保持 するため、興味が変わり、検索に必要のなくなった古い 履歴が消去されないまま残ることになる。そのため、リ クエスタの興味が変わった後でも、興味が変わる前に多 くの QueryHits を返していたノードの履歴が残ることに なる。結果として、興味変更後にそれ以上の QueryHits を返すノードが現れるまで履歴が残り、繋ぎ換えが起こ らず新しい興味に対応できない。よって、検索成功率が 向上しない可能性がある。 検索は Flooding 手法を用いて行い、QueryHits 数と平 均ホップ数に基づいて計算した重要度を用いた繋ぎ換え アルゴリズムによりクラスタリングする。 perQueryHits(d) = 8 Query Hits 式(1)は、平均ホップ数を表す式である。図 3 の場合、 ノード d1 の平均ホップ数は1となり、ノード d2 の平均 ホップ数は 1.2 となる。式(2)は、QueryHits の割合を示 す式である。リクエスタが受け取るすべての QueryHits 数に対するノード d の QueryHits 数で表される。式(1)、 式(2)から得られた値と式(3)を用いて、ノードの重要度を 計算する。式(3)より、QueryHits の割合が高く、平均ホ ップ数が小さい場合にこの値が大きくなる。 2.1 検索手法 aveN_Hops( d) = d2 図3 Finding Good Peer では、ノード(ピア)の興味を捉 え興味の似ているノード同士をネットワーク的により近 い位置に置きクラスタリングすることで、検索成功率を 下げることなくメッセージ数およびメッセージの伝播範 囲を減らすことができる。[1] 2.2 2 Query Hits aveN_Hops(d2) = 1.2 2 Finding Good Peers R i (2) perQueryHits(d ) +(1 −α) * Imp(d, t - 1) (3) aveN _ Hops(d ) 17 平成 17 年度卒業研究発表会 G-8 とを示している。その結果として、メッセージの伝播範 囲が制限され、メッセージ数及び平均ホップ数が減少し ている。このことから、現在検索している興味に関する クラスタを形成していると考えられる。 図4と5から、提案方式よりも全てのリンクを繋ぎ換 えた場合の方が優れた方式のように見える。確かに 4 本 のリンク全てを繋ぎ換えると、同じ興味を持つノードの みと繋がるので、メッセージ数及び平均ホップ数ともに 提案方式よりも少ない結果となっている。しかし、全て のリンクを繋ぎ換えた場合、興味が変わった後の検索に 対応できない。その様子を図6のグラフにより示す。 シミュレーションによる評価 C++言語で作成したシミュレータにより、提案方式の 有効性を評価する。 シミュレーション条件 ノードを 1,000 台とし、各ノードのリンク数を 4 本と する。各リンクはランダムに選択されたノードに接続さ れる。コンテンツを 1,000 種類とし、1 種類につき 10 個 配置する。コンテンツは 100 種類ずつ 10 の分野に分類 される。各ノードは1つの分野にのみ興味を持ち、その 分野のコンテンツのみを保持、検索するものとする。ま た、Query の TTL を 7 とし、QueryHits の履歴を 10 個 保持する。履歴の有効期限を 30 タイムステップとし、 Query を1ノード当たり 30 回送信する。このとき、 Query 毎にリクエスタをランダムに選択する。ただし、 履歴の有効期限は、QueryHit が返ってくる度に 1 タイ ムステップ経過するものとし、有効期限内に更新がなか った履歴は削除される。 1 検 0.8 索 成 0.6 功 率 0.4 図6 4000 3500 ッ ー セ 繋ぎ換えなし 3本繋ぎ換え 4本繋ぎ換え 30 00 60 00 90 00 12 図4 00 0 0 0 0 0 0 0 0 0 8 0 0 10 0 4 0 0 70 0 0 0 0 3 2 2 2 1 15 試行回数 メッセージ数 5 6 ッ ホ4 繋ぎ換えなし 3本繋ぎ換え 4本繋ぎ換え 1 0 0 30 00 60 00 90 00 12 00 図5 0 0 0 00 00 30 27 24 00 0 0 0 00 21 00 18 00 0 0 15 00 00 12 むすび 既存方式である Finding Good Peers を基に、繋ぎ換え を用いて動的にクラスタリングを行う手法を提案し、シ ミュレーションによる評価を行った。その結果、リンク をすべて繋ぎ換えた場合にはネットワークに分断が発生 し、コンテンツの興味が変わった場合に検索成功率が著 しく低下する。一方、少なくとも1本繋ぎ換えを行わな いリンクを残す場合は、興味を変更した後も高い検索成 功率を維持できることを確認した。 今後は、複数の分野に対して興味を持たせた場合やノ ード数を増加させた場合、さらにノードの参加離脱を考 慮した実環境に近い条件での評価を行う予定である。 5 3 プ 数2 興味変更による検索成功率の変化 図6では 15,000 回目で興味の変更を行っている。リン クを4本繋ぎ換えた場合、興味の変化に全く対応できず 検索成功率が著しく低下している。これは、1∼14,999 回目までのシミュレーションでクラスタが形成されてネ ットワークが分断してしまい、興味の変更後にそのクラ スタ外のノードに Query を転送できなくなってしまうた めであると考えられる。しかし、提案方式では、繋ぎ換 えを行わないリンクを1本残すため、ネットワークの分 断が発生せず、検索成功率 100%を維持している。これ により、提案方式は興味の変更に対応できる。 メ 3000 0 90 試行回数 図4と図5にシミュレーション結果を示す。 500 0 00 0 0 シミュレーション結果 2500 2000 ジ 1500 数 1000 3本繋ぎ換え 4本繋ぎ換え 0.2 30 4.2 1.2 00 4.1 60 4 0 0 0 0 0 0 0 0 80 0 10 0 4 0 0 7 0 0 0 0 0 3 2 2 2 1 15 試行回数 平均ホップ数 参考文献 [1] Murali Krishna Ramanathan1, Vana Kalogeraki, Jim Pruyne,“Finding Good Peers in Peer-to-Peer Networks” Soft Technology Laboratory HP Laboratories Palo Alto HPL-2001-271 October 23rd,2001* [2] Clip2.com The Gnutella protocol specification v0.4. In http://www9.limewire .com/developer/gnutellaprotocol_0.4.pdf,2000 [3] 金子勇, Winny の技術 ,アスキー書籍編集部 2005 [4] 伊藤 直樹,”P2P コンピューティング-技術解説とア プリケーション-”,ソフト・リサーチ・センター2001/11 [5] マイケル・ミラー,“P2P コンピューティング入門”翔 泳社 2002 年 10 月 16 日 図4と図5の結果は、区間 300 の移動平均により求め ている。図4は1Query 当たりのメッセージ数を表して いる。図5は、Query が Hit したときの平均ホップ数を 表している。図4の繋ぎ換えが起こらない場合では、メ ッセージ数は全く減少していないことが確認できる。こ れに対し、リンクを繋ぎ換えた場合は、メッセージの削 減に成功している。また、図5においても繋ぎ換えが起 こらない場合は、平均ホップ数が減少していないが、提 案方式(3本繋ぎ換え)の場合では約1ホップ減少し、 全てのリンクを繋ぎ換えた場合(4本繋ぎ換え)では、 約2ホップ減少している。これは、より多くの QueryHits を返すノードに繋ぎ換えを行うことで、少ない検索ステ ップで目的のコンテンツを発見することができているこ 18
© Copyright 2024 Paperzz