• Peer-to-Peer Systems
Content-Based Routing of Path
Queries in Peer-to-Peer Systems
Georgia Koloniari and Evaggelia Pitoura
Ingargiola Salvatore
Montauti Andrea
Pompei Fabio
• Sommario
• Introduzione
• Sistemi Peer-to-Peer
• Filtri di Bloom
• Organizzazione reti P2P: Content-Based
• Risultati Sperimentali
• Conclusioni
• Introduzione
“Migliorare le performance di
information retreaving in sistemi P2P”
Ipotesi di lavoro:
• Contenuto nodi: documenti XML schema-less
sintetizzati mediante filtri di Bloom multilivello
• Organizzazione rete: P2P Content-Based
• Tipologia query: path queries (XPath-like)
• Sistemi P2P: Stato dell’Arte
• Sistema Peer to Peer ibrido:
• impiega un server centrale per ottenere
meta-informazioni sull'identità dei Peer che
posseggono le informazioni richieste.
Napster e OpenNap
• Sistema Peer to Peer puro:
• I Peer sono connessi direttamente tra di loro.
• Non è necessario un server principale.
• Query routing: flooding, indici decentralizzati.
Gnutella e Freenet
• Filtro di Bloom
Un Bloom Filter è un vettore di bit definito da due
parametri :
2. K funzioni di Hash indipendenti con CDom in [1,M]
I bit del filtro sono usati per codificare in modo
efficiente un insieme di N oggetti.
Per Costruire un Bloom filter si scorrono uno dopo
l’altro gli oggetti dell’insieme. Applicando K funzioni
hash ad ogni oggetto si ottengono K valori hash, ogni
h1(a) = 4
h2(a) = 2
1
1
1
h3(a) = 5
h4(a) = 8
M=10 bits
1. Array di M bit
1
valore rappresenta la posizione di un bit che deve
essere settato ad uno.
N.B. : più di una chiave può settare lo stesso bit.
K = 4 funzioni di Hash
• Filtro di Bloom: esempio
Empty filter
pane
vino
pasta
Bloom Filter
QUERY
cane
gatto
THIVE
C
I
S
T
A
O
P
EM
O
S
L
N
A
F
• Filtri di Bloom multilivello
Filtri di Bloom semplici inadeguati per
sintetizzare la struttura multilivello dei
documenti XML.
Soluzioni proposte:
• Breadth Bloom Filters (BBF)
• Depth Bloom Filters (DBF)
• Breath Bloom Filter
XML
<sport>
<moto>
</moto>
<auto>
<f3000></f3000>
<f1></f1>
</auto>
</sport>
sport
moto
f3000
auto
f1
BBF0
1 1 1 0 1 0 1 1 1 1
BBF1
1 0 1 0 1 0 0 0 0 0
BBF2
0 1 1 0 0 0 1 0 0 1
BBF3
0 1 0 0 1 0 0 1 1 1
• BBF filter-match operation
sport
moto
Root query:
auto
f3000
/sport/auto/f1
f1
BBF0
1 1 1 0MA1TC0H 1 1 1 1
sport U auto U f1
1 1 1 0 1 0 1 0 1 1
BBF1
1 0 1 0MA1TC0H0 0 0 0
sport
1 0 1 0 1 0 0 0 0 0
BBF2
0 1 1 0MA0TC0H1 0 0 1
auto
0 0 1 0 0 0 1 0 0 1
BBF3
0 1 0 0MA1TC0H 0 1 1 1
f1
0 1 0 0 0 0 0 0 1 1
• Depth Bloom Filter
XML
<sport>
<moto>
</moto>
<auto>
<f3000></f3000>
<f1></f1>
</auto>
</sport>
sport
moto
f3000
DBF0
1 1 1 0 1 0 1 1 1 1
DBF1
0 1 1 0 1 0 0 1 0 1
DBF2
1 0 0 0 1 1 1 0 0 1
auto
f1
• DBF filter-match operation
sport
moto
Root query:
auto
f3000
/sport / auto / f1
f1
DBF0
1 1 1 0MA1TC0H 1 1 1 1
sport U auto U f1
1 1 1 0 1 0 1 0 0 1
DBF1
0 1 1 0MA1TC0H 0 1 0 1
sport/auto U
auto/f1
0 0 1 0 1 0 0 1 0 1
DBF2
1 0 0 0MA1TC1H 1 0 0 1
sport/auto/f1
1 0 0 0 1 0 1 0 0 0
• Risultati Sperimentali
80
BBF ≈ DBF con
filtri maggiori di
78.000 bit
60
simple
breadth
depth
40
20
0
30000
50000
78000
96000
150000
Grandezza Filtri
100
Migliori
performance di BBF
con elevato numero
di elementi
% Falsi Positivi
% Falsi Positivi
100
80
60
simple
40
breadth
20
depth
0
10
25
50
100
Elementi per documento
150
• Struttura gerarchica reti P2P
Local filter
Local filter n6
0 1 0 1 0 1 1 0 0 1
1 0 0Merged
0 0 1 1 filter
1 0 1
Merged filter Nn
N6
1 1 0 1 0 1 1 1 0 1
1 0 0
1 0 1 1
1 0
0 1 0 1
0
n2
Merged filter N7
Merged filter
1 1 0 1 0 0 0 0 0 0
1 1 0 1 0 1 1 1 0 1
Local filter
1 1 1 1 0 0 0 0 0 1
n1
Local filter
Merged filter
0 1 0 1 0 1 10 11 00 01 0 1 1 1 0 1
Local filter n4
Local filter n5
1 0 0 1 0 0 0 0 0 1
1 1 0 0 0 1 1 1 0 1
n5
Merged filter N6
1 1Merged
0 1 0 1 1
1 0 1N7
filter
1 Merged
1 0 1 0 0filter
0 0 0 Nn
0
1 0 0 0 0 1 0 1 0 0
• Content-Based
Struttura gerarchica organizzata non più
sulla prossimità dei nodi bensì sulla
similarità dei loro contenuti
Operazioni analizzate:
• Join
• Query routing
• Update: CountSum, BitSum
• Content-Based: Join
XML
<foto>
<calendario>
<modelle>
</modelle>
</calendario>
</foto>
Merged filter
Merged filter
1 1 0 1 0 1 0 1 1 1
0 1 0 1 0 1 0 1 0 1
Similarity = m – d(Nx, Ny)
Filter nX
1 0 0 0 0 1 0 1 0 0
Funzione
Hash N1
Nx
Merged filter
9
N6
N7
N2
6
5
7
1 0 0 0 0 0 0 1 0 0
Threshold = 6
Filter
nX
Filter nX
nX
1 0 100 000 00 110 100 10 0 0
n1
Query filter
Path query
• Content-Based:
Query routing
//calendario/modelle
1 0 0 1 0 1 0 1 0 1
==
Local filter
1 1 1 0 0 0 0 1 0 0
A
Query filter
1 0 0 1 0 1 0 1 0 1
Query filter
Path query
• Content-Based:
Query routing
//calendario/modelle
1 0 0 1 0 1 0 1 0 1
Local filter N7
1 0 1 1 0 0 0 1 0 0
Merged filter N7
1 1 1 1 0 0 0 1 0 0
Merged filter Nnr
Merged filter N1r
1 1 1 1 0 1 0 1 0 1
Query filter
1 0 0 1 0 1 0 1 0 1
QueryPath
filter
query
• Content-Based: Query routing
1 0 0//calendario/modelle
1 0 1 0 1 0 1
Local filter N1
1 0 1 0 0 0 0 1 0 0
Query filter
1 0 0 1 0 1 0 1 0 1
Merged filter N1
1 1 1 1 0 1 0 1 0 1
Query filter
• Content-Based: Query routing
1 0 0 1 0 1 0 1 0 1
==
Local filter N3
1 1 0 1 0 1 0 1 0 1
Query filter
XML
1 0 0 1 0 1 0 1 0 1
Path query
//calendario/modelle
<foto>
<calendario>
<modelle>
</modelle>
</calendario>
</foto>
• Content-Based: Update
CountSum
BitSum
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
2
0
3
0
2
5
0
0
2
0
2
0
2
2
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
2
0
1
3
1
0
1
2
2
0
1
3
1
0
1
2
CountSum
BitSum
1
0
1
1
1
0
1
1
3
0
3
5
2
0
2
2
1
0
1
1
1
0
1
1
1
0
1
2
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
2
1
0
1
2
2
1
0
1
0
tempo
CountSum
BitSum
1
0
1
1
1
0
1
1
3
0
3
4
5
2
0
2
2
1
0
1
1
1
0
1
1
1
0
1
2
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
2
1
1
0
1
2
1
2
1
0
1
0
tempo
CountSum
BitSum
1
0
1
1
1
0
1
1
3
0
3
4
3
2
0
2
2
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
2
1
0
1
0
tempo
CountSum
BitSum
1
0
1
1
1
0
1
1
3
0
3
4
3
2
0
2
2
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
2
1
0
1
0
tempo
CountSum
BitSum
1
0
1
1
1
0
1
1
3
0
3
5
4
2
0
2
2
1
0
1
1
1
0
1
1
1
0
1
2
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
2
1
0
1
1
2
2
1
Con il metodo
Bitsum meno
scambi di messaggi
0
1
0
tempo
• Risultati Sperimentali
80
In sistemi
content-based
convergenza più
veloce
no filter
non content
content
60
40
20
0
0
50
100
150
200
Numero massimo di salti
100
Con filtri multilivello
minor numero di
salti per completare
la query
% of matching-nodes
% of matching-nodes
100
80
60
40
SBF content
BBF content
DBF content
20
0
0
50
100
150
Numero massimo di salti
200
• Conclusioni
Dal
processo
dicotomico
dell’analisi
sperimentale si evince che il miglioramento
delle performance nell’information retreaving
può essere ottenuto mediante:
1. Organizzazione gerarchica Content-Based
2. Filtri di Bloom multilivello BBF
3. BitSum come implementazione dei contatori
• Bibliografia
1. G. Koloniari, E. Pitoura. (2004) Content-Based Routing of Path
Queries in Peer-to-Peer Systems. In Proceedings of the 9°
Intenational Conference on Extending Database Technology, pages
29-47.
2. G. Koloniari, E. Pitoura. Filters for XML-based Service Discovery in
Pervasive Computing. Computer Science Dept, University of
Ioannina, Greece.
3. X. Gong, W. Qian, Y. Yan, A. Zhou. Bloom Filter-based XML Packets
Filtering for Millions of Path Queries. Department on Computer
Science and Enngineering Fundan University, Shanghai, China.
4. N. Gioia. (2004) Un sistema Peer-to-Peer per l’interrogazione
distribuita di dati XML. Tesi di Laurea, Università degli studi di Pisa.
• Peer-to-Peer Systems
Content-Based Routing of Path
Queries in Peer-to-Peer Systems
Georgia Koloniari and Evaggelia Pitoura
Ingargiola Salvatore
Montauti Andrea
Pompei Fabio
Scarica

Document