オブジェクトの属性を用いた高速な選択的データ配送
Fast Selective Data Dissemination for Structured Peer-to-Peer Overlay Network with Object Attributes
黒宮 佑介(学籍番号: 80924567 ) 政策・メディア研究科 修士課程 2 年
主査:村井 純、副査:斉藤 賢爾・中村 修・江崎 浩
2011/1/18 2010年度秋学期修士論文最終試験
1
研究背景
• P2P の価値
– 様々なデータの共有をみんなで実現することが可能 – 専用のインフラが無くてもスケールして動作する
• 問題
– 「 P2P は間に合わない」
– データ展開時の需要に対応できない
• データ展開=データをネットワーク上に配置すること
• (ビデオの再生に)待ち時間が発生する
待ち時間なしでデータにアクセスしたい!!
• 目的: P2P を利用したデータ展開の高速化
– クライアント・サーバモデルと同じように「間に合う」
2011/1/18 2010年度秋学期修士論文最終試験
2
データ展開時における問題点
• オリジネータノード
– データの一次配信者 – データの配信方法
• データの要約を配布
• 要求が来たら転送開始
• 一般ノード
– データの取得者 – データの取得方法
• オリジネータからの広告
• 検索クエリを投げる
2011/1/18 2010年度秋学期修士論文最終試験
3
ボトルネックが発生
広範囲でデータ発見
需要は増え続ける オリジネータノード!
!
! !
ダウンロードの要求からダウンロード開始までの待ち時間が発生する
一般ノード
キャッシュノード
データ展開時における問題点
• キャッシュノード
– 元ダウンローダー
• 過去にダウンロード
– 現アップローダー
• データを他のノードへ
– 増えるほど効果大だが
• 資源が無駄になるかも
2011/1/18 2010年度秋学期修士論文最終試験
4
負荷分散が動作し始める
一般ノード
キャッシュノードが現れる オリジネータノード
オリジネータが最初にデータを公開する際の待ち時間は不可避
しばらく経つと
…
既存のデータ展開高速化手法
• P2P を利用したデータ展開手法
– SkeedCast ( Winny ) (1) – ShareCast (2)
• 配信サーバを静的に設置して配信を行う
– P2P の価値を最大限に活かせない
• 配信サーバという専用のインフラを必要としている
• 個人レベルでの情報配信が困難
2011/1/18 2010年度秋学期修士論文最終試験
5
ShareCast
SkeedCast
(1) SkeedCast: http://www.skeedtools.com/
(2) ShareCast: http://scast.tv/sc2plus/
配信サーバ
P2P
配信サーバ
P2P
既存のデータ展開:一部 P2P
• 配信サーバ
– 配信専用の計算機
• 複数台用意される
• 分散して設置される
– 特徴
• 巨大なストレージ
• 超高速な回線
• 配信の順序
– オリジネータ サーバ – サーバ 一般ノード
2011/1/18 2010年度秋学期修士論文最終試験
6
ボトルネックは発生しない
!
! !
! !
ダウンロードの要求からダウンロード開始までの待ち時間は不要
配信サーバ
一般ノード
!
オリジネータノード
広範囲でデータ発見
需要は増え続ける配信サーバでなくても実現可能では?
本研究の提案手法:全部 P2P
• キャッシュノード
– 動的に選択される
• 配信の順序
– オリジネータノード – キャッシュノード
– 一般ノード
• キャッシュノードになる
2011/1/18 2010年度秋学期修士論文最終試験
7
最初から P2P の負荷分散が働く
!
! !
! !
待ち時間は発生しない+ノードの需要を事前に満たす=高速化
キャッシュノード
一般ノード
!
オリジネータノード
データ公開前にキャッシュ
公開は遅延する 遅延が発生オンデマンド
提案手法に対する要求
• キャッシュノードの動的な選択と配置
– 適切なキャッシュノードを選出する手法が必要 – キャッシュノードの条件
• ダウンロードを行うノードと近隣となる
• キャッシュするデータを将来ダウンロードする
キャッシュノードになることが不利にならない!
Bottleneck
オリジネータノード オリジネータノード
一般ノード 一般ノード
キャッシュノード 動的に選択
2011/1/18 2010年度秋学期修士論文最終試験
8
ユーザの振る舞い方に着目
• ユーザの振る舞い方に以下の特徴がある
(ユーザ=ダウンローダー・アップローダー)
1. ある分野に以前から興味を持っている 2. ある分野に含まれるデータを持っている 3. 今後もある分野に興味を持つ
• ユーザの振る舞い方をノードに反映させる
1. ノードは以前からある分野のデータを探している 2. ノードはある分野のデータをダウンロードしている
• ある分野のキャッシュデータを持っている
3. ノードは今後もある分野のデータをダウンロードする
2011/1/18 2010年度秋学期修士論文最終試験
9
出典:コンテンツ類似度に基づくP2Pネットワークの動的再構成
山口 拓也, 松本倫 子, 吉田 紀彦
• オブジェクト(データ・ノード)は属性のタグを持つ
– データタグ
• ユーザが指定を行う
• 複数個のタグを付加
– ノードタグ
• 各ノードはタグのテーブルを持つ(例)
• ダウンロードしたデータによりタグの優先度を決定する
• 優先度によりノードのタグを選択(上位 N 個、閾値、 etc… )
属性を用いたオブジェクトの紐付け
2011/1/18 2010年度秋学期修士論文最終試験
10
データ
攻殻機動隊 士郎正宗
アニメ
攻殻機動隊 アニメ
ノード
攻機 攻機
攻機 士郎 アニメ 士郎
アニメ アニメ
ダウンロードしたデータ
自動的に決定
タグ 攻殻機動隊 ヱヴァンゲリヲン 化物語 バクマン。
出現数 16 2 3 4
P2P ネットワークの構成( 1/2 )
• 非構造化 P2P と構造化 P2P
– 非構造化 P2P (例: Winny 、 Share )
• 特徴:広く複製されているデータを見つけることが得意
• 検索:任意のキーワードで検索が可能
– 構造化 P2P (例: Chord, CAN, Pastry, Kademlia )
• 特徴:効率的にどんなデータでも確実に見つける
• 検索:(直接的には)キーによる検索しか可能ではない
• 目的: P2P を利用したデータ展開の高速化
– キャッシュをヒットしやすくする
• ノードをクラスタリングする ・・・非構造化 P2P が得意
– 基本的にどんなデータも検索可能
• 稀尐なデータも検索可能に ・・・構造化 P2P が得意
2011/1/18 2010年度秋学期修士論文最終試験
11
P2P ネットワークの構成( 2/2 )
• 構造化 P2P に非構造化 P2P の特徴を持ち込む
– クラスタリングした環境において
高速なオブジェクトの発見が可能になる
• データの属性にマッチするノードの発見が容易になる
– 方法: Kademlia
(1
)を拡張する
• Kademlia の中にグループ化の概念を導入
• Kademlia を用いる理由
1. トポロジ自体が特定の構造を持たない(非構造的)
• Kademlia の構造を適応的に変化させることが可能になる
ダウンロードを行うノードと近隣となるように構成が可能
2. 経路を複数持つことが可能
• 複数のグループに属する場合に有効に作用する
3. ノードが頻繁に出入りする状況を想定している
• Kademlia 以外の構造化 P2P は専用のメッセージが必要
2011/1/18 2010年度秋学期修士論文最終試験
12
(1)Kademlia: A Peer-to-peer Information System Based on the XOR Metric
P Maymounkov, D Mazieres - Peer-to-Peer Systems, 2002 - Springer
A
B C
Kademlia の概要
• 排他的論理和( XOR )を基盤とした構造化 P2P
– ノードの距離は ID の XOR を用いて表現される
• 経路表( k -buckets )を保持する
– k-bucket :距離が等しいノードリスト
• 距離は 2 i ~ 2 (i+1) (0 ≦ i < 160) で表現される( SHA1 )
• 最大で 160 個の k-bucket が作成される
– ノードリストのサイズは k として規定される
(例: k=20 )
• k はシステムレベルの複製値
– ノードの生存時間で降順にソートされる
• 新しいノードよりも既存のノードを優先的に扱う
2011/1/18 2010年度秋学期修士論文最終試験
13
Kademlia の拡張( G-Kad と命名)
• k-buckets 内のノードの保持方法
– < IP アドレス /UDP ポート / ノード ID >
• 拡張方法
– < IP アドレス /UDP ポート / ノード ID/ タグ 1 ・タグ 2… >
• ノード情報に属性としてタグを付加する
• PUT/GET などの関数に属性を追加するよう拡張した
– PUT Key Value [Attribute]
» Key + Value: Kademlia
にストア» Key + Value + Attribute: Kademlia
グループにストア– GET Key [Attribute]
» Key: Kademlia
キー検索(完全一致)» Key + Attribute: Kademlia
グループキー検索(完全一致)» Attribute:
キーワードを用いて範囲検索を行う(部分一致)2011/1/18 2010年度秋学期修士論文最終試験
14
ノードの選択方法
• 1 個以上同じタグを持つノードを選出
– 得られたリストを一致数で降順にソートする – 同じ一致数のノードが複数存在する場合
• 当該ノード内でのタグの出現頻度で重み付けを行う
• ノードの選択方法
1. タグの一致度 2. タグの優先度
• 同じタグを持つノードがいなかった場合
– 通常の Kademlia の動作となる( ID で検索)
– キャッシュノード選択の場合
キャッシュノードの作成は行わない
2011/1/18 2010年度秋学期修士論文最終試験
15
評価方法と評価項目( 1/2 )
• シミュレーションを用いて評価
– 2000 個の仮想ノードを用意する – サンプルデータ
• DVD Top 500 と Amazon.co.jp のタグ
• 評価項目( 1/2 )
– G-Kad の評価
– Kademlia と比較
• 平均メッセージ反復回数
• Churn 耐性
– GET 成功数
2011/1/18 2010年度秋学期修士論文最終試験
16
評価方法と評価項目( 2/2 )
• 評価項目( 2/2 )
– データ展開の評価
• 優先度はすべて 1 に指定
– キャッシュの効果
• 待ち時間
– データが公開されてから取得するまでの時間
• データ展開の傾向
– 通常のデータ展開と比べて高速化されているか
• キャッシュがローカルにある確率
– 適切なキャッシュノードを選択できたのか
2011/1/18 2010年度秋学期修士論文最終試験
17
G-Kad の評価( 1/2 )
• 平均メッセージ反復回数
– Churn は 10% から 50% まで 5 段階で評価
• 傾向
– G-Kad の方が平均メッセージ反復回数は多い
– Churn の影響
• G-Kad :大きい
• Kademlia :小さい
• 要因
1. 検索範囲が狭い 2. 検索失敗時の動作
• Kademlia で検索を行う
2011/1/18 2010年度秋学期修士論文最終試験
18
0.06 0.06 0.083 0.129 0.166 0.433 0.475 0.584
0.89
1.151
0 0.2 0.4 0.6 0.8 1 1.2 1.4
0.1 0.2 0.3 0.4 0.5
A ver ag e T ry
Churn
Kademlia
G-Kad
G-Kad の評価( 2/2 )
• Churn 耐性( GET 成功数)
– Churn は 10% から 50% まで 5 段階で評価
• 傾向
– G-Kad の方が Churn 耐性が高い – Churn の影響
• 大きな変化はなし
• 要因
– Kademlia の複製値
• k
– G-Kad の複製値
• 動的に決定される
• タグ数=複製値
2011/1/18 2010年度秋学期修士論文最終試験
19
1424
1332 1378
1282
1175 1610 1600 1584
1502 1478
0 200 400 600 800 1000 1200 1400 1600 1800
0.1 0.2 0.3 0.4 0.5
GET Sucess
Churn
Kademlia
G-Kad
データ展開の評価( 1/3 )
• データ転送待ち時間
– キャッシュノードの有無で比較 – キャッシュノードがある方が優位
2011/1/18 2010年度秋学期修士論文最終試験
20
0 10 20 30 40 50 60 70
0:01 0:07 0:13 0:19 0:25 0:31 0:37 0:43 0:49 0:55 1:01 1:07 1:13 1:19 1:25 1:31 1:37 1:43 1:49 1:55
W ai ting Time (min.)
Time Elapsed (min.)
0 5 10 15 20 25 30 35
0:00 0:03 0:06 0:09 0:12 0:15 0:18 0:21 0:24 0:27 0:31 0:34 0:37 0:40 0:43 0:46 0:49 0:52
W ai ting Time (min.)
Time Elapsed (min.)
キャッシュノードなし
キャッシュノードあり最大待ち時間:
62
総ノード数:67
最大待ち時間:
29
総ノード数:28
データ展開の評価( 2/3 )
• データ展開の傾向
– データ転送開始ノードと完了ノード数を計算 – キャッシュノードがある方が早く収束する
2011/1/18 2010年度秋学期修士論文最終試験
21
0 20 40 60 80 100 120 140
0:00 0:09 0:18 0:27 0:36 0:45 0:54 1:03 1:12 1:21 1:30 1:39 1:48 1:57
Num b er of No d es
Time Elapsed (min.)
Processing Complete
0 20 40 60 80 100 120 140 160 180 200
0:00 0:09 0:18 0:27 0:36 0:45 0:54 1:03 1:12 1:21 1:30 1:39 1:48 1:57
Number of Nodes
Time Elapsed (min.)
Processing Complete
キャッシュノードなし
キャッシュノードあり102
分で収束44
分で収束データ展開の評価( 3/3 )
• データ転送完了時間
– キャッシュを利用した方が高速に展開可能
• キャッシュヒット率
– 適切なキャッシュノードの選択ができている
2011/1/18 2010年度秋学期修士論文最終試験
22
完了順 通常のデータ展開 キャッシュノードを利用したデータ展開
1 0:27:00 0:43:00
2 0:30:00 0:43:00
3 0:55:00 0:43:00
4 0:57:00 0:43:00
5 0:57:00 0:43:00
キャッシュ数
81
キャッシュヒット数80
キャッシュヒット率100%
まとめ
• 目的
– P2P を利用したデータ展開の高速化
待ち時間なしで手に入れたい!
• 手法
– P2P ネットワークをタグ毎にグループ化 – 構造化 P2P の Kademlia を拡張( G-Kad )
• 評価
– 設計した P2P ネットワークの性能
•
メッセージ反復回数は増加するが、Churn
耐性は同等以上– キャッシュを事前に配置することの効果
•
通常のデータ展開と比べて高速にデータ展開が可能である• 期待される効果
– データ配信プラットフォームとしての
P2P オーバーレイネットワークの応用範囲の拡大
2011/1/18 2010年度秋学期修士論文最終試験
23