P2PネットワークにおけるSkip GraphとBloom...
-
Upload
kota-abe -
Category
Technology
-
view
1.330 -
download
0
Transcript of P2PネットワークにおけるSkip GraphとBloom...
P2P ネットワークにおけるSkip Graph と Bloom Filter を用いた効率的な複数キーワード検索手法の提案
大阪市立大学 創造都市研究科岩本 大記 石橋 勇人安倍 広多 松浦 敏雄
2
背景Peer-to-Peer ネットワーク
耐障害性スケーラビリティ分散ハッシュテーブル (DHT)
大量のドキュメントを分散管理した場合 , ドキュメント全文に AND 検索をかけられない
Skip Graph と Bloom Filter を利用し ,ノードが保持するドキュメント全文に対し , 効率よく AND 検索を行なう手法を提案
3
Skip Graph [ 構造 ]
Level0
Level2
Level12 95 7
3 86
0000
1001
0100
10111101
0111 0010
0000 10010100 10111101 0111 0010membershipvector
2 95 73 86
key
20000
90010
50100
70111
81001
610113
1101
4
Skip Graph[ membership vector の基数による違い ]
membership vector が2進数の場合 membership vector が5進数の場合
高さは平均で logwN
Level0
Level1
Level2
Level3
Level4
5
Bloom Filter
00 11 22 33 44 55 66 77
- 8bit の Bloom Filter -
applebanana
Bloom Filter
hash1( ); hash2( ); hash3( );ハッシュ関数 :
apple banana grapemelon
0 532 361 522 53
0 0 0 0 0 0 0 01 0 0 1 0 1 0 01 0 1 1 0 1 1 01 0 1 1 0 1 1 0
偽陽性
6
Bloom Filter の集約apple strawberry
grape banana
Fruitscabbage pumpkin
cucumber carrot
Vegetables
0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1
Fruits Bloom Filter Vegetables Bloom Filter
論理和
0 1 1 0 1 1 1 1
apple strawberry cabbage pumpkin
grape banana cucumber carrot
Fruits + Vegetables Bloom Filter
7
Level0
Level1
2 95 7
3 86
2 95 73 86
提案手法 [ 構造 ]
ポインタ
ドキュメント
Bloom Filter
3 6 8
8
提案手法 [ 構造 ]
Level0
Level2
Level1
2 95 73 86
2 95 7
3 86
3
2 95 7
86
2Level3
3
5 7
86
9
3
5 7
9
6 8
9
Bloom Filter での AND 検索
0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0
apple Bloom Filter banana Bloom Filter
1 1 1 0 1 0 1 1
1 1 1 0 0 0 0 1
論理和
Fruits Bloom Filterapple AND banana
の検索
10
提案手法 [ 検索 ]
Level0
Level2
Level1
2 95 73 86
2 95 7
3 86
32 9
5 786
2 Level3
3
5 7
86
9
5 7
3 6 8
9
apple AND banana の検索
O(logwN)
w = membership vector の基数N = ノード数
11
Level0
Level2
Level1
2 95 73 86
2 95 7
3 86
32 9
5 786
2 Level3
3
5 7
86
9
5 7
3
9
提案手法 [ Bloom Filter の更新 ]
O(wlogwN)
w = membership vector の基数N = ノード数
12
シミュレーションによる評価提案手法での複数キーワード検索時における
1. 検索ホップ数2. Bloom Filter 更新時の更新メッセージ数
測定条件
ノード数: 100 〜 1000 個membership vector の基数:2〜5ドキュメント:基本英単語 5,800 語からランダムに 300 語を 抽出したテキストファイル 100 個各ノードはランダムに 1 〜 5 個のドキュメントを保持Bloom Filter
ビット長: 10240 ビットハッシュ関数:4個
13
評価 [ ノード数に対する 検索ホップ数 ]
membership vector が2進数
3 進数
4 進数
5 進数
検索ホッ
プ数
ノード数 (N)
ネットワーク全体にヒットするドキュメントが1つ
O(logwN)
14
提案手法 [ 検索ホップ数 ]
Level0
Level2
Level1
2 95 73 86
2 95 7
3 86
32 9
5 786
2 Level3
3
5 7
86
9
5 7
3 6 8
9
15
評価 [ ノード数に対する 検索ホップ数 ]
membership vector が2進数
3 進数
4 進数
5 進数
検索ホッ
プ数
ノード数 (N)
ネットワーク全体にヒットするドキュメントが1つ
O(logwN)
16
評価 [ ヒットするドキュメント数が変化したときの検索ホップ数 ]
ヒットするドキュメントの存在率 (%)
検索ホッ
プ数
ノード数が 500 のとき ヒットするキュメントの存在率を変化
3 進数
4 進数
5 進数
membership vector が2進数
ホップ数はほとんど増加しない
17
評価 [ 更新時のホップ数 ]
ノード数
メッセー
ジホッ
プ数 3 進数
4 進数
5 進数
更新時のメッセージホップ数
membership vector が2進数
O(wlogwN)
18
Level0
Level2
Level1
2 95 73 86
2 95 7
3 86
32 9
5 786
2 Level3
3
5 7
86
9
提案手法 [ Bloom Filter の更新ホップ数 ]
19
評価 [ 更新時のホップ数 ]
ノード数
メッセー
ジホッ
プ数
membership vector が2進数
3 進数
4 進数
5 進数
更新時のメッセージホップ数
基数が大きい程更新コストが大きくなる
O(wlogwN)
20
まとめ効率的な複数キーワード検索を実現
AND 検索を O(logwN)時間で実行できる.(w=membership vector の基数 , N= ノード数 )検索時間は,検索キーワードの数やドキュメントの数に依存しない.
今後の課題AND と OR を組み合わせた条件で検索ができるように拡張.大量のドキュメントがマッチした場合 , 検索結果の上限数を決める.
21
[ ]