24

Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Embed Size (px)

Citation preview

Page 1: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati
Page 2: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

OutlineOutline

• Database P2P e stato dell’arte delle strutture di indice

• Obiettivi dell’architettura P-Ring

• Soluzioni di P-Ring

• Verifiche sperimentali dei risultati

P-Ring

Gruppo 20 – Altini Bonetti Cardone

Page 3: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Database peer - to - peerDatabase peer - to - peer

• Perchè si usano?– Fault tolerance– Robustezza– Scalabilità

• Requisiti– Query di uguaglianza– Query di range

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Gruppo 20 – Altini Bonetti Cardone

(q,r)

Page 4: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Parametri di performanceParametri di performance

1. Load Balancing– Load imbalance

2. Performance di query

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

(q,r)(q,r)

|nodoPiuCarico|

|nodoMenoCarico|

Page 5: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Stato dell’arteStato dell’arte

• Chord– Basato su hashing load balanced– Dati non ordinati query di range

non supportate

• BATON*– Performance di query proporzionali

a logdP

– Nessuna garanzia di load balancing

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Page 6: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Hashing di ChordHashing di Chord

Massive Attack[0,8)

[32,40)

[26,32)[15,26)

[8,15)

Load balancing Performance di query

Mogwai

Mono

Munari

Mùm

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Page 7: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Mantenendo l’ordine?Mantenendo l’ordine?

Massive AttackAB..

OA..

MA.. GA..

DA..

Mogwai

Mono

Munari

Mùm

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Load balancing Performance di query

Page 8: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Obiettivi di P-RingObiettivi di P-Ring

• Supportare query di uguaglianza e di range

• Distribuire uniformemente i dati tra i peer

• Garantire routing efficiente dei messaggi sull’anello

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Load balancing

Performance di query

Page 9: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Data StoreData Store

• Peer divisi in due gruppi:– Owner peers ( sf ÷ 2sf )– Helper peers ( scarichi )

Se viene inserito un elemento in un peer che ha già 2sf elementi

Se viene cancellato un elemento in un peer che ha sf elementi

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

overflowunderflow

sf = N/P

Page 10: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Data Store - OverflowData Store - Overflow

1: p0 = getHelperPeer();

2: if p0 == null then

3: return;

4: end if

5: //execute the split

6: splitItems = p:own.splitSecondHalf();

7: splitV alue = p:own.lastValue();

8: splitRange = p:range.splitLast(splitV alue);

9: p0::joinRingMsgHandler(p,splitItems,splitRange);

P1 [0,8)

P5 [32,40)

P4 [26,32)

P3 [15,26)

P2 [8,15)

Algorithm 1 : p.split()

Helper peers

[15,20)

P [20,26)

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Page 11: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Data Store - UnderflowData Store - UnderflowAlgorithm 3 : p.merge()1: //send message to successor and wait for

result

2: (action; newRange; newItemsList) =

p:ringNode:getSuccessor()::

initiateMergeMsgHandler(p, jp:ownj);

3: p:own.add(newItemsList);

4: p:range.add(newRange);

Algorithm 4 : (action; newRange; newItemsList)p0.initiateMergeMsgHandler(p,numItems)1: if numItems + jp0:ownj > 2 ¢ sf then2: //redistribute3: compute nbItemsT oGive;4: splitItems = p0:own.splitFirst(nbItemsT oGive);5: splitV alue = splitItems:lastValue();6: splitRange = p0:range.splitFirst(splitV alue);7: return (redistribute,splitRange,splitItems);8: else9: //merge and leave the ring10: splitItems = p0:own;11: splitRange = p0:range;12: p0:ringNode:leaveRing();13: return (merge, splitRange, splitItems);14: end if

P1 [0,8)

P5 [32,40)

P4 [26,32)

P3 [15,26)

P2 [8,15)

[30,32)

[15,30)

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Page 12: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

RisultatiRisultati

• Load imbalance ≤ 2...siamo proprio sicuri?

Usare gli helper peer per bilanciare davvero il carico

• Ogni owner è responsabile del suo range...ma gli elementi sono distribuiti anche tra gli helper peer

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Page 13: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

OverflowOverflowP1 [0,8)

q2 [28,30)

P4 [32,34)

P2 [8,15)

P3 [15,24)

q3 [26,28)

P5 [34,42)

q4 [24,26)

q1 [30,32)

Inserimento su P4

P [32,34)

q1 [30,32)

q2 [28,30)

P4 [26,28)

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Page 14: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

UsurpUsurp

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

sf

Load balancing ancora non garantito

Esempio:

Serve un’ulteriore operazione

< sf !!

< sf!!

< sf!!

Page 15: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

UsurpUsurp

Algorithm 5 : p.usurp()

1: //find least loaded helper peer and its ”master”

2: (q,p0) = getLeastLoadedHelperPeer();

3: if jp.respj ¸ 2p1 + ±jq.respj then

4: p:setHelperPeer(q);

5: redistribute p:own among new set of helpers;

6: redistribute p0:own among new set of helpers;

7: end if

P1

P2

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Load imbalance ≤ 2+ε

Page 16: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Content RouterContent Router

Obiettivo: inoltrare efficientemente i messaggi

Problema : dati non uniformi

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

(q,r)

Page 17: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Problemi di indicizzazioneProblemi di indicizzazione

• Utilizzare tabelle o B+tree? – Problema di consistenza

• Indicizzare per valore di chiave? – Load balancing esplicito non lo

consente (distribuzione non uniforme dei dati)

• Indicizzare per posizione!

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

No

No

HR

Page 18: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Hierarchical RingHierarchical Ring

P1

P5

P4

P3

P2

10,P2 15,P31

20,P53

15,P3 20,P52

5

20

1815

10

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

•d: ordine dell’anello, intero positivo > 1

•Livello 1: primi d successori del peer

•Livello 2: peer ogni d hop

•Livello 3: peer ogni d2 hop

•Livello i : peer ogni d(i-1)

hop

Page 19: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Content Routing - EsempioContent Routing - Esempio

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Query di uguaglianzaValore richiesto 18

Algorithm :p.routeHandler(lb, up, msg, originator)

find the maximum level l s.t. j > 0p.node[l][j].iValue Є (rangeMin(p), lb].if no such level exists then

send(p.handleMessage(msg),originator);if rangeMin(succ(p)) Є(rangeMin(p); ub] then

send(Route(lb,ub,msg,originator,requestT ype),succ(p));elsesend(RoutingDoneMessage,originator);end ifelsefind maximum k such thatp.node[l][k].iValue Є(rangeMin(p); lb];send(Route((lb,ub,msg,originator),p.node[l][k].peer));end if

Performance: logdP + m

Page 20: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

Stabilizzazione dell’indiceStabilizzazione dell’indice...e durante inserimenti di peers?

Se l’HR non è consistente: caso peggiore scan sequenziale

algoritmo di stabilizzazione

• L’algoritmo gira indipendendemente su ogni peer

• È dimostrato che converge• Performance: logdP + m + 2r(d-1)logdP

20,p5

15,p3 20,p5

10,p2 15,p3

p1

5,p1

18,p4 5,p1

15,p3 18,p4

p2

Gruppo 20 – Altini Bonetti Cardone

succ()

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Page 21: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

PerformancePerformance

• Grafici (primo, terzo, 4-5-6 , un paio degli ultimi)

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Overhead di traffico rispetto alla velocità di inserimento degli elementi

Primo obiettivo raggiuntoSupporto alle query di range

Page 22: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

PerformancePerformance

• Grafici (primo, terzo, 4-5-6 , un paio degli ultimi)

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Load imbalance medio con diverse distribuzioni di dati

Secondo obiettivo raggiunto

Loadbalancing

Page 23: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati

PerformancePerformance

• Grafici (primo, terzo, 4-5-6 , un paio degli ultimi)

Gruppo 20 – Altini Bonetti Cardone

P-Ring

Stato

dell’art

e

Obiettivi

Soluzioni

Verifiche

Costo di ricerca di un peer al variare del numero dei peer

Terzo obiettivo raggiunto

Buone performancedi query

Page 24: Outline Database P2P e stato dellarte delle strutture di indice Obiettivi dellarchitettura P-Ring Soluzioni di P-Ring Verifiche sperimentali dei risultati