P2PネットワークにおけるSkip GraphとBloom...

21
P2P ネネネネネネネネネネ Skip Graph ネ Bloom Filter ネネネネ ネネネネネネネネネネネネネネネネネネ ネネネネネネ ネネネネネネネ ネネ ネネ ネネ ネネ ネネ ネネ ネネ ネネ

Transcript of P2PネットワークにおけるSkip GraphとBloom...

Page 1: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

P2P ネットワークにおけるSkip Graph と Bloom Filter を用いた効率的な複数キーワード検索手法の提案

大阪市立大学 創造都市研究科岩本 大記 石橋 勇人安倍 広多 松浦 敏雄

Page 2: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

2

背景Peer-to-Peer ネットワーク

耐障害性スケーラビリティ分散ハッシュテーブル (DHT)

大量のドキュメントを分散管理した場合 , ドキュメント全文に AND 検索をかけられない

Skip Graph と Bloom Filter を利用し ,ノードが保持するドキュメント全文に対し , 効率よく AND 検索を行なう手法を提案

Page 3: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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

Page 4: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

4

Skip Graph[ membership vector の基数による違い ]

membership vector が2進数の場合 membership vector が5進数の場合

高さは平均で logwN

Level0

Level1

Level2

Level3

Level4

Page 5: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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

偽陽性

Page 6: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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

Page 7: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

7

Level0

Level1

2 95 7

3 86

2 95 73 86

提案手法 [ 構造 ]

ポインタ

ドキュメント

Bloom Filter

3 6 8

Page 8: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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

Page 9: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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

の検索

Page 10: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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 = ノード数

Page 11: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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 = ノード数

Page 12: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

12

シミュレーションによる評価提案手法での複数キーワード検索時における

1. 検索ホップ数2. Bloom Filter 更新時の更新メッセージ数

測定条件

ノード数: 100 〜 1000 個membership vector の基数:2〜5ドキュメント:基本英単語 5,800 語からランダムに 300 語を         抽出したテキストファイル 100 個各ノードはランダムに 1 〜 5 個のドキュメントを保持Bloom Filter

ビット長: 10240 ビットハッシュ関数:4個

Page 13: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

13

評価 [ ノード数に対する 検索ホップ数 ]

membership vector が2進数

3 進数

4 進数

5 進数

検索ホッ

プ数

ノード数 (N)

ネットワーク全体にヒットするドキュメントが1つ

O(logwN)

Page 14: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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

Page 15: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

15

評価 [ ノード数に対する 検索ホップ数 ]

membership vector が2進数

3 進数

4 進数

5 進数

検索ホッ

プ数

ノード数 (N)

ネットワーク全体にヒットするドキュメントが1つ

O(logwN)

Page 16: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

16

評価 [ ヒットするドキュメント数が変化したときの検索ホップ数 ]

ヒットするドキュメントの存在率 (%)

検索ホッ

プ数

ノード数が 500 のとき ヒットするキュメントの存在率を変化

3 進数

4 進数

5 進数

membership vector が2進数

ホップ数はほとんど増加しない

Page 17: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

17

評価 [ 更新時のホップ数 ]

ノード数

メッセー

ジホッ

プ数 3 進数

4 進数

5 進数

更新時のメッセージホップ数

membership vector が2進数

O(wlogwN)

Page 18: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

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 の更新ホップ数 ]

Page 19: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

19

評価 [ 更新時のホップ数 ]

ノード数

メッセー

ジホッ

プ数

membership vector が2進数

3 進数

4 進数

5 進数

更新時のメッセージホップ数

基数が大きい程更新コストが大きくなる

O(wlogwN)

Page 20: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

20

まとめ効率的な複数キーワード検索を実現

AND 検索を O(logwN)時間で実行できる.(w=membership vector の基数 , N= ノード数 )検索時間は,検索キーワードの数やドキュメントの数に依存しない.

今後の課題AND と OR を組み合わせた条件で検索ができるように拡張.大量のドキュメントがマッチした場合 , 検索結果の上限数を決める.

Page 21: P2PネットワークにおけるSkip GraphとBloom Filterを用いた効率的な複数キーワード検索手法の提案

21

[ ]