Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

42
DHT’s DHT’s Taules de Hash Distribuïdes Taules de Hash Distribuïdes Toni Figueroa Cubells - tfigueroa@tinet.org Col·laborador del grup de recerca “Arquitectura i serveis telemàtics” Base de les aplicacions P2P Base de les aplicacions P2P

description

Es tracta d'una presentació que vaig realitzar l'any 2005 sobre taules de Hash distribuïdes en el marc del grup de recerca en sistemes distribuïts de la Universitat Rovira i Virgili

Transcript of Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Page 1: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’sDHT’sTaules de Hash DistribuïdesTaules de Hash Distribuïdes

Toni Figueroa Cubells - [email protected]·laborador del grup de recerca “Arquitectura i serveis telemàtics”

Base de les aplicacions P2PBase de les aplicacions P2P

Page 2: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes

Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...

Introducció a les DHT’sMotivació i visió general, concepte, característiques

“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...

Línies de recercaCap a les “Overlay network”, situació actual

Simulador interactiu de “Chord”

Toni Figueroa Cubells

Page 3: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes

Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...

Introducció a les DHT’sMotivació i visió general, concepte, característiques

“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...

Línies de recercaCap a les “Overlay network”, seguretat, situació actual

Simulador interactiu de “Chord”

Toni Figueroa Cubells

Page 4: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Xarxes P2P conceptes clauXarxes P2P conceptes clau

Són aplicacions i sistemes que utilitzen recursos d’una manera descentralitzada.

Desapareix el concepte de servidor. Tots els clients tenen el mateix rol. La caiguda d’un o varis nodes no implica

una fallada del sistema, ni la pèrdua d’informació.

Toni Figueroa Cubells 4

Page 5: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Escalabilitat Eliminem dependències de punts

centralitzats Evitem costos en grans infraestructures:

emmagatzemament, ample de banda, ... Faciliten la incorporació de nous recursos

Toni Figueroa Cubells

Avantatges de les P2PAvantatges de les P2P

5

Page 6: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

1a. Generació:- Índex centralitzat en un servidor (Napster).

2a. Generació:- Algorismes basats en inundació (Gnutella).

3a. Generació:- Algorismes basats en l’encaminament dinàmic.- DHT’s (Chord, kademlia, Pastry, ...)

Toni Figueroa Cubells

Evolució de les P2PEvolució de les P2P

6

Page 7: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Supercomputació distribuïda:SETI@Home, Folding@Home

Compartició de fitxers: Napster, eMule, Gnutella, Kazaa, ...

Comunicació i col·laboració:Groove, Chord DNS (DDNS)

Toni Figueroa Cubells

Aplicacions de les xarxes Aplicacions de les xarxes P2PP2P

7

Page 8: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Estructura d’una aplicació Estructura d’una aplicació P2PP2P

Sis

tem

a d

e fi

txer

slo

cal

Lògica del’aplicació

DHT Inte

rfíc

ie d

e xa

rxa

ProtocolsTCP, UDP

Aplicació P2P

Toni Figueroa Cubells 8

Page 9: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes

Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...

Introducció a les DHT’sMotivació i visió general, concepte, característiques

“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...

Línies de recercaCap a les “Overlay network”, seguretat, situació actual

Simulador interactiu de “Chord”

Toni Figueroa Cubells

Page 10: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Taules de Hash distribuïdes? Emmagatzemar parelles clau/valor d’una

manera distribuïda i descentralitzada. Millorar l’eficiència en la localització de les

aplicacions P2P.- Fins ara encaminament basat en tècniques d’inundació.

Bàsicament implementar l’interface:- get(HashId key)- put(HashId key, Object value)

Toni Figueroa Cubells

DHT’s, motivació i visió DHT’s, motivació i visió generalgeneral

10

Page 11: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Toni Figueroa Cubells

DHT’s, concepteDHT’s, concepte

key pos

0

Funció hash

1

2

N-1

3...

x

y z

lookuplookup (key) → datainsert (key, data)

““Beatles”Beatles” 22

Taula hash

bucket hash

h(key)%Nh(key)%N

Model tradicional

0

1

2

...

node

key posfunció hash

lookuplookup (key) → datainsert (key, data)

““Beatles”Beatles” 22h(key)%Nh(key)%N

N-1

Model distribuït

11

Page 12: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Distribució uniforme de claus.- Hashing consistent, espai de Hash prefixat.- SHA-1 (Secure Hash)

Descentralització.- Cada node és un bucket de la taula Hash.- No és necessari la figura de cap servidor.

Escalabilitat.- Aquest model ha de permetre l’entrada i sortida massiva de nodes.- Necessitat d’implementar algoritmes d’encaminament dinàmic.

Toni Figueroa Cubells

DHT’s, característiques - IDHT’s, característiques - I

12

Page 13: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Accessibilitat.- S’ha de poder localitzar qualsevol clau des de qualsevol node, en un temps de resposta curt.

Tolerància a errors.- A priori entorn molt dinàmic amb nodes heterogenis.- Necessitat d’una política de replicació de claus.- Capacitat de recuperació i autoorganització.

Toni Figueroa Cubells

DHT’s, característiques - IIDHT’s, característiques - II

13

Page 14: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’s, resumDHT’s, resum

Què són:- Mecanisme de cerca directa en entorn distribuït.- Quan un node vol una clau, localitza el node que es responsable, o sap qui té la clau.- Proporcionen mecanismes d’encaminament descentralitzats, per evitar colls d’ampolla.

Què no són:- No emmagatzemen dades només claus, per poder localitzar les dades.- Les claus no representen significat semàntic, per cerca una clau necessitem el valor exacte de la clau.

Toni Figueroa Cubells 14

Page 15: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes

Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...

Introducció a les DHT’s Motivació i visió general, concepte, característiques

“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...

Línies de recercaCap a les “Overlay network”, seguretat, situació actual

Simulador interactiu de “Chord”

Toni Figueroa Cubells

Page 16: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Què és “Chord”?Què és “Chord”?

Eina de localització per aplicacions P2P internet, eficient i escalable.

Totalment descentralitzat i sense jerarquies. Donada una clau, mapeja aquesta clau a un

node.- Per tot k clau existeix n’ node t.q. successor(k) = n’

Els nodes/claus comparteixen un únic espai virtual d’adreçament, per on s’encaminen els missatges.

Toni Figueroa Cubells

!

16

Page 17: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Fonaments del protocol - IFonaments del protocol - I

Els nodes s’agrupen formant un anell d’identificadors de m bits.- Espai d’adreçament de 2m nodes/claus.- El node n-èssim només manté informació de m nodes.

Asimètric, cerques només en el sentit de les agulles del rellotge.

Hashing consistent, distribució uniforme.- Identificador k = SHA(k).- Identificador node = SHA(<ip><port>).

Toni Figueroa Cubells

espai d’ident.únic

17

Page 18: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Fonaments del protocol - IIFonaments del protocol - II

Localitzar una clau implica O(log N) missatges.

Capaç de suportar entrades i sortides de nodes de forma concurrent.

Quan el node n-èssim entra o surt de l’anell,- Calen O(log2 N) missatges per mantenir l’encaminament.- Només O(1/N) claus canviaran de node.

Toni Figueroa Cubells 18

Page 19: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Arquitectura del protocol - IArquitectura del protocol - I

Anell d’identificadors de m bits. “Chord” necessita assegurar dos invariants:

1.- Cada node n’ li cal informació del seu successor.2.- Per cada clau k, el successor(k) és responsable de k.

Per mantenir els dos invariants necessitem:- successor(n’).- predecessor(n’).- taula finger.

Toni Figueroa Cubells

!

19

Page 20: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Toni Figueroa Cubells

Concepte, successor(Concepte, successor( kk ) = ) = n’n’

6

1

2

6

0

4

26

5

1

3

7

2

identificador

node

k clau

successor(1) = 1

successor(2) = 3successor(6) = 0

• m=3, espai d’adreçament de 8 claus/nodes.

20

Page 21: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Toni Figueroa Cubells

Operació Operació joinjoin i i leaveleave

identificador

node

clau6

1

2

0

4

26

5

1

3

7successor(6) = 7

6

1

successor(1) = 3

k

• m=3, espai d’adreçament de 8 claus/nodes.

21

Page 22: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Arquitectura del protocol - IIArquitectura del protocol - II

El concepte de successor és insuficient,- És ineficient, la cerca d’una clau implica un recorregut lineal per l’anell O(N).- En un entorn molt dinàmic, no es garanteix l’èxit.

Necessitem mantenir més apuntadors a altres nodes, taula finger.- Permet fer les cerques en un cost O(log N).- En un entorn molt dinàmic, encara que els apuntadors no siguin correctes, la cerca també tindrà èxit.

Toni Figueroa Cubells 22

Page 23: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Toni Figueroa Cubells

Primer node n’t.q. n’ >= n.finger[k].inci

finger[k].node

[finger[k].inici, finger[k+1].inici)finger[k].interval

(n + 2k) mod 2m, 0<=k<mfinger[k].inici

DefinicióNotació

n = identificador del nodem = bits de l’espai d’adreçament

Notació de la taula Notació de la taula fingerfinger

• Estructura de dades necessària per mantenir el protocol.

23

Page 24: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

0

4

26

5

1

3

7

124

[1,2)[2,4)[4,0)

130

Taula finger 1inici int. succ.

claus1

235

[2,3)[3,5)[5,1)

330

Taula finger 3inici int. succ.

claus2

457

[4,5)[5,7)[7,3)

000

Taula finger 0inici int. succ.

claus6

Toni Figueroa Cubells

Inicialització de la taula Inicialització de la taula fingerfinger

• m=3, espai d’adreçament de 8 claus/nodes.

24

Page 25: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

0

4

26

5

1

3

7

124

[1,2)[2,4)[4,0)

130

Taula finger 1inici int. succ.

claus1

235

[2,3)[3,5)[5,1)

330

Taula finger 3inici int. succ.

claus2

457

[4,5)[5,7)[7,3)

000

Taula finger 0inici int. succ.

claus

Taula finger 6inici int. succ.

claus

702

[7,0)[0,2)[2,6)

003

6

6

66

6

Toni Figueroa Cubells

taula taula fingerfinger , operació , operació joinjoin

• m=3, espai d’adreçament de 8 claus/nodes.

25

Page 26: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

0

4

26

5

1

3

7

124

[1,2)[2,4)[4,0)

130

Taula finger 1inici int. succ.

claus1

235

[2,3)[3,5)[5,1)

330

Taula finger 3inici int. succ.

claus2

457

[4,5)[5,7)[7,3)

660

Taula finger 0inici int. succ.

claus

Taula finger 6inici int. succ.

claus

702

[7,0)[0,2)[2,6)

003

6

6

6

0

3

Toni Figueroa Cubells

taula taula fingerfinger , operació , operació leaveleave

• m=3, espai d’adreçament de 8 claus/nodes.

26

Page 27: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

n1

n8

n14

n32

n21

n38

n42

n48

n51

n56

k54

2m-1 0

n8+1

n8+2

n8+4

n8+8

n8+16

n8+32

n14

n14

n14

n21

n32

n42

+32

+16 +8

+4

+2

+1lookup(k54)

Taula finger n8

taula taula fingerfinger , operació , operació lookuplookup

• m = 6, espai d’adreçament de 64 claus/nodes.

Toni Figueroa Cubells 27

Page 28: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Concepte, predecessor(Concepte, predecessor( nn ) = ) = n’n’

Necessari per cercar el successor- successor(k) = successor( predecessor(k) )

n.find_successor(id)n’ = find_predecessor(id);return n’.successor;

n.find_predecessor(id)n’ = n;while (id not in (n’, n’.successor])

n’ = n’.closest_preceding_finger(id);return n’;

n.closest.preceding_finger(id)for i=m downto 1if (finger[i].node in (n,id))

return finger[i].node;return n;

Toni Figueroa Cubells 28

Page 29: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Operacions concurrents i Operacions concurrents i falladesfallades

Necessitem un protocol d’estabilització. Cada node l’executa periòdicament.

1.- Actualitzar successor.2.- Si cal notificar al nou successor el nou predecessor.3.- Actualitzar les entrades de la taula finger.

Objectius:- Mantenir els successors i predecessor actualitzats.- Fer servir els apuntadors anteriors per actualitzar les entrades de la taula finger.- Localitzar els nous nodes i descartar els que ja no hi són.

Toni Figueroa Cubells 29

Page 30: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

np

succ

(np)

= n

s

ns

n

pre

d(n

s) =

np

n joins

predecessor = nil

n obté ns com a successor via algun n’

n notifica ns per que sigui el seu nou predecessor

ns actualitza n com el seu predecessor

np executa l’estabilització

np demana a ns qui és el seu predecessor (ara n)

np actualitza el seu successor, ara és n

np ho notifica a n

n actualitza el seu predecessor, ara és np

* Tots els apuntadors generats per l’entrada del nou node són correctes

* Les taules finger s’han d’actualitzar però els antics apuntadors també serveixen

nil

pre

d(n

s) =

n

succ

(np)

= n

Toni Figueroa Cubells

Protocol d’estabilitzacióProtocol d’estabilització

30

Page 31: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes

Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...

Introducció a les DHT’s Motivació i visió general, concepte, característiques

“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...

Línies de recercaCap a les “Overlay network”, seguretat, situació actual

Simulador interactiu de “Chord”

Toni Figueroa Cubells

Page 32: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

““ Overlay network”Overlay network”

DHT’s són una primitiva de localització, només aporten put(key, value) i get(key).

Per localitzar una clau cal saber exactament el seu identificador.

Cal afegir un punt més de funcionalitat per millorar els criteris de cerca

Toni Figueroa Cubells 32

Page 33: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Mecanismes d’accés Mecanismes d’accés semànticsemàntic

Indexació de continguts basada en DHT’s. Proporcionar accés per contingut enlloc

d’accés per nom.- Permet construir sentències de cerca estructurades.

>SELECT files LIKE ‘java’ AND ‘xml’

IR(information retrival)semId(semantic identifier)

Toni Figueroa Cubells 33

Page 34: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Arquitectura d’una aplicació Arquitectura d’una aplicació P2P d’accés semànticP2P d’accés semàntic

Aplicació P2P

DHT

Lògica de l’aplicació

Sistema defitxers local

Obtenciósemàntica IR

Indexació semàntica,construcció clau única

Toni Figueroa Cubells 34

Page 35: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

““ Overlay networks”, Overlay networks”, seguretatseguretat

Motivació.- Què passa quan un node maliciós es connecta a la xarxa?

Quin és el repte?- Assegurar que quan un node vàlid envia un missatge a una clau, el missatge arriba a totes les repliques vàlides de la clau en una probabilitat molt alta.

Toni Figueroa Cubells 35

Page 36: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Nous conceptes de seguretat Nous conceptes de seguretat en xarxes P2Pen xarxes P2P

Cada node s’assigna ell mateix el nodeId. Cada node actua com un encaminador,

- Ha de mantenir una taula de rutes.- Ha de reenviar missatges a altres nodes.

Xarxes totalment descentralitzades.- No hi ha autenticació ni autorització.- No s’estableixen relacions de confiança, no es pot confiar en ningú.- Xarxes molt dinàmiques amb capacitat de reorganització.

Nivell de xarxa vs. nivell “Overlay”

Toni Figueroa Cubells 36

Page 37: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Possibles atacsPossibles atacs

En l’assignació del nodeId. En el manteniment de la taula de rutes. En el reenviament de missatges

Toni Figueroa Cubells 37

Page 38: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Atac en l’assignació del Atac en l’assignació del nodeIdnodeId

Motivació:- Suplantar la personalitat d’un node vàlid.- Segmentar una xarxa P2P.- Esdevenir el root d’una clau.

Possible solució, delegar la generació dels nodeId’s a una CA de confiança.- Centralitzat, subjecte a atacs.- Poc recomanable per a xarxes petites.- Què passa en situacions dinàmiques, DHCP, NAT, ...

Toni Figueroa Cubells 38

Page 39: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

* Com afectaran aquestes mesures al rendiment del sistema,icom podem assegurar que el node bootstrap no és maliciós?

Atac en el manteniment de la Atac en el manteniment de la taula de rutestaula de rutes

Motivació:- Donar informació falsejada en la localització del node més proper a una clau.- Fer que la xarxa P2P sigui molt ineficient.

Possibles solucions:- Utilitzar dos taules de rutes, la segona de backup?- Actualitzar la taula de rutes a partir de node bootstrap?

Toni Figueroa Cubells 39

Page 40: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Atac en el reenviament de Atac en el reenviament de missatgesmissatges

Motivació:- Operacions de manteniment de la xarxa fallaran.- Simple, només cal descartar missatges, o enviar-los a un altra node.

Possibles solucions:- Aplicar tests de fiabilitat per comprovar que l’encaminament és correcte.- Utilitzar altres mecanismes de encaminament dinàmic en paral·lel.

Toni Figueroa Cubells 40

Page 41: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

Conclusions de seguretatConclusions de seguretat

És un problema que encara no té solució. És més difícil de detectar i controlar quan

existeix una conspiració. Necessitat d’establir criteris de confiança.

Toni Figueroa Cubells 41

Page 42: Taules de Hash distribuïdes, fonaments de les bases de dades NoSQL

DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes

Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...

Introducció a les DHT’s Motivació i visió general, concepte, característiques

“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...

Línies de recercaCap a les “Overlay network”, seguretat, situació actual

Simulador interactiu de “Chord”

Toni Figueroa Cubells