structures de données distribuées et scalables

126
1 Structures de Données Distribuées et Scalables Witold Litwin ceria.dauphine.fr/witold.html

Upload: forest

Post on 24-Feb-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Structures de Données Distribuées et Scalables. Witold Litwin ceria.dauphine.fr/witold.html. Structures de Données Distribuées et Scalables. Une nouvelle classe de structures de données pour des bases de données modernes Scalables Grandissant rapidement D’une grande taille (TO – PO) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Structures de Données Distribuées et Scalables

1

Structures de Données Distribuées et Scalables

Witold Litwinceria.dauphine.fr/witold.html

Page 2: Structures de Données Distribuées et Scalables

2

Structures de Données Distribuées et Scalables

Une nouvelle classe de structures de données pour des bases de données modernes– Scalables

» Grandissant rapidement– D’une grande taille (TO – PO)

» Avec des données multimedia, géographiques…– Hautement disponibles 24/7– Permettant le calcul de prise de décision

» Calcul rapide de fonctions diverses– Distribution et mémoires rapides

Page 3: Structures de Données Distribuées et Scalables

VLDB-05 par taillehttp://www.wintercorp.com/VLDB/2005_TopTen_Survey/TopTenWinners_2005.asp

Page 4: Structures de Données Distribuées et Scalables

4

VLDB-98 par taille

UPS contient aussi 6 TB d ’indexes

Page 5: Structures de Données Distribuées et Scalables

5

Même « VLDB Survey » en 1997

• Scalabilité : Base UPS a plus que quadruplé de volume en un an !

• Base TRW est la même que Experian

Page 6: Structures de Données Distribuées et Scalables

6

Scalabilité de Grandes BDs

3,2 TO en 97 17 TO en 98 223 TO en 2005 La taille max connue d’une BD a augmenté

de 70 fois en 8 ans !!!

Page 7: Structures de Données Distribuées et Scalables

7

Structures de Données Distribuées et Scalables

Conçues spécifiquement pour les multiordinateurs– CPUs ou PCs interconnectés par un réseau local– Architecture à partage de rien

» Shared Nothing Architecture Introduites en 1993 Plusieurs SDDSs découvertes depuis Recommandées dans la nouvelle éd. 1999 de « Art of

Computer Programming » de D. Knuth Etudiées notamment à CERIA

– Avec support de HP, IBM-Research & MS-Research– Cas unique pour les recherches en BDs en France

Page 8: Structures de Données Distribuées et Scalables

8

Structures de Données Distribuées et Scalables

Page 9: Structures de Données Distribuées et Scalables

9

SDDSs : Ce que l’on sait faire

Partitionnement scalable – Hachage– Ordonné– Multidimensionnel

» Notamment SD-Rtrees Fichiers résidant en général en RAM distribuée

» Accès dix à cent fois plus rapide qu’aux disques Fichiers sur SANs

– TOctets à POctets Calcul parallèle

– Nécessaire pour les calculs de décision

Page 10: Structures de Données Distribuées et Scalables

10

SDDSs : Ce que l’on sait faire

Disponibilité scalable– Plus le fichier est grands, plus il y a de serveurs à panne

tolérée Couplage à un SGBD

– AMOS-2 Prototype SDDS-200x sous Windows Tables relationnelles scalables

– SD-SQL Server

Page 11: Structures de Données Distribuées et Scalables

11

SDDSs : Ce que l’on sait faire

Recherche de chaînes– Pattern matching

Confidentialité Les deux, notamment en utilisant les

signatures algébriques

Page 12: Structures de Données Distribuées et Scalables

12

SDDSs : Ce que l’on ne sait pas faire

Beaucoup de choses– Fichiers plats– Concurrence– Transactions– Objets Symboliques– T-Cubes– ….

Page 13: Structures de Données Distribuées et Scalables

13

Plan

Pourquoi ?– Multiordinateurs & leur applications– Inadéquation de structures de données

traditionnelles Quoi ?

– Axiomatique des SDDSs Comment ?

– SDDSs connues

Page 14: Structures de Données Distribuées et Scalables

14

Un multiordinateur

Une collection d'ordinateurs faiblement couplés– sans mémoire partagée– en général couplés

» par un reseau de type LAN (multiordinateur reseau)» par un bus (ang.”switched” multiordinateur)

– et WAN, puis ATM

Page 15: Structures de Données Distribuées et Scalables

15

Un multiordinateur

Page 16: Structures de Données Distribuées et Scalables

16

Pourquoi des multiordinateurs ?

Bon marchés (souvent ils existent déjà) Une configuration matériel qui devienne

dominante par son prix et utilité Puissance théorique de ressources en calcul et

mémoires impossible pour un ordinateur (traditionnel)

1400 WSs reliés à HPL avec le total de 100 GO de RAM et TOs de disques

+ que tout super-ordinateur existant Possibilité de bases en RAM distribuée

– Une nécessité pour les bases modernes

Page 17: Structures de Données Distribuées et Scalables

17

Distance à l'info(ex. de Jim Gray, cours à UC Berkeley 1992, MAJ 2009)

1 s

10 s

10 ms

RAM

RAM distant(Gb net)

disque local

100 s RAM distant(100Mb Ethernet)

1 m

10 m

2 h

8 j

Lune

500 s Flash 10 h

Page 18: Structures de Données Distribuées et Scalables

18

Situation 2009

Le prix d’une flash RAM est 49 $ pour 32 GO (Déc. 08) 139 $ pour 64 GO

Il est désormais sûr que:– Les disques devient le support d’archivage– Les données opérationnelles seront en général en

RAM ou Flash distribuée Voir l’article de J. Gray sur son site MS

– Ou dans le matériel du cours

Page 19: Structures de Données Distribuées et Scalables

19

Dimensions de la scalabilité(vue client)

Quantité de données# serveurs et # clients

Temps d'opération(RAM distante)

# opération / s

Scale-up

Linéaire (idéal)

Sous-linéaire (usuel)

Page 20: Structures de Données Distribuées et Scalables

20

Dimensions de la scalabilité(vue client, spécifique SDDS)

Quantité de données

Multiordinateur & SDDS

Scale-up

Linéaire

Sous-linéaire (usuel)

RAM locale

Disques & Cache

Bandes, juke-box…

Cache & Disques

Temps d'opération

OrdinateurRAM locale

Ordinateur- cluster

Ordinateur- cluster = # fixe de serveurs

Page 21: Structures de Données Distribuées et Scalables

21

Dimensions de la scalabilité(vue client)

# serveurs

# opération / s

Speed-upLinéaire (idéal)

Sous-linéaire (usuel)

Page 22: Structures de Données Distribuées et Scalables

22

Applications potentiellesde multiordinateur

Bases de Données Réseaux Sociaux (Web 2…)

– Réseaux Communautaires notamment Calcul hautes performances

– numérique– cryptographie

Haute disponibilité Temps réel (flux de données…) Gestion en général Multimédia Cartographie ....

Page 23: Structures de Données Distribuées et Scalables

23

Autres terminologies à la mode

Peer-to-Peer (P2P) Computing– Les paires autonomes partageant les données

» un paire est le client des autres » un paire est le serveur des autres

– client seul = « free rider » – Les 1èrs P2P avait été non-structurés

» toute requête provoquait un « flooding » – Un système P2P structuré évite le « flooding »

» c’est en fait une SDDS

Page 24: Structures de Données Distribuées et Scalables

24

Autres terminologies à la mode

Grid Computing– calcul en grille– grilles de données – terminologie favorisée par IBM

» projet Decrypthon en France et autres dans le monde.

– Globus, Virtual Observatory, Meersman Primes… Offre Industrielle naissante

– DNS….

Page 25: Structures de Données Distribuées et Scalables

25

Une Image Vaut Mille Mots

Page 26: Structures de Données Distribuées et Scalables

26

Autres terminologies à la mode

Cloud Computing– Terminologie MS, IBM, HP…– Les services dispo à distance dans un « nuage »

de serveurs (surtout sur le Web)– Semble un synonyme de grille (grid)

Storage Service– Amazon– Cas particulier de « Cloud »

Page 27: Structures de Données Distribuées et Scalables

27

Autres terminologies à la mode

Elastic Computing– Semble même chose que Cloud

Page 28: Structures de Données Distribuées et Scalables

28

Autres terminologies à la mode

SaaS– Software as a Service <-> Cloud– Voir Wikipedia…

Entreprise Data Fabric– Offert par Gemstone– Produit Gemfire– Même chose en principe que Storage Service– Mais c’est une RAM distribuée– Très proche de LH*

Page 29: Structures de Données Distribuées et Scalables

29

GemFire

http://www.gemstone.com/products/gemfire/edf.php

Page 30: Structures de Données Distribuées et Scalables

30

Problèmes de conception A part les réseaux :

presque tout le logiciel système à (re)faire

Notamment les SGF pour :– mieux utiliser la

RAM distribuée– offrir les fichiers

scalaires sur la RAM distribuée (en dehors d'un ordinateur)

Page 31: Structures de Données Distribuées et Scalables

31

Un multiordinateur

Client Serveur Pair

« Spare »

Page 32: Structures de Données Distribuées et Scalables

32

Un multiordinateur

Client Serveur

Toujours disponible pour la connexion

etcontient les données

partagées

Initiateur des connectionsaux serveurs

pour l'accès auxdonnées partagées

Paire ?

Page 33: Structures de Données Distribuées et Scalables

33

Une SD classique

Calcul d'adresse

Clients

Fichier

SGF

Page 34: Structures de Données Distribuées et Scalables

34

Problèmes de transposition sur un MO

Calcul d'adresse unique centralisé deviendrait un point d'accumulation – limite sur les performances d'accès– vulnérabilité aux pannes

Duplication du calcul d'adresse sur les clients exigerait des MAJ synchrones de clients en cas de changement de structure (éclatement d'une case, par exemple)– impossible pour un grand nombre de clients

Page 35: Structures de Données Distribuées et Scalables

35

Une SDDS: axiomes généraux

Les données sont sur les (sites) serveurs Il n'y a pas de répertoire central d'accès Les MAJ de la structure d'une SDDS ne

sont pas envoyées aux clients d'une manière synchrone

Page 36: Structures de Données Distribuées et Scalables

36

Une SDDS: axiomes généraux

Un client peut faire des erreurs d'adressage par suite d'une image inadéquate de la structure de SDDS

Chaque serveur vérifie l'adresse de la requête et l'achemine vers un autre serveur si une erreur est détectée

Le serveur adéquat envoie alors un message correctif au client ayant fait l'erreur d'adressage:– Image Adjustment Message (IAM)

Le client ajuste son image pour ne plus faire la même erreur

Page 37: Structures de Données Distribuées et Scalables

38

Une SDDS

Clients

Croissance par des éclatements

Serveurs

Page 38: Structures de Données Distribuées et Scalables

39

Une SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 39: Structures de Données Distribuées et Scalables

40

Une SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 40: Structures de Données Distribuées et Scalables

41

Une SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 41: Structures de Données Distribuées et Scalables

42

Une SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 42: Structures de Données Distribuées et Scalables

43

Une SDDS

Clients

Page 43: Structures de Données Distribuées et Scalables

44

Une SDDS

Clients

Page 44: Structures de Données Distribuées et Scalables

45

Une SDDS

Clients

IAM

Page 45: Structures de Données Distribuées et Scalables

46

Une SDDS

Clients

Page 46: Structures de Données Distribuées et Scalables

47

Une SDDS

Clients

Page 47: Structures de Données Distribuées et Scalables

48

SDDSs Connues

DSClassics

Page 48: Structures de Données Distribuées et Scalables

49

SDDSs Connues

Hash

SDDS(1993)

LH* DDH

Breitbart & al

DSClassics

Page 49: Structures de Données Distribuées et Scalables

50

SDDSs Connues

Hash

SDDS(1993)

1-d tree LH* DDH

Breitbart & al RP* Kroll & Widmayer

DSClassics

Page 50: Structures de Données Distribuées et Scalables

51

SDDSs Connues

Hash

SDDS(1993)

1-d tree LH* DDH

Breitbart & al RP* Kroll & Widmayer

m-d treesk-RP*

dPi-tree

DSClassics

Page 51: Structures de Données Distribuées et Scalables

52

SDDSs Connues

Hash

SDDS(1993)

1-d tree LH* DDH

Breitbart & al RP* Kroll & Widmayer

m-d trees

DSClassics

Security LH*s

k-RP*dPi-tree

Nardelli-tree

LH*m, LH*g

H-Avail.

Page 52: Structures de Données Distribuées et Scalables

53

SDDSs Connues

Hash

SDDS(1993)

1-d tree LH* DDH

Breitbart & alRP*

Kroll & WidmayerBreitbart & VingralekBaton, CTH*, IH*..

m-d trees

DSClassics

H-Avail.

LH*m, LH*gSecurity LH*s

k-RP*dPi-tree, hQT*:

Nardelli-treeSD-Rtree…

s-availabilityLH*SA

LH*RS http://ceria.dauphine.fr/SDDS-bibliograhie.html

SDLSA

Disk

LH*P2PRS LH*RE

Page 53: Structures de Données Distribuées et Scalables

54

Références aux Travaux SDDS

Page 54: Structures de Données Distribuées et Scalables

55

Références aux Travaux SDDS

Page 55: Structures de Données Distribuées et Scalables

56

LH* Une SDDS basée sur Linear Hashing (LH)

– Litwin 1978, (VLDB-78).» Décrit dans plusieurs livres, Wikipedia, NIST Dict. of

Algos…» L'article original est réimprimé dans:

– Readings in Databases. M. Stonebraker (ed.). 2nd édition. Morgan-Kaufmann

» Utilisé dans de nombreux produits Postgres, MySQL, MS Inf. Server, SQL Server,

DbLibrary (Oracle), Nescape Suite, Frontpage, MsExchange

» Partie standard d’un curriculum en structures de données

Page 56: Structures de Données Distribuées et Scalables

57

LH* Proposée par Litwin, Neimat, Schneider (ACM-

Sigmod 1993), noté dans ce qui suit [LNS93] Présenté + en détail dans le journal ACM-

Transactions on Database Systems– ACM-TODS 96– Le principal journal de recherche en BDs

Nombreux variantes proposées depuis – Voir la biblio sur le site CERIA– Aussi ACM-TODS Oct. 06

Trois brevets US– 1 : HPL – 2 : IBM

Page 57: Structures de Données Distribuées et Scalables

58

Rappel sur LH Un algorithme d'hachage extensible

– on étend l'espace d'adressage primaire pour éviter l'accumulation de débordements

– et la détérioration progressive de performances d'accès Le fichier consiste de cases de capacité b >> 1 Hachage par division hi : c -> c mod 2i N donne

l'adresse h (c) de la clé c. Eclatement de cases en remplaçant hi avec h i+1 ; i

= 0,1,.. En moyenne, b / 2 de clés s'en vont vers une

nouvelle case

Page 58: Structures de Données Distribuées et Scalables

59

Rappel sur LH

Un éclatement a lieu quand une case déborde On n'éclate pas la case qui déborde, mais celle

pointée par un pointer n. n évolue : 0, 0,1, 0,1,2, 0,1..,3, 0,..,7, 0,..,2i N, 0.. Ces principes évitent l'existence d'un index,

caractéristique d'autres algos de hachage extensible.

Page 59: Structures de Données Distribuées et Scalables

60

Evolution de fichier

351271524

h0 ; n = 0

N = 1b = 4i = 0h0 : c -> 20

0

Page 60: Structures de Données Distribuées et Scalables

61

Evolution de fichier

351271524

h1 ; n = 0

N = 1b = 4i = 0h1 : c -> 21

0

Page 61: Structures de Données Distribuées et Scalables

62

Evolution de fichier

1224

h1 ; n = 0

N = 1b = 4i = 1h1 : c -> 21

0

35715

1

Page 62: Structures de Données Distribuées et Scalables

63

Evolution de fichier

32581224

N = 1b = 4i = 1h1 : c -> 21

0

211135715

1

h1 h1

Page 63: Structures de Données Distribuées et Scalables

64

Evolution de fichier

321224

N = 1b = 4i = 1h2 : c -> 22

0

211135715

1

58

2

h2 h1 h2

Page 64: Structures de Données Distribuées et Scalables

65

Evolution de fichier

321224

N = 1b = 4i = 1h2 : c -> 22

0

33211135715

1

58

2

h2 h1 h2

Page 65: Structures de Données Distribuées et Scalables

66

Evolution de fichier

321224

N = 1b = 4i = 1h2 : c -> 22

0

3321

1

58

2

h2 h2 h2

1135715

3

h2

Page 66: Structures de Données Distribuées et Scalables

67

Evolution de fichier

321224

N = 1b = 4i = 2h2 : c -> 22

0

3321

1

58

2

h2 h2 h2

1135715

3

h2

Page 67: Structures de Données Distribuées et Scalables

68

Evolution de fichier

Et ainsi de suite– on introduit h3 puis h4 ...

Le fichier peut s'étendre autant qu'il faut, sans jamais avoir beaucoup de débordements.

Page 68: Structures de Données Distribuées et Scalables

69

Algorithme d'adressage

a <- h (i, c) si n = 0 alors exit sinon

si a < n alors a <- h (i+1, c) ;fin

Page 69: Structures de Données Distribuées et Scalables

70

LH* : Propriété Basique de LH

Une clé c est dans une case m adressée par une fonction hj ssi

hj (c) = m avec j = i ou j = i + 1

» Vérifiez par vous mêmes

Page 70: Structures de Données Distribuées et Scalables

71

LH* : Structure globale

Chaque case est sur un serveur diffèrent Pour toute clé c, son adresse est celle de

LH – C’est l’adresse correcte

Un site spécial gère les éclatements – Le coordinateur (super-pair)

Page 71: Structures de Données Distribuées et Scalables

72

LH* : Structure globale Le coordinateur est utile

– Adresses physiques– Haute dispo– Sécurité

Il est sollicité exceptionnellement– Pour ne pas être le point d’accumulation

» ang. hot spot Il n’est pas nécessaire

– Voir la version à jeton dans l’article ACM-TODS [LNS96]

Page 72: Structures de Données Distribuées et Scalables

73

LH* : Structure globale Quand il existe, il est le seul à

connaître (n, i)– Etat du fichier

» Ang. file state– Etendue du fichier

» Nombre de cases (serveurs)» Ang . extent

N = n + 2i

– La dernière case a pour l’adresse N -1

Page 73: Structures de Données Distribuées et Scalables

74

LH* : Structure globale Le coordinateur reçois tout message

d’une case qui déborde Il le seul à connaître et informer la

case n qu’elle doit éclater Une fois l’éclatement terminé, il met

à jour (n, i)– Selon LH– Comment alors ?

Page 74: Structures de Données Distribuées et Scalables

75

LH* : Adressage par clé

Chaque client a son image de l’état du fichier (i’, n’)

Initialement i’ = 0 et n’ = 0 Le client adresse toute requête à clé à la

case m m = LHi’, n’ (c)

Page 75: Structures de Données Distribuées et Scalables

76

LH* : Adressage par clé

L'en-tête de chaque case contient j courant– Déterminé par les éclatements– Egalement, par l’étendue du fichier N

Quand une clé c arrive de la part d'un client à une adresse, la case vérifie si elle est correcte – Par le test de la propriété de LH

Si OK, alors la case répond au client

Page 76: Structures de Données Distribuées et Scalables

77

LH* : Adressage par clé

Sinon – La case renvoie c vers une adresse peut-

être correcte– On parle d’un renvoi

» Ang. forwarding or hop La case réceptrice répète le schéma Etc Enfin, la case correcte répond au client

– Avec en plus un IAM

Page 77: Structures de Données Distribuées et Scalables

78

LH* : structure de fichier distribué

j = 4

0

j = 4

1

j = 3

2

j = 3

7

j = 4

8

j = 4

9

n = 2 ; i = 3

n' = 0, i' = 0 n' = 3, i' = 2 Coordinateur

Client Client

serveurs

Page 78: Structures de Données Distribuées et Scalables

79

LH* : éclatement

j = 4

0

j = 4

1

j = 3

2

j = 3

7

j = 4

8

j = 4

9

n = 2 ; i = 3

n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur

Client Client

serveurs

Page 79: Structures de Données Distribuées et Scalables

80

LH* : éclatement

j = 4

0

j = 4

1

j = 3

2

j = 3

7

j = 4

8

j = 4

9

n = 2 ; i = 3

n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur

Client Client

serveurs

Page 80: Structures de Données Distribuées et Scalables

81

LH* : éclatement

j = 4

0

j = 4

1

j = 3

2

j = 3

7

j = 4

8

j = 4

9

n = 2 ; i = 3

n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur

Client Client

serveurs

Page 81: Structures de Données Distribuées et Scalables

82

LH* : éclatement

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3

n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur

Client Client

serveurs

j = 4

10

Page 82: Structures de Données Distribuées et Scalables

83

LH* : adressage

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3

n' = 3, i' = 2 Site coordinateurClient

Client

serveurs

j = 4

10

15

n' = 0, i' = 0

N' = 1

Page 83: Structures de Données Distribuées et Scalables

84

LH* : adressage

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3n' = 0, i' = 0

n' = 3, i' = 2 Site coordinateurClient Client

serveurs

j = 4

10

15

N' = 1

Page 84: Structures de Données Distribuées et Scalables

85

LH* : adressage

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3

n' = 1, i' = 3 n' = 3, i' = 2 Site coordinateurClient

Client

serveurs

j = 4

10

15

j = 4, a = 0

N = 23 + 2N' = 23

Page 85: Structures de Données Distribuées et Scalables

86

LH* : adressage

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3

n' = 3, i' = 2 Site coordinateurClient

Client

serveurs

j = 4

10

9

n' = 0, i' = 0

N' = 1N = 23 + 2

Page 86: Structures de Données Distribuées et Scalables

87

LH* : adressage

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3n' = 0, i' = 0

n' = 3, i' = 2 Site coordinateurClient Client

serveurs

j = 4

10

9

N' = 1 N = 23 + 2

Page 87: Structures de Données Distribuées et Scalables

88

LH* : adressage

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3n' = 0, i' = 0

n' = 3, i' = 2 Site coordinateurClient

Client

serveurs

j = 4

10

9

N' = 1N = 23 + 2

Page 88: Structures de Données Distribuées et Scalables

89

LH* : adressage

j = 4

0

j = 4

1

j = 4

2

j = 3

7

j = 4

8

j = 4

9

n = 3 ; i = 3

n' = 2, i' = 3 n' = 3, i' = 2 Site coordinateurClient

Client

serveurs

j = 4

10

9

j = 4, a = 1

N' = 23 + 1N = 23 + 2

Page 89: Structures de Données Distribuées et Scalables

90

Adressage LH*

Le client – calcule l'adresse LH de la clé c dans son image, soit m, et

envoie c à la case m Serveur a recevant la clé c, a = m notamment, calcule :

a' := hj (c) ;si a' = a alors accepte c ;sinon a'' := hj - 1 (c) ;

si a'' > a et a'' < a' alors a' := a'' ; envoies c à la case a' ;

Vois [LNS93] pour la (longue) preuve de cet algo

Simple, n'est ce pas ?

Page 90: Structures de Données Distribuées et Scalables

91

Ajustement d'image du client Toute image d’un client SDDS doit être correcte

– Ne contenir que les adresses logiques qui sont dans le fichier

Une IAM fait converger une image vers l’état réel du fichier– Ajoute des adresses de serveurs inconnues du client– La convergence peut être +- rapide

Dans le cas de LH*– Image (i’,n’) est correcte ssi:

» i’ ≤ i et si i’ = i alors n’ ≤ n – Toute IAM doit diminuer la différence entre l’étendu réel

N et dans l’image N’ – Plusieurs algos possibles

Page 91: Structures de Données Distribuées et Scalables

92

Ajustement d'image du client Le message IAM consiste de l'adresse a de la

dernière case qui a renvoyé c et de j(a).– i' est la valeur présumée de i dans l'image du client.– n' est la position présumée de n– initialement, i' = n' = 0.

si j > i' alors i' := j - 1, n' := a +1 ; si n' 2^i' alors n' = 0, i' := i' +1 ;

L'algo. garantit que tout image de client est contenue dans le fichier actuel [LNS93]– dans l'absence de contractions du fichier (merge)

Mais, peut-on faire mieux ?

Simple, n'est ce pas ?

Page 92: Structures de Données Distribuées et Scalables

93

Ajustement d'image du client La case correcte a renvoie dans IAM

– l’adresse de la dernière case traversée a’ et son j’– son propre j

Le client ajuste son image comme suit: i’ = j’ – 1

if j < j’ or a > 2i’ : a = a’ endifn’ = a + 1if n’ ≥ 2i’ : n’ = 0 ; i’ = i’ + 1 endif

Page 93: Structures de Données Distribuées et Scalables

94

Ajustement d'image du client

Analysez l’ajustement de l’image dans le cas

l’insertion de la clé 1 dans le fichier exemple

Par le 1er algorithme d’ajustement

Puis, par le 2ème

Conclusion ?

Page 94: Structures de Données Distribuées et Scalables

95

Résultat On peut construire un fichier distribué

grandissant à une taille quelconque (ex. tout Internet) et tel que :–Toute insertion et toute recherche à clé

peuvent être faites au plus en 4 messages au plus (IAM inclus)

–En général une insertion est faite en un message et une recherche en deux messages

Page 95: Structures de Données Distribuées et Scalables

96

Résultat Preuve dans [LNS 93] Récemment, on a démontré que si tout

site est pair, alors le cas le pire n’est qu’un seul message de renvoi.

Cette variante s’appèle LH*RSP2P

– C’est le meilleur résultat possible pour une SDDS (DHT, grille, nuage…)

Thèse de Y. Hanafi–En cours à Dauphine

Page 96: Structures de Données Distribuées et Scalables

97

Allocation de sites

Toute case a:–Une adresse logique

»a = 0, 1, 2..– Une adresse physique réseau,

»ex. s = 123.456.789– Son site (localisation…)

Les clients et les serveurs doivent connaître les adresses physiques

Page 97: Structures de Données Distribuées et Scalables

98

Allocation de sites Le coordinateur choisit le site pour

toute nouvelle case–Dans le pool de sites disponibles

»Ang. spare sites La case ayant besoin d’éclater demande

le site vide par multicast– LH*RS

Alternativement, tout serveur a ce pool dans une table fournit par le coord. – Statique ou dynamique

Page 98: Structures de Données Distribuées et Scalables

99

Propagation des adresses de sites

Le serveur de la case n reçoit dans la demande de l’éclatement du coordinateur les adresses qu’il pourrait ne pas connaitre – Jusqu’à la case N = n + 2i

Un serveur qui envoi une IAM y inclut les adresses de site que le client pourrait ne pas connaître

Page 99: Structures de Données Distribuées et Scalables

100

Propagation des adresses de sites Une manière de faire:

– Le client inclut dans la requête l’étendu N’ de son image

– Le 1er serveur qui a réacheminé la requête y inclut les adresses physiques de l’étendu de sa connaissance

N’…N’’ ≤ N -1– Le 2ème serveur qui soit envoie l’IAM, soit

réachemine encore la requête y unione les adresses physiques de l’étendu de sa connaissance

– Le résultat part dans l’IAM chez le client qui ajuste son image

Page 100: Structures de Données Distribuées et Scalables

101

Propagation des adresses de sites Alternativement: le client manquant

d’adresses de sites, les demande au coordinateur

Le coordinateur est davantage sollicité En contrepartie, le traitement est + simple Aussi, le client peut demander toute adresse

à sa guise–Par ex. pour se prémunir contre les

adresses périmées à la suite de pannes de cases»Reconstruits ailleurs

Page 101: Structures de Données Distribuées et Scalables

102

Table statique

une même table T sur tout client et serveur – contient tous les adresses

disponibles pour tous les fichiers

une fonction H de hachage :H : (F + a ) -> k

ex. k = (F + a) mod M T ( k ) contient s (a)

s1 s2 s3 sMT

5

H

Page 102: Structures de Données Distribuées et Scalables

103

Requêtes parallèles (Scans)

Une requête Q à toutes les cases de F dont les exécutions locales sont indépendantes– en toute généralité : à certaines cases– toute case devrait recevoir Q et une seule fois

Mode d'envoi:– multicast

» n'est pas toujours commode, voire possible– unicast

» le client ne connaît pas tous les serveurs

Page 103: Structures de Données Distribuées et Scalables

104

LH* Scans

Le client envoie Q à toute case a dans son image Le message avec Q contient le niveau de message

j' :– initialement j' = i' si n' aet ai' sinon j' = i' +

1– case a (de niveau j ) renvoie Q à tous ses enfants en

utilisant l'algo:while j' < j do

j' := j' + 1forward (Q, j' ) à case a + 2 j' - 1 ;

endwhile Preuve de cet algo ?

Page 104: Structures de Données Distribuées et Scalables

105

LH* Scans

Le client envoie Q à toute case a dans son image Toute case fait suivre Q à tous ces enfants, petits

enfants… selon son j et avec son j. Un descendant don le niveau est j aussi, fait

suivre à son descendant. Preuve de cet algo ? Différence pratique entre les deux ? Comment faire pour un client paire ?

– Le serveur de case 4 veut envoyer la requête parallèle

Page 105: Structures de Données Distribuées et Scalables

106

Terminaison d'un Scan(multicast ou unicast)

Quand est-ce que le client C sait que la dernière réponse est arrivée ?– le nombre réel de cases est inconnu de C

Stratégies possibles– Regroupement sur les cases connues du client

» Chaque serveur ayant reçu le scan par renvoi, renvoie la réponse au « père »

» Peut-être aussi son adresse en guise de IAM– Réponse directe au client – Réponse vers un fichier indiqué par le client

Page 106: Structures de Données Distribuées et Scalables

107

Terminaison d'un Scan(multicast ou unicast)

Quand est-ce que le client C sait que la dernière réponse est arrivée ?– le nombre réel de cases est inconnu de C

Solution déterministe (chère, mais 100 % sure)– C demande à chaque case de répondre

Solution probabiliste (en général moins chère, mais x < 100 % sure)– seules répondent les cases pertinentes à la requête– après chaque réponse C réinitialise un time-out T

Page 107: Structures de Données Distribuées et Scalables

108

Solution Déterministe

– Toute case envoie j, m et les enreg. éventuellement» m c'est l'adresse logique

– Le client termine quand il a reçu N réponses ;» N = 2 i + n avec

– i = min (j) et n = min (m) avec j = i

i+1 i i+1n

Page 108: Structures de Données Distribuées et Scalables

109

Exécution d'un Scan(TCP/IP)

Stratégie 1– Tous les sites serveurs se connectent dans la limite du "backlog"

» Taille de la file d'attente de demandes simultanées de connections– 5 sous Windows 2000

Stratégie 2– Ceux refusés redemandent x fois la connexion après temps t, 2t, 4t…

Problèmes– Surcharge du LAN, nombreuses re-émissions de paquets

Stratégie 3– Le client rappelle pour la connexion les serveurs ayant répondu

» N serveurs simultanément ; N = 1 dans ce qui suit.

Page 109: Structures de Données Distribuées et Scalables

110

Exécution d'un Scan

0

1000

2000

3000

4000

5000

6000

1 10 20 30 40 50 60 70 80 90 100 120 140Nombre de serveurs

Tem

ps d

e ré

pons

e (m

s)

Scénario 1Scénario 2Scénario 3

Étude de MM. Tsangou & Samba (U. Dakar)

Page 110: Structures de Données Distribuées et Scalables

111

Performances d'accès d'une SDDS

Mesurées en nombre de messages sur le réseau– mesure indépendante des paramètres du réseau

Nombre moyen de messages / insertion– global– sur un client

Nombre moyen de messages / recherche– client nouveau (i' = 0, n' = 0)

Convergence de vue du nouveau client Performance d'un client peu actif

Page 111: Structures de Données Distribuées et Scalables

112

10,000 inserts

Global cost

Client's cost

Page 112: Structures de Données Distribuées et Scalables

113

Page 113: Structures de Données Distribuées et Scalables

114

Page 114: Structures de Données Distribuées et Scalables

115

Inserts by two clients

Page 115: Structures de Données Distribuées et Scalables

116

Travaux à Dauphine(CERIA)

Implémentation des SDDS sous Windows NT– Système SDDS – 2000

» Financé par HPL, IBM-Almaden, MS-Research» LH*LH » LH*RS (U. Uppsala)» RP*

– Client Java (U. Dakar)– Concurrence par dates de valeur (U. Dakar)

Application SD-AMOS (avec U. Uppsala)

Page 116: Structures de Données Distribuées et Scalables

117

SDDS-2000 : global architecture(SDDS-2007 actuellement)

Applications ApplicationsApplications etc

Data Data Data

SDDS-Server SDDS-Server SDDS- Server

SDDS- Client SDDS-Client SDDSClient SDDS-Client

Network

Page 117: Structures de Données Distribuées et Scalables

118

Send Request Receive Response Return Response Client Image process.

SDDS-2000 : Client Architecture

Interface : Applications - SDDS

send Request

Socket

Network

Response

Request

ReceiveResponse

file i n

..... .....

Client Image

Update

Server Address

ReceiveRequest

ReturnResponse

Id_Req Id_App ... .....

Queuing system

Request Response

Applications

Server

Page 118: Structures de Données Distribuées et Scalables

119

SDDS-2000 : Server Architecture Bucket SDDS

Insertion Search Update Delete

W.Thread 1 W.Thread 4…

Request Analysis

Queuing system

Listen Thread

Socket

Client

Network

client Request

Response

Response

Listen Thread Queuing system Work Thread Local process Forward Response

Page 119: Structures de Données Distribuées et Scalables

120

6 Pentium 700 Mhz 128 MB Ram

Ethernet 100 Mbit/s

SDDS-2000 Access Performance Experimental Analysis

UDP Protocol for inserts and searches TCP Protocol for splits

SDDS 2007 est sur 1Gbit/s et est 10 fois + rapide

Page 120: Structures de Données Distribuées et Scalables

121

File creation time

012345678

0 1 2 3 4 5 6Nombre de case

Tem

ps (s

)

Single client inserts 20 000 records with acks

Number of buckets

Tim

e (s

)

Page 121: Structures de Données Distribuées et Scalables

122

Insert Time

0

0,1

0,2

0,3

0,4

0,5

0 5000 10000 15000 20000Taille du fichier (enregistrements)

Tem

ps (m

s)

File size

Tim

e (m

s)

Page 122: Structures de Données Distribuées et Scalables

123

Search Time

0,1

0,2

0,3

0,4

0,5

0 5000 10000 15000 20000Taille du fichier (enregistrements)

Tem

ps (m

s)

image client actualisée image client non-actualisée

File size

Tim

e (m

s)

New client Client with exact image

Page 123: Structures de Données Distribuées et Scalables

124

Conclusion

Scalability as wished Access times 30 times faster than the disk access

time Splits do not cost much IAMs are efficient

Page 124: Structures de Données Distribuées et Scalables

125

Conclusion

MOs sont l'avenir SDDS sont une nouvelle classe de

structures de données à des performances impossibles auparavant

Des possibilités nouvelles pour nombreuses applications

Page 125: Structures de Données Distribuées et Scalables

126

FINMerci de votre attention

Page 126: Structures de Données Distribuées et Scalables

127