• 検索結果がありません。

160bit space

Tag: γ

β α

γ

5.2 タグを基にした検索(γグループに属するノードに検索を行う)

5.2.2 ノードタグの共有

ノードタグの選出方法を図5.3に示す.図5.3に示すように,ノードのタグは,ノード が取得したデータにより動的に決定される.5.2.1節で説明したように,データにはタグ が付加されているため,データを取得したノードは,そのデータに付加されているタグ 情報も取得可能である.そのため,P2Pシステム上で複数のデータを取得していく中で,

あるノードにおいて出現頻度の高いタグと,出現頻度の低いタグを区別することが可能で ある.本研究では,あるノードにおけるタグの出現頻度を,タグの優先度として扱い,出 現頻度の高いタグほど,あるノードにとって重要なタグであると定義する.そして,ある ノードの中で相対的に高い優先度を持つタグをノードのタグとして設定し,P2P システ ム上で共有する.

ノードのタグとその優先度は,P2P システム上において,ノードへのポインタ(ノー ドの識別子,IPアドレスなど)と一緒に共有される.本研究では構造化P2Pオーバーレ イネットワークとしてKademliaを用いているため,ノード情報はP2Pシステム上への データの登録・検索・取得処理など,様々な操作によってやりとりされる.Kademliaで は,このような操作を行う中で経路表へノード情報を格納するため,本研究でも,基本的

䝕䞊䝍

Tag A Tag B Tag C

Tag A Tag C

䝜䞊䝗

A A

A B

C B

C C

䝎䜴䞁䝻䞊䝗䛧䛯䝕䞊䝍

ືⓗ䛻Ỵᐃ

5.3 ノードタグの選出方法

な動作は同様である.したがって,実装における本研究で拡張したKademliaと,通常の

Kademliaとの唯一の違いは,ノードへのポインタにタグが入っているか居ないかという

ことになる.

また,本研究においてノードのタグは,データの取得を行っていく中で決定されるた め,初めてP2Pシステム上に参加したノードにはタグがつかないことになる.このよう な場合,ノードはどのグループにも属さないため,P2P システム上への操作は,全ての ノードが関与するKademliaへの操作となってしまい,オーバーヘッドが高くなると共 に,ユーザへの応答が遅れる可能性がある.そのため,実装を行う場合には,検索クエリ などに含まれるキーワードなどを基に,一時的なタグを決定し,実際にデータを取得した 場合に,ノードのタグを正式に決定するといった動作を行う.

5.2.3 データタグとノードタグとのマッチング

データタグとノードタグとのマッチングは,データ展開時のキャッシュノードの選択時 に発生する.この作業では,データタグにより多く該当するノードを検索するため,5.2.2 節で述べた,ノードタグを手がかりにノードの検索を行う.データタグとノードタグとの マッチングを図5.4に示す.

まず,あるデータタグを持つノードに対して,すべてのデータタグを検索クエリとして ノードの検索を行う.ある1つのタグに関して問い合わせを行うのは,5.2.1節で述べた,

タグのみを指定した検索と同様の理由からだが,4.2.1節で述べた理由から,データを配 置するユーザはあらかじめ同じタグを持つノードを隣接ノードして選んでいる可能性が高

いため,5.2.1節で述べた場合よりも,検索時間は短くなることが期待できる.

また,5.2.2節で述べたように,ノードタグには,優先度としてタグの出現頻度(=デー

タ取得数情報)が付加されている.そのため,上述した方法で取得したノードの中から,

展開しようとしているデータタグとノードタグの一致数が多く,かつ,絶対的にタグ優先 度の高いノードをキャッシュノード候補として選出することが可能である.したがって,

本研究では,データタグとノードタグの一致数でまず候補を絞り,さらに,その中で優先 度の高いノードを選ぶという,2段階の照合を行うことで,高精度なデータタグとノード タグとのマッチングを行う.

2

4 2

3

4 2 5

3

3

5 2 3

6 2

2

2

3 5

2 3 Tag A

Tag B Tag C Tag D Tag E Tag F

䠄 Tag A 䠅 Kademlia

=11 =14 =13 =12 =13

Priority:

New Data

5.4 データタグとノードタグとのマッチング

5.3 動作

本節では,5.2で説明した各要件について,実際のP2Pシステム上での動作に沿って説 明を行う.

5.3.1 データの配置

データの配置方法を図5.5に示す.本研究のP2Pシステムでは,データを配置する際 は,必ずキャッシュノードについて考慮を行った後,データ展開を行う.そのため,デー タの配置は,オリジネータノードがキャッシュノードを作成することで行われる.本研 究手法では,配置しようとしているデータに似た種類のデータを取得しているノードを キャッシュノードとするため,まず,キャッシュノードとして適切なノードを検索する.

検索方法は,5.2.3節で述べたとおりである.このとき,もし複数のノードが見つかった 場合には,パレートの法則により,上位20%のノードに対して配置を行う.パレートの 法則を用いるのは,P2Pネットワーク上で扱われるタグの分布の傾向が,パレートの法則 にしたがっているためである.したがって,複数のノードが見つかっても,上位20%の ノードが1以下の場合(見つかったノードが5ノード未満の場合)には,キャッシュノー ドの作成は行わない.また,ノードが見つからなかった場合には,データのキャッシュ

ノードによる展開は行わず,通常のP2Pシステムと同様に,オリジネータノードからの データ展開を行う.

Cache Node

General Node

Originator Node

Cache Node Lookup

関連したドキュメント