p-grid: a self-organizing access structure for p2p information systems karl aberer presentazione et...

33
P-Grid: A Self- Organizing Access Structure for P2P Information Systems Karl Aberer Presentazione et codice: Antonio Gaetani Marco Montali Marco Tamburini

Upload: loredana-angeli

Post on 02-May-2015

214 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)