p-grid: a self-organizing access structure for p2p information systems karl aberer presentazione et...
TRANSCRIPT
![Page 1: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/1.jpg)
P-Grid: A Self-Organizing Access Structure for P2P
Information Systems
Karl Aberer
Presentazione et codice:Antonio Gaetani
Marco MontaliMarco Tamburini
![Page 2: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/2.jpg)
Agenda
Stato dell’arte e motivazioni: strutture per l’accesso ai dati nei sistemi P2P
Definizione e proprietà di P-Grid Algoritmo di ricerca all’interno di una P-Grid Costruzione di una P-Grid Considerazioni sull’efficienza, problematiche
e DEMO!
![Page 3: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/3.jpg)
RICERCA INEFFICIENTE
Stato dell’arte Tipiche infrastrutture P2P per il file sharing
(Gnutella): Nessun meccanismo di indicizzazione Richieste mandate in broadcast
![Page 4: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/4.jpg)
Obiettivo Lo scopo è quindi quello di costruire una
struttura distribuita per l’accesso ai dati che sia totalmente decentralizzata scalabile affidabile
![Page 5: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/5.jpg)
L’idea di base Mediante meeting randomici tra i peer,
essi: Si partizionano lo spazio di ricerca Acquisiscono informazioni per interagire con
altri peer durante successive richieste di ricerca
Il risultato è la struttura di accesso distribuita chiamata P-Grid
![Page 6: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/6.jpg)
Ricerca con Gnutella (Intuitivamente)
CommediaJeff Kanew
La rivincita dei nerdz
No!Mi dispiace
No!Mi dispiace
Sì!Te lo mando
![Page 7: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/7.jpg)
Ricerca con P-Grid (Intuitivamente)
Ce l’ho!
CommediaJeff Kanew
La rivincita dei nerdz
Gùgù:
Gestisco commedie, ma per Jeff Kanew devo chiedere
a Tambu
CommediaJeff Kanew
La rivincita dei nerdz
Tambu:
Gestisco commedie di
Jeff Kanew, ma per i nerds
devo chiedere a Papà
CommediaJeff Kanew
La rivincita dei nerdz
Papà:
Papà
PapàPapà
CommediaJeff Kanew
La rivincita dei nerdz
Papà:
![Page 8: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/8.jpg)
La P-Grid Una P-Grid è una struttura di accesso ai dati
distribuita: I dati sono rappresentati da chiavi binarie I peer si ripartiscono lo spazio delle chiavi effettuando
degli incontri Ogni peer possiede un path (determinato dagli incontri
fatti) che rappresenta il prefisso del sottospazio delle chiavi che gestisce
Ogni peer possiede una griglia di riferimenti ad altri peer I peer riferiti da a a livello i hanno la proprietà che
completano lo spazio delle chiavi di a rispetto all’i-mo bit del path
La determinazione di tali riferimenti viene effettuata secondo algoritmi probabilistici
Un peer con path 10 gestisce tutte le chiavi
che cominciano per 10!
Proprietàr può appartenere all’insieme dei
riferimenti di a=p1…pk a livello i se
prefix(i,r)=[prefix(i-1,a),pi]
![Page 9: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/9.jpg)
Un peer nella P-Grid
P1
0 1 1
chiave doc
owner
011… Pa
011… Pb
011… Pc
011… Pd
PX
Pz
Pw
1 … …
0 0 …
A regime conterrà tutti idocumenti nella rete
con chiave che inizia per 011!
Py
1 … …
0 1 0 …
0
1
1
Livello 1
Livello 2
Livello 3
![Page 10: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/10.jpg)
Algoritmo di ricercaquery(peer a,query p,livello l) {
found= false;
remanent_path = sub_path(path(a), l, k);
common_path = common_prefix_of(p, rempath);
IF length(common_path) = length(p)
THEN result = a
ELSE IF length(path(a)) > l + length(compath)
THEN
querypath = sub_path(p, length(compath) + 1,length(p));
refs = refs(l + length(compath) + 1, a);
WHILE |refs| 1 AND NOT found
r = random_select(refs);
IF online(peer(r))
found = query(peer(r), querypath, l+length(compath));
RETURN found;
}
(peer1, 1000, 1) {
1000;1000;
LunghezzaDella query
iniziale
IF 4 = 4
peer1
peer1 responsabile
per 1000
path(peer1)=1000
![Page 11: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/11.jpg)
Algoritmo di ricerca (altro esempio)query(peer a,query p,livello l) {
found= false;
remanent_path = sub_path(path(a), l, k);
common_path = common_prefix_of(p, rempath);
IF length(common_path) = length(p)
THEN result = a
ELSE IF length(path(a)) > l + length(compath)
THEN
querypath = sub_path(p, length(compath) + 1,length(p));
refs = refs(l + length(compath) + 1, a);
WHILE |refs| 1 AND NOT found
r = random_select(refs);
IF online(peer(r))
found = query(peer(r), querypath, l+length(compath));
RETURN found;
}
peer1, 1000, 1 ) {
1011
102 4
path(peer1)=1011
NO
4 2
00Esempio:peer3 (ON)peer5 (OFF) peer6 (ON)
peer3
query(peer3, 00, 3);
peer3
peer3 peer3
query(peer a,query p,livello l) {found= false;remanent_path = sub_path(path(a), l, k);common_path = common_prefix_of(p, rempath);IF length(common_path) = length(p)
THEN result = aELSE. . .
Prende la parte di query che
rimane togliendo il prefisso comune
Estrae i riferimenti al livello 3, quindi
a peer che gestiscono path del tipo 100…
path(peer3)=1000…
peer3, 00, 3
00
00
peer 3 è responsabile
per la chiave 1000
![Page 12: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/12.jpg)
Algoritmo di ricerca Si noti come il peer risultante dalla query
non sia l’effettivo owner del documento ma colui che se interrogato è in grado di restituire il peer che è il reale possessore del dato
Per acquisire l’item il PASKER non dovrà fare altro che interrogare successivamente il risultante della query e colui che gli sarà segnalato come owner del documento
![Page 13: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/13.jpg)
P-Grid (già inizializzata)P1
P2
P5
P6
P4
P3
0 1 1
1 0
0 0
1 1 0
1 1 1
0 1 0
![Page 14: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/14.jpg)
Esempio di query (1°)
P1
0 1 1
0 1 1
ask(011)
MATCH
![Page 15: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/15.jpg)
Esempio di query (2°)
P1
0 1 1
0 1 0
ask(010)
ask(010,level(3))
P5
0 1 0
X X 0
response(P5 )
MATCH
![Page 16: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/16.jpg)
Esempio di query (3°)
P1
0 1 1
1 1 0
ask(110)
ask(110,level(1)) P2
1 0
1 1 0
response(P4)
P4
ask(1
10,leve
l(2))
resp
onse(P 4
) 1 1 0
X 1 0MATCH
![Page 17: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/17.jpg)
P2
Esempio di query (4°)
P1
0 1 1
1 1 0
ask(111)
ask(111,level(1))
P6
ask(111,level(1))
response(P4)
1 1 1
1 1 1
PEER OFF-LINE
MATCH
![Page 18: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/18.jpg)
Costruzione della P-Grid Il processo di costruzione della P-Grid si basa sul
concetto di meeting Un meeting è un incontro di due peer durante il
quale viene effettuata la procedura di exchange Tramite la procedura di exchange la coppia cerca di
Raffinare il proprio path Aggiornare i propri riferimenti
Due peer si possono incontrare: Randomicamente Durante altre operazioni Quando si trovano in relazione mentre eseguono una
query
![Page 19: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/19.jpg)
Procedura di exchangeexchange(a1, a2, r){commonpath = common_prefix_of(path(a1), path(a2));lc = length(commonpath);IF lc > 0
{commonrefs = union(refs(lc, a1), refs(lc, a2));refs(lc, a1) = random_select(refmax, commonrefs);refs(lc, a2) = random_select(refmax, commonrefs);... PA PB
PY
0 1 1
PX
PZ
0 1 0
PY
PWPYPX
PZ
PW
lc=2
PX
PW
refmax=3
refmaxè un parametro che
indica il numero massimo di
riferimenti per livello
![Page 20: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/20.jpg)
Procedura di exchangel1 = length(sub_path(path(a1), lc + 1, length(path(a1)));l2 = length(sub_path(path(a2), lc + 1, length(path(a2)));
CASE l1 = 0 AND l2 = 0 AND length(commonpath) < maxlengthpath(a1) = append(path(a1), 0);path(a2) = append(path(a2), 1);refs(lc + 1, a1) = {a2};refs(lc + 1, a2) = {a1};
Caso 1: se i path dei peer sono uguali si introduce un nuovo livello
maxlengthè un parametro che indica
la dimensione massima dei path
![Page 21: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/21.jpg)
Esempio di exchange (1°)
PA
0 1 1
PB
0 1 0
PB PA
![Page 22: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/22.jpg)
Procedura di exchange
CASE l1 = 0 AND l2 > 0 AND length(commonpath) < maxlengthpath(a1) = append(path(a1), value(lc+1, path(a2)^-);refs(lc + 1,a1)={a2};refs(lc + 1,a2)=random_select(refmax,union({a1},refs(lc+1,a2));
Caso 2: se il path di un peer è prefisso dell’altro e non si è raggiunta ancora la maxlength splittiamo lo spazio del primo peer con il valore (lc+1)-esimo complementato del secondo e aggiorniamo i riferimenti
Banalmente se l1>0 e l2=0 vale una procedura specularealla precedente
![Page 23: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/23.jpg)
Esempio di exchange (2°)
PA
0 1 1
PB
PB
PY
0 1 0
PX PA
PYPX
refmax=2
PA
![Page 24: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/24.jpg)
Procedura di exchange
CASE l1 > 0 AND l2 > 0 AND r < recmax,refs1 = refs(lc+1, a1) \ {a2};refs2 = refs(lc+1, a2) \ {a1};FOR r1 IN refs1 DO
IF online(peer(r1))THEN exchange(a2, peer(r1), r+1);
FOR r2 IN refs2 DOIF online(peer(r2))
THEN exchange(a1, peer(r2), r+1);
Caso 3: se i path dei due peer sono differenti si considera il livello corrispondente al primo bit differente (che è l’ lc+1-mo). I riferimenti di quel livello di ciascuno dei due peer saranno oggetto di exchange con l’altro. recmax
è un parametro che indica il massimo grado di
ricorsione della procedura di exchange
![Page 25: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/25.jpg)
Esempio di exchange (3°)
PA PB
PG
PF
0 1 1 0 0 1 0 0
PDPC
PE PH
0 1 0 0
0 1 0 1
0 1 1
0 1 1 1
0 1 1 0
0 1 0
PB
PA
![Page 26: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/26.jpg)
AttenzioneCASE l1 > 0 AND l2 > 0 AND r < recmax,
r parametro di input della procedurarecmax valore di sistema (numero massimo di ricorsioni successive)
Sperimentalmente:recmax ottimo =2
PA PB
0 1 1 0 0 1 0 0
PDPC
PE
0 1 0 0
0 1 0 1
0 1 0
PK
0 1 0 0
![Page 27: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/27.jpg)
Non siete convinti? Intuitivamente può capitare che uno dei
peer sul percorso sia offline… e allora addio al file desiderato!!!
Vi dimostreremo che sarà possibile:
con solo il 30%di nodi online
99% di possibilitàdi reperire il documento
![Page 28: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/28.jpg)
Considerazioni Definiamo:
refmax # riferimenti memorizzati dal singolo peer per ogni livello
k lunghezza della chiave p probabilità che un peer sia on-line
Nel nostro esempio ci riferiamo a valori di refmax=20, k=10, p=30%
Consideriamo il caso peggiore ad ogni livello un nuovo peer deve essere
contattato
![Page 29: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/29.jpg)
Dimostrazione
1-(1-p)refmax
(1-(1-p)refmax)k
probabilità di raggiungereun peer al livello successivo
probabilità effettuare unaricerca con successo
valore relativo:99,9%
valore relativo:99,2%
consideriamok livelli
![Page 30: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/30.jpg)
Inizializzazione Come la P-Grid debba essere costruita in fase di
start-up è un problema che non viene trattato dagli algoritmi precedenti
Sarà tra poco pubblicato un lavoro riguardante queste tematiche. In breve ad ogni meeting: Ciascun peer arricchisce la propria conoscenza sui
documenti presenti nella rete esplorando quelli dell’altro (aggiungendo item a livello foglia)
Fa una update sui documenti da lui gestiti in caso di modifica del proprio path (eliminazione di documenti non più gestiti)
Per maggiori informazioni, le tecniche esposte sono state implementate nella nostra applicazione
![Page 31: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/31.jpg)
Update All’aggiunta di un nuovo documento in uno dei
peers facenti parte della P-Grid è necessario eseguire una procedura di update su ciascun peer che a livello foglia dovrebbe gestire la chiave della nuova entry
Varie tecniche sono possibili: Facendo ripetutamente ricerche randomiche depth-first
nella speranza di fare tutte le update necessarie Facendo un’unica ricerca breadth-first e conseguenti
update Mantenendo una lista dei peers che sono responsabili
della stessa chiave e facendo una solo ricerca depth-first
Sperimentalmente èrisultata la miglior
soluzione
![Page 32: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/32.jpg)
N-GRID E’ un simulatore di una rete P2P basata su P-Grid
le cui parti costituenti sono: Un peerPooler, che gestisce i meeting tra i peer N peer, ciascuno dei quali rappresenta un nodo fisico:
È in realtà un thread che esegue in modo indipendente dagli altri peer
È l’owner di una serie di documenti le cui chiavi sono generate a caso
Risponde a query per un documento Manifesta (su richiesta) i suoi riferimenti ai vari livelli
Un’astrazione di rete, che ci ha permesso di implementare gli algoritmi come se ci trovassimo effettivamente in un ambiente distribuito
![Page 33: P-Grid: A Self-Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini](https://reader036.vdocuments.site/reader036/viewer/2022081518/5542eb66497959361e8d2082/html5/thumbnails/33.jpg)
Riferimenti [1] Karl Aberer, Magdalena Punceva, Manfred Hauswirth, Roman
Schmidt: “Improving Data Access in P2P Systems” [2] Karl Aberer, Philippe Cudré-Mauroux, Anwitaman Datta, Zoran
Despotovic, Manfred Hauswirth, Magdalena Punceva, Roman Schmidt: “P-Grid: A Self-organizing Structured P2P System”
[3] Karl Aberer, Philippe Cudré-Mauroux, Anwitaman Datta, Zoran Despotovic, Manfred Hauswirth, Magdalena Punceva, Roman Schmidt, Jie Wu :”Advanced Peer-to-Peer Networking: The P-Grid System and its Applications”
[4] Roman Schmidt: “Gridella: an open and efficient Gnutella-compatible Peer-to-Peer System based on the P-Grid approach”
[5] Karl Aberer, Anwitaman Datta, Manfred Hauswirth, Roman Schmidt: “Indexing data-oriented overlay networks” (NON ANCORA PUBBLICATO)