1 Structures de Données Distribuées et Scalables Witold Litwin .

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

Transcript of 1 Structures de Données Distribuées et Scalables Witold Litwin .

Page 1: 1 Structures de Données Distribuées et Scalables Witold Litwin .

1

Structures de Données Structures de Données Distribuées et ScalablesDistribuées et ScalablesStructures de Données Structures de Données

Distribuées et ScalablesDistribuées et Scalables

Witold LitwinWitold Litwinwww.ceria.dauphine.fr/witold.htmlwww.ceria.dauphine.fr/witold.html

Page 2: 1 Structures de Données Distribuées et Scalables Witold Litwin .

2

Structures de Données Structures de Données Distribuées et ScalablesDistribuées et ScalablesStructures de Données Structures de Données

Distribuées et ScalablesDistribuées et Scalables Une nouvelle classe de structures de données pour Une nouvelle classe de structures de données pour

des bases de données modernesdes bases de données modernes– ScalablesScalables

» Grandissant rapidementGrandissant rapidement

– D’une grande taille (GO – PO)D’une grande taille (GO – PO)» Avec des données multimedia, géographiques…Avec des données multimedia, géographiques…

– Hautement disponibles 24/7Hautement disponibles 24/7

– Permettant le calcul de prise de décisionPermettant le calcul de prise de décision» Fonctions agrégat sur grande partie de la baseFonctions agrégat sur grande partie de la base

Page 3: 1 Structures de Données Distribuées et Scalables Witold Litwin .

3

VLDB-98 par taille

UPS contient aussi 6 GB d ’indexes

Page 4: 1 Structures de Données Distribuées et Scalables Witold Litwin .

4

Même « VLDB Survey » en 1997

• Scalabilité : Base UPS a quadruplé de volume en un an !• Base TRW est la même que Experian

Page 5: 1 Structures de Données Distribuées et Scalables Witold Litwin .

5

Structures de Données Distribuées Structures de Données Distribuées et Scalableset Scalables

Structures de Données Distribuées Structures de Données Distribuées et Scalableset Scalables

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

» Shared Nothing ArchitectureShared Nothing Architecture

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

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

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

Page 6: 1 Structures de Données Distribuées et Scalables Witold Litwin .

6

SDDSs : SDDSs : Ce que l’on sait faireCe que l’on sait faire Partitionnement scalable Partitionnement scalable

– HachageHachage– OrdonnéOrdonné– MultidimensionnelMultidimensionnel

Fichiers résidant en général en RAM distribuéeFichiers résidant en général en RAM distribuée» Accès dix à cent fois plus rapide qu’aux disquesAccès dix à cent fois plus rapide qu’aux disques

Fichiers sur SANsFichiers sur SANs– TOctets à POctetsTOctets à POctets

Calcul parallèleCalcul parallèle– Nécessaire pour les calculs de décisionNécessaire pour les calculs de décision

Disponibilité scalableDisponibilité scalable– Plus le fichier est grands, plus il y a de serveurs à panne toléréePlus le fichier est grands, plus il y a de serveurs à panne tolérée

Couplage à un SGBDCouplage à un SGBD– AMOS-2AMOS-2

Prototype SDDS-2000 sous Windows 2000Prototype SDDS-2000 sous Windows 2000

Page 7: 1 Structures de Données Distribuées et Scalables Witold Litwin .

7

PlanPlanPlanPlan

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

traditionnellestraditionnelles Quoi ?Quoi ?

– Axiomatique des SDDSsAxiomatique des SDDSs Comment ?Comment ?

– SDDSs connuesSDDSs connues

Page 8: 1 Structures de Données Distribuées et Scalables Witold Litwin .

8

Un multiordinateurUn multiordinateurUn multiordinateurUn multiordinateur

Une collection d'ordinateurs faiblement Une collection d'ordinateurs faiblement coupléscouplés– sans mémoire partagéesans mémoire partagée– en général couplés par un bus de type LANen général couplés par un bus de type LAN– et WAN, puis ATMet WAN, puis ATM

Page 9: 1 Structures de Données Distribuées et Scalables Witold Litwin .

9

Un multiordinateurUn multiordinateurUn multiordinateurUn multiordinateur

Page 10: 1 Structures de Données Distribuées et Scalables Witold Litwin .

10

Pourquoi des multiordinateurs ?Pourquoi des multiordinateurs ?Pourquoi des multiordinateurs ?Pourquoi des multiordinateurs ?

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

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

mémoires impossible pour un ordinateur mémoires impossible pour un ordinateur (traditionnel)(traditionnel)

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

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

– Une nécessité pour les bases modernesUne nécessité pour les bases modernes

Page 11: 1 Structures de Données Distribuées et Scalables Witold Litwin .

11

Distance à l'infoDistance à l'info(ex. de Jim Gray)(ex. de Jim Gray)

Distance à l'infoDistance à l'info(ex. de Jim Gray)(ex. de Jim Gray)

100 ns

1 sec

10 msec

RAM

RAM distant(gigabit net)

disque local

100 sec RAM distant(Ethernet)

Page 12: 1 Structures de Données Distribuées et Scalables Witold Litwin .

12

Distance à l'infoDistance à l'info(ex. de Jim Gray)(ex. de Jim Gray)

Distance à l'infoDistance à l'info(ex. de Jim Gray)(ex. de Jim Gray)

100 ns

1 s

10 ms

RAM

RAM distant(gigabit net)

disque local

100 s RAM distant(Ethernet)

1 m

10 m

2 h

8 j

Lune

Page 13: 1 Structures de Données Distribuées et Scalables Witold Litwin .

13

Dimensions de la scalabilitéDimensions de la scalabilité(vue client)(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 14: 1 Structures de Données Distribuées et Scalables Witold Litwin .

14

Dimensions de la scalabilitéDimensions de la scalabilité(vue client, spécifique SDDS)(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 15: 1 Structures de Données Distribuées et Scalables Witold Litwin .

15

Dimensions de la scalabilitéDimensions de la scalabilité(vue client)(vue client)

# serveurs

# opération / s

Speed-upLinéaire (idéal)

Sous-linéaire (usuel)

Page 16: 1 Structures de Données Distribuées et Scalables Witold Litwin .

16

Applications potentiellesApplications potentiellesde multiordinateurde multiordinateur

Applications potentiellesApplications potentiellesde multiordinateurde multiordinateur

SGBDSGBD Calculs hautes performancesCalculs hautes performances

– numériquenumérique– cryptographiecryptographie

Haute disponibilitéHaute disponibilité Temps réelTemps réel Gestion en généralGestion en général MultimédiaMultimédia CartographieCartographie CAD/CAMCAD/CAM ........

Page 17: 1 Structures de Données Distribuées et Scalables Witold Litwin .

17

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

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

Notamment les SGF Notamment les SGF pour :pour :– mieux utiliser la mieux utiliser la

RAM distribuéeRAM distribuée– offrir les fichiers offrir les fichiers

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

Page 18: 1 Structures de Données Distribuées et Scalables Witold Litwin .

18

Un multiordinateurUn multiordinateurUn multiordinateurUn multiordinateur

Client Serveur

Page 19: 1 Structures de Données Distribuées et Scalables Witold Litwin .

19

Un multiordinateurUn multiordinateurUn multiordinateurUn 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

Page 20: 1 Structures de Données Distribuées et Scalables Witold Litwin .

20

Une SD classiqueUne SD classiqueUne SD classiqueUne SD classique

Calcul d'adresse

Clients

Fichier

SGF

Page 21: 1 Structures de Données Distribuées et Scalables Witold Litwin .

21

Problèmes de transposition Problèmes de transposition sur un MOsur un MO

Problèmes de transposition Problèmes de transposition sur un MOsur un MO

Calcul d'adresse unique centralisé deviendrait un Calcul d'adresse unique centralisé deviendrait un point d'accumulation point d'accumulation – limite sur les performances d'accèslimite sur les performances d'accès

– vulnérabilité aux pannesvulnérabilité aux pannes

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

Page 22: 1 Structures de Données Distribuées et Scalables Witold Litwin .

22

Une SDDS: axiomes générauxUne SDDS: axiomes générauxUne SDDS: axiomes générauxUne SDDS: axiomes généraux

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

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

Page 23: 1 Structures de Données Distribuées et Scalables Witold Litwin .

23

Une SDDS: axiomes générauxUne SDDS: axiomes générauxUne SDDS: axiomes générauxUne SDDS: axiomes généraux

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

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

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

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

Page 24: 1 Structures de Données Distribuées et Scalables Witold Litwin .

25

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Croissance par des éclatements

Serveurs

Page 25: 1 Structures de Données Distribuées et Scalables Witold Litwin .

26

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 26: 1 Structures de Données Distribuées et Scalables Witold Litwin .

27

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 27: 1 Structures de Données Distribuées et Scalables Witold Litwin .

28

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 28: 1 Structures de Données Distribuées et Scalables Witold Litwin .

29

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Croissance par des éclatements

ServersServeurs

Page 29: 1 Structures de Données Distribuées et Scalables Witold Litwin .

30

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Page 30: 1 Structures de Données Distribuées et Scalables Witold Litwin .

31

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Page 31: 1 Structures de Données Distribuées et Scalables Witold Litwin .

32

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

IAM

Page 32: 1 Structures de Données Distribuées et Scalables Witold Litwin .

33

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Page 33: 1 Structures de Données Distribuées et Scalables Witold Litwin .

34

Une SDDSUne SDDSUne SDDSUne SDDS

Clients

Page 34: 1 Structures de Données Distribuées et Scalables Witold Litwin .

35

SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues

DS

Classics

Page 35: 1 Structures de Données Distribuées et Scalables Witold Litwin .

36

SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues

Hash

SDDS(1993)

LH* DDH

Breitbart & al

DS

Classics

Page 36: 1 Structures de Données Distribuées et Scalables Witold Litwin .

37

SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues

Hash

SDDS(1993)

1-d tree

LH* DDH

Breitbart & al RP* Kroll & Widmayer

DS

Classics

Page 37: 1 Structures de Données Distribuées et Scalables Witold Litwin .

38

SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues

Hash

SDDS(1993)

1-d tree

LH* DDH

Breitbart & al RP* Kroll & Widmayer

m-d trees

k-RP*dPi-tree

DS

Classics

Page 38: 1 Structures de Données Distribuées et Scalables Witold Litwin .

39

SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues

Hash

SDDS(1993)

1-d tree

LH* DDH

Breitbart & al RP* Kroll & Widmayer

m-d trees

DS

Classics

SecurityLH*s

k-RP*dPi-tree

Nardelli-tree

LH*m, LH*g

H-Avail.

Page 39: 1 Structures de Données Distribuées et Scalables Witold Litwin .

40

SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues

Hash

SDDS(1993)

1-d tree LH* DDH

Breitbart & alRP*

Kroll & WidmayerBreitbart & Vingralek

m-d trees

DS

Classics

H-Avail.

LH*m, LH*gSecurity

LH*s

k-RP*dPi-tree

Nardelli-tree

s-availabilityLH*SA

LH*RS http://192.134.119.81/SDDS-bibliograhie.html

SDLSA

Disk

Page 40: 1 Structures de Données Distribuées et Scalables Witold Litwin .

41

LH*LH*LH*LH* Une SDDS basée sur LH:Une SDDS basée sur LH:

– Linear Hashing (LH) : Litwin 1978, (VLDB-78).Linear Hashing (LH) : Litwin 1978, (VLDB-78).» Décrit dans plusieurs livres sur SGBDs. Décrit dans plusieurs livres sur SGBDs. » L'article original est réimprimé dans:L'article original est réimprimé dans:

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

» Utilisé dans de nombreux produits Utilisé dans de nombreux produits Frontpage, MsExchange, MS Inf. Server, Nescape Suite…Frontpage, MsExchange, MS Inf. Server, Nescape Suite…

Proposée par Litwin, Neimat, Schneider (ACM-Sigmod Proposée par Litwin, Neimat, Schneider (ACM-Sigmod 1993), noté dans ce qui suit [LNS93]1993), noté dans ce qui suit [LNS93]

Plusieurs variantes proposées depuis Plusieurs variantes proposées depuis – Voir la biblio sur le site CERIAVoir la biblio sur le site CERIA

Page 41: 1 Structures de Données Distribuées et Scalables Witold Litwin .

42

Rappel sur LHRappel sur LHRappel sur LHRappel sur LH Un algorithme d'hachage extensibleUn algorithme d'hachage extensible

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

– et la détérioration progressive de performances d'accèset la détérioration progressive de performances d'accès

Le fichier consiste de cases de capacité Le fichier consiste de cases de capacité bb >> 1 >> 1 Hachage par division Hachage par division hhii : c -> c : c -> c mod 2 mod 2i i NN donne donne

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

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

nouvelle casenouvelle case

Page 42: 1 Structures de Données Distribuées et Scalables Witold Litwin .

43

Rappel sur LHRappel sur LHRappel sur LHRappel sur LH

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

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

caractéristique d'autres algos de hachage caractéristique d'autres algos de hachage extensible.extensible.

Page 43: 1 Structures de Données Distribuées et Scalables Witold Litwin .

44

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

351271524

h0 ; n = 0

N = 1b = 4i = 0

hh00 : c -> : c -> 2200

0

Page 44: 1 Structures de Données Distribuées et Scalables Witold Litwin .

45

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

351271524

h1 ; n = 0

N = 1b = 4i = 0

hh11 : c -> : c -> 2211

0

Page 45: 1 Structures de Données Distribuées et Scalables Witold Litwin .

46

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

1224

h1 ; n = 0

N = 1b = 4i = 1

hh11 : c -> : c -> 2211

0

35715

1

Page 46: 1 Structures de Données Distribuées et Scalables Witold Litwin .

47

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

32581224

N = 1b = 4i = 1

hh11 : c -> : c -> 2211

0

211135715

1

hh11 hh11

Page 47: 1 Structures de Données Distribuées et Scalables Witold Litwin .

48

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

321224

N = 1b = 4i = 1

hh22 : c -> : c -> 2222

0

211135715

1

58

2

hh22 hh11 hh22

Page 48: 1 Structures de Données Distribuées et Scalables Witold Litwin .

49

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

321224

N = 1b = 4i = 1

hh22 : c -> : c -> 2222

0

33211135715

1

58

2

hh22 hh11 hh22

Page 49: 1 Structures de Données Distribuées et Scalables Witold Litwin .

50

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

321224

N = 1b = 4i = 1

hh22 : c -> : c -> 2222

0

3321

1

58

2

hh22 hh22 hh22

1135715

3

hh22

Page 50: 1 Structures de Données Distribuées et Scalables Witold Litwin .

51

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

321224

N = 1b = 4i = 2

hh22 : c -> : c -> 2222

0

3321

1

58

2

hh22 hh22 hh22

1135715

3

hh22

Page 51: 1 Structures de Données Distribuées et Scalables Witold Litwin .

52

Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier

Et ainsi de suiteEt ainsi de suite– on introduit on introduit hh3 3 puis puis hh4 4 ......

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

Page 52: 1 Structures de Données Distribuées et Scalables Witold Litwin .

53

Algorithme d'adressageAlgorithme d'adressageAlgorithme d'adressageAlgorithme d'adressage

a <- h (i, c) a <- h (i, c)

si si n n = 0 alors exit = 0 alors exit

sinonsinon

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

finfin

Page 53: 1 Structures de Données Distribuées et Scalables Witold Litwin .

54

LH*LH*LH*LH*

Propriété de LH :Propriété de LH :– Une clé Une clé c c est dans une case est dans une case m m adresséeadressée par une par une

fonction fonction hhj j ssi ssi hhj j ((cc) = ) = m ; j = i m ; j = i ou ou j = i j = i + 1+ 1» Vérifiez par vous mêmesVérifiez par vous mêmes

Idée pour LH* :Idée pour LH* :– mettre chaque case sur un serveur diffèrentmettre chaque case sur un serveur diffèrent– mettre mettre j j utilisé dans l'en-tête de la caseutilisé dans l'en-tête de la case– vérifier la propriété quand une clé arrive de la vérifier la propriété quand une clé arrive de la

part d'un clientpart d'un client

Page 54: 1 Structures de Données Distribuées et Scalables Witold Litwin .

55

LH* : structure de fichier distribuéLH* : structure de fichier distribuéLH* : structure de fichier distribué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 Site coordinateur

Client Client

serveurs

Page 55: 1 Structures de Données Distribuées et Scalables Witold Litwin .

56

LH* : éclatementLH* : éclatementLH* : éclatementLH* : é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 56: 1 Structures de Données Distribuées et Scalables Witold Litwin .

57

LH* : éclatementLH* : éclatementLH* : éclatementLH* : é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 57: 1 Structures de Données Distribuées et Scalables Witold Litwin .

58

LH* : éclatementLH* : éclatementLH* : éclatementLH* : é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 58: 1 Structures de Données Distribuées et Scalables Witold Litwin .

59

LH* : éclatementLH* : éclatementLH* : éclatementLH* : é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 59: 1 Structures de Données Distribuées et Scalables Witold Litwin .

60

L'algo d'adressage LH*L'algo d'adressage LH*L'algo d'adressage LH*L'algo d'adressage LH*

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

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

a' := ha' := hjj (c) ; (c) ;

si si a' = a a' = a alorsalors accepteaccepte c ; c ;

sinon sinon a'' := ha'' := hj - j - 11 (c) ;(c) ;

si si a'' > a a'' > a et et a'' a'' < < a' a' alorsalors a' a' := := a'' ; a'' ;

envoies envoies c c à la case à la case a' ;a' ;

Page 60: 1 Structures de Données Distribuées et Scalables Witold Litwin .

61

L'algo d'adressage LH*L'algo d'adressage LH*L'algo d'adressage LH*L'algo d'adressage LH*

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

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

a' := ha' := hjj (c) ; (c) ;

si si a' = a a' = a alorsalors accepteaccepte c ; c ;

sinon sinon a'' := ha'' := hj - j - 11 (c) ;(c) ;

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

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

Simple, n'est ce pas ?

Page 61: 1 Structures de Données Distribuées et Scalables Witold Litwin .

62

Ajustement d'image de clientAjustement d'image de clientAjustement d'image de clientAjustement d'image de client Le message IAM consiste de l'adresse Le message IAM consiste de l'adresse a a ou le client a ou le client a

envoyé envoyé c c et de et de jj((aa).).– i' i' est la valeur présumée de est la valeur présumée de i i dans l'image du client.dans l'image du client.– n' n' est la position présumée de est la position présumée de nn– initialement, initialement, i' i' = = n' n' = 0.= 0.

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

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

Page 62: 1 Structures de Données Distribuées et Scalables Witold Litwin .

63

LH* : adressageLH* : adressageLH* : adressageLH* : adressage

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

15

Page 63: 1 Structures de Données Distribuées et Scalables Witold Litwin .

64

LH* : adressageLH* : adressageLH* : adressageLH* : adressage

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

15

Page 64: 1 Structures de Données Distribuées et Scalables Witold Litwin .

65

LH* : adressageLH* : adressageLH* : adressageLH* : adressage

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' = 3 n' = 3, i' = 2 Site coordinateur

Client Client

serveurs

j = 4

10

15

a =7, j = 3

Page 65: 1 Structures de Données Distribuées et Scalables Witold Litwin .

66

LH* : adressageLH* : adressageLH* : adressageLH* : adressage

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

9

Page 66: 1 Structures de Données Distribuées et Scalables Witold Litwin .

67

LH* : adressageLH* : adressageLH* : adressageLH* : adressage

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

9

Page 67: 1 Structures de Données Distribuées et Scalables Witold Litwin .

68

LH* : adressageLH* : adressageLH* : adressageLH* : adressage

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

9

Page 68: 1 Structures de Données Distribuées et Scalables Witold Litwin .

69

LH* : adressageLH* : adressageLH* : adressageLH* : 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 coordinateur

Client Client

serveurs

j = 4

10

9

a = 9, j = 4

Page 69: 1 Structures de Données Distribuées et Scalables Witold Litwin .

70

RésultatRésultatRésultatRésultat

On peut construire un fichier distribué On peut construire un fichier distribué grandissant à une taille quelconque (ex. tout grandissant à une taille quelconque (ex. tout Internet) et tel que :Internet) et tel que :– toute insertion et toute recherche peuvent être toute insertion et toute recherche peuvent être

faites au plus en 4 messages au plus (IAM faites au plus en 4 messages au plus (IAM inclus)inclus)

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

– preuve dans [LNS 93]preuve dans [LNS 93]

Page 70: 1 Structures de Données Distribuées et Scalables Witold Litwin .

71

Performances d'accès d'une SDDSPerformances d'accès d'une SDDSPerformances d'accès d'une SDDSPerformances d'accès d'une SDDS

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

Nombre moyen de messages / insertionNombre moyen de messages / insertion– globalglobal– sur un clientsur un client

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

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

Page 71: 1 Structures de Données Distribuées et Scalables Witold Litwin .

72

10,000 inserts

Global cost

Client's cost

Page 72: 1 Structures de Données Distribuées et Scalables Witold Litwin .

73

Page 73: 1 Structures de Données Distribuées et Scalables Witold Litwin .

74

Page 74: 1 Structures de Données Distribuées et Scalables Witold Litwin .

75

Inserts by two clients

Page 75: 1 Structures de Données Distribuées et Scalables Witold Litwin .

76

SDDS-2000 : global architectureSDDS-2000 : global architecture

Applications ApplicationsApplications etc

SDDS Data server

SDDS Data server

SDDS Data server

SDDS-2000 Server SDDS-2000 Server SDDS-2000 Server

SDDS-2000 Client SDDS-2000 Client SDDS-2000 Client SDDS-2000 Client

Network

Page 76: 1 Structures de Données Distribuées et Scalables Witold Litwin .

77

Send Request

Receive Response

Return Response

Client Image process.

SDDS-2000 : Client Architecture 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 77: 1 Structures de Données Distribuées et Scalables Witold Litwin .

78

SDDS-2000 : Server Architecture SDDS-2000 : Server Architecture Bucket SDDS

Insertion Search Update Delete

W.Thread 1 W.Thread 4…

Request Analyse

Queuing system

Listen Thread

Socket

Client

Network

client Request

Response

Response

Listen Thread

Queuing system

Work Thread

Local process

Forward

Response

Page 78: 1 Structures de Données Distribuées et Scalables Witold Litwin .

79

128 MB Ram FC or FS

Pentium 350 Mhz Pentium 90 Mhz48 MB Ram SC or SS

Ethernet 100 Mbit/s

Performance measures :Configuration

UDP Protocol for insertions and searches TCP Protocol for splits

Page 79: 1 Structures de Données Distribuées et Scalables Witold Litwin .

80

IInsertnsert time time into into up to up to 3 buckets3 buckets ConfigurationConfiguration

F.S

J=2

S.S

J=1

S.C100 Mb/s

S.S

J=2

Bucket 0

Bucket 1

Bucket 2

UDP communication

Batch 1,2,3, …

Page 80: 1 Structures de Données Distribuées et Scalables Witold Litwin .

81

0

5

10

15

20

0 5000 10000 15000 20000

File size (records)

Tim

e (s

)

File creation time under 3 buckets File creation time under 3 buckets

Scalability Time for 20000 = 4 * Time for 5000

Page 81: 1 Structures de Données Distribuées et Scalables Witold Litwin .

82

0

0,5

1

1,5

2

0 5000 10000 15000 20000

File size (records)

Tim

e (m

s)

with splits without splits

Insert Rate under 3 bucketsInsert Rate under 3 buckets

•With splits : includes 2 splits + forwards + IAM updates

•Without splits : the buckets already exist and the client image is up to date

Page 82: 1 Structures de Données Distribuées et Scalables Witold Litwin .

83

AAverage search time verage search time inin 3 3 Slow Slow ServersServers : : ConfigurationConfiguration

S.S

J=2

S.S

J=1

F.C100 Mb/s

S.S

J=2

Bucket 0

Bucket 1

Bucket 2

UDP communication

Batch 1,2,3, …

Page 83: 1 Structures de Données Distribuées et Scalables Witold Litwin .

84

Search Rate Search Rate

3,3

1,57

1,08

3,3

1,571,43

0

0,5

1

1,5

2

2,5

3

3,5

0 1 2 3 4

Number of buckets

Tim

e (

ms)

Balanced charge Non balanced charge

•Balanced load (charge) : 3 buckets are generated with the same number of records

•Unbalanced load : Bucket 1 has more records

•Conclusion : Good scalability

Page 84: 1 Structures de Données Distribuées et Scalables Witold Litwin .

85

Best performances of a F.S : Best performances of a F.S : configurationconfiguration

F.S

J=0

S.C(3)

S.C(1)

100 Mb/s

UDP communication

Bucket 0 S.C(2)

Page 85: 1 Structures de Données Distribuées et Scalables Witold Litwin .

86

Fast Server Insert Time Fast Server Insert Time

• 3 clients create lost messages

0

0,5

1

1,5

2

0 5000 10000 15000 20000

Number of records

Tim

e (m

s)

1 SC 2 SC

Page 86: 1 Structures de Données Distribuées et Scalables Witold Litwin .

87

Fast Server Search TimeFast Server Search Time

1.96

0.97

0.66

0

0.5

1

1.5

2

2.5

0 1 2 3 4

Number of clients

Tim

e (

ms

)

• Total search time / # of records searched

• More than 3 clients lost messages• Bucket capacity does not influence the time (1000,5000, …, 20000 records),

Page 87: 1 Structures de Données Distribuées et Scalables Witold Litwin .

88

Autres performancesAutres performancesAutres performancesAutres performances Taux de remplissage : 70 %Taux de remplissage : 70 % Convergence d'image d'un nouveau client:Convergence d'image d'un nouveau client:

– en O (log en O (log 22 N) IAM messages N) IAM messages Coût d'éclatement : un message (en théorie)Coût d'éclatement : un message (en théorie) Temps d'accès (fichier RAM) :Temps d'accès (fichier RAM) :

– < 1 ms sur Ethernet (pour articles de 1.000 O)< 1 ms sur Ethernet (pour articles de 1.000 O)– 30-30-s sur ATM ou un réseau 1 Gb/ss sur ATM ou un réseau 1 Gb/s

» revisite l'ex. de Jim Grayrevisite l'ex. de Jim Gray Tailles possibles d'un fichier RAM sur un LAN: Tailles possibles d'un fichier RAM sur un LAN:

– 100 GOctets aujourd'hui, > 500 GO demain100 GOctets aujourd'hui, > 500 GO demain

Page 88: 1 Structures de Données Distribuées et Scalables Witold Litwin .

89

Taux de remplissage Taux de remplissage = = m / m / ((bNbN) est contrôlé par coordinateur en supposant l'image du fichier :) est contrôlé par coordinateur en supposant l'image du fichier :

On peut atteindre les taux moyens de l'ordre de 80 - 85 %.On peut atteindre les taux moyens de l'ordre de 80 - 85 %.– 10 - 20 % de plus que sans contrôle10 - 20 % de plus que sans contrôle

Cette variante s'appelle à Cette variante s'appelle à contrôlé d'éclatementscontrôlé d'éclatements

Variantes de LH*Variantes de LH* Contrôlé d'éclatementsContrôlé d'éclatements

Variantes de LH*Variantes de LH* Contrôlé d'éclatementsContrôlé d'éclatements

Taux réel

Taux supposén

N

Page 89: 1 Structures de Données Distribuées et Scalables Witold Litwin .

90

Contrôle Contrôle d'éclatementsd'éclatements(détails)(détails)

Contrôle Contrôle d'éclatementsd'éclatements(détails)(détails)

Problème:Problème:– le coordinateur ne connaît pas le coordinateur ne connaît pas m m

» m m - nombre d'articles dans le fichier- nombre d'articles dans le fichier

Solution:Solution:– le coordinateur estime le coordinateur estime chaque fois qu'un chaque fois qu'un

message de débordement arrive message de débordement arrive – il ne déclanche l'éclatements que si il ne déclanche l'éclatements que si t t

» t t - taux de remplissage min voulu (threshold)- taux de remplissage min voulu (threshold)– t t [[0.7 - 10.7 - 1]]

Page 90: 1 Structures de Données Distribuées et Scalables Witold Litwin .

91

Contrôle Contrôle d'éclatementsd'éclatementsContrôle Contrôle d'éclatementsd'éclatements

Taux réel

Taux supposé parle coordinateurn

La case La case s s qui déborde envoie au coordinateur qui déborde envoie au coordinateur SC SC un un message avec le nombre d'articles message avec le nombre d'articles x x dansdans s s

SC SC execute l'algo suivant :execute l'algo suivant :d d := := x / b ; x / b ; si si s < n s < n ou ou s s 2 2ii alors alors d d := 2 * := 2 * dd ; ;

' ' := (2:= (2ii * * d d ) / (2) / (2ii + + n n ) ;) ;

si si ' > t ' > t alors evoie le message d'éclatement à la case alors evoie le message d'éclatement à la case n ; n ;

d x

n n2i-n

Page 91: 1 Structures de Données Distribuées et Scalables Witold Litwin .

92

Allocation de sitesAllocation de sitesAllocation de sitesAllocation de sites

Il faut appliquer pour toute case :Il faut appliquer pour toute case :– son adresse son adresse logiquelogique

» a = a = 0, 1, 2..0, 1, 2..

– sur son adresse sur son adresse physiquephysique réseau, réseau, » ex. ex. ss = 123.456.789 = 123.456.789

Il faut une même correspondance sur chaque siteIl faut une même correspondance sur chaque site Solution: une table d'allocation Solution: une table d'allocation TT

– statique statique

– dynamiquedynamique

Page 92: 1 Structures de Données Distribuées et Scalables Witold Litwin .

93

Table statiqueTable statiqueTable statiqueTable statique

une même table une même table TT sur tout sur tout client et serveur client et serveur – contient contient toustous les adresses les adresses

disponibles pour disponibles pour toustous les les fichiersfichiers

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

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

s1 s2 s3 sMT

5

H

Page 93: 1 Structures de Données Distribuées et Scalables Witold Litwin .

94

Table dynamiqueTable dynamiqueTable dynamiqueTable dynamique

Tout serveur Tout serveur nn qui éclate qui éclate choisit l'adresse choisit l'adresse ss de la de la nouvelle case nouvelle case n' = n n' = n + 2 + 2 j - j - 11

s s est communiquée à SCest communiquée à SC quand quand n' n' reçoit un forward de reçoit un forward de

n, n, alorsalors il inclut il inclut s s dans l'IAMdans l'IAM Le client envoie un message Le client envoie un message

au coordinateur avec au coordinateur avec i' i' et et n'n' Le coordinateur renvoie toutes Le coordinateur renvoie toutes

les adresses manquantes au les adresses manquantes au client (lesquelles alors ?)client (lesquelles alors ?)

s1 s2 s3 s20T

3

s1 s2 s3 s22T

s1 s2 s3 s25TSC

S5

C30

Page 94: 1 Structures de Données Distribuées et Scalables Witold Litwin .

95

Table dynamiqueTable dynamiqueTable dynamiqueTable dynamique

Un serveur n'a que les adresses Un serveur n'a que les adresses s s de ses de ses "enfants""enfants"

Un client a toutes les adresses Un client a toutes les adresses s s de son de son imageimage

SC a toutes les adresses SC a toutes les adresses ss Ils existent d'autres algos pour gérer TIls existent d'autres algos pour gérer T

– proposez un évitant le message de client à SCproposez un évitant le message de client à SC

Page 95: 1 Structures de Données Distribuées et Scalables Witold Litwin .

96

Requêtes parallèlesRequêtes parallèlesRequêtes parallèlesRequêtes parallèles Une requête Une requête QQ à toutes les cases de à toutes les cases de FF dontdont les les

exécutions locales sont indépendantesexécutions locales sont indépendantes– en toute généralité : à certaines casesen toute généralité : à certaines cases

– toutetoute case devrait recvoir case devrait recvoir Q Q et et une seuleune seule fois fois

Mode d'envoi:Mode d'envoi:– multicastmulticast

» n'est pas toujours commode, voire possiblen'est pas toujours commode, voire possible

– unicastunicast» le client ne connaît pas tous les serveursle client ne connaît pas tous les serveurs

Page 96: 1 Structures de Données Distribuées et Scalables Witold Litwin .

97

LH* algorithme pour les requêtes parallèlesLH* algorithme pour les requêtes parallèlesLH* algorithme pour les requêtes parallèlesLH* algorithme pour les requêtes parallèles

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

jj' :' :– initialement initialement j' =j' = i' i' si si n' n' i'i' sinonsinon j' = j' = i' + i' + 11– case case a a (de niveau (de niveau j j ) renvoie ) renvoie Q Q à tous ses enfants en à tous ses enfants en

utilisant l'algo:utilisant l'algo:while while j' j' < < j j dodo

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

endwhileendwhile Preuve de cet algo ?Preuve de cet algo ?

Page 97: 1 Structures de Données Distribuées et Scalables Witold Litwin .

98

Terminaison d'une requête parallèleTerminaison d'une requête parallèle(multicast ou unicast)(multicast ou unicast)

Terminaison d'une requête parallèleTerminaison d'une requête parallèle(multicast ou unicast)(multicast ou unicast)

Quand est-ce que le client Quand est-ce que le client C C sait que la dernière réponse sait que la dernière réponse est arrivée ?est arrivée ?

– le nombre réel de cases est inconnu de le nombre réel de cases est inconnu de CC Solution déterministe (chère, mais 100 Solution déterministe (chère, mais 100 % sure)sure)

– C C demande à chaque case de répondredemande à chaque case de répondre Solution probabiliste (en géneral moins chère, mais Solution probabiliste (en géneral moins chère, mais xx < <

100 % sure)100 % sure)

– seules repondent les cases pertinentes à la requêteseules repondent les cases pertinentes à la requête

– après chaque réponse après chaque réponse C C réinitialise un time-out réinitialise un time-out TT

Page 98: 1 Structures de Données Distribuées et Scalables Witold Litwin .

99

Solution DeterministeSolution DeterministeSolution DeterministeSolution Deterministe

– Toute case envoie Toute case envoie j, m j, m et les enreg. eventuellementet les enreg. eventuellement

» m m c'est l'adresse logiquec'est l'adresse logique

– Le client termine quand il a tout Le client termine quand il a tout m m tel que ;tel que ;

» m = m = 0,1..., 2 0,1..., 2 i i + n + n avec avec– i i = min (= min (jj)) et et n n = min (= min (mm) ) avecavec j = i j = i

i+1 i i+1n

Page 99: 1 Structures de Données Distribuées et Scalables Witold Litwin .

100

Exécution d'une requête parallèleExécution d'une requête parallèle(TCP/IP)(TCP/IP)

Exécution d'une requête parallèleExécution d'une requête parallèle(TCP/IP)(TCP/IP)

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

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

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

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

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

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

Page 100: 1 Structures de Données Distribuées et Scalables Witold Litwin .

101

Exécution d'une requête parallèleExécution d'une requête parallèleExécution d'une requête parallèleExécution d'une requête parallèle

0

1000

2000

3000

4000

5000

6000

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

Nombre de serveurs

Te

mp

s d

e r

ép

on

se

(m

s)

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

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

Page 101: 1 Structures de Données Distribuées et Scalables Witold Litwin .

102

LH* sans coordinateurLH* sans coordinateurLH* sans coordinateurLH* sans coordinateur

Un jeton J circule avec la valeur de i, à partir de n = 0.Un jeton J circule avec la valeur de i, à partir de n = 0. La case La case a a qui a J estime qui a J estime (localement)(localement)

– comment ? ( il y a plusieurs stratégies )comment ? ( il y a plusieurs stratégies ) Si Si > > t t alors alors a a éclate et passe J à la case éclate et passe J à la case a a +1+1 Il peut y avoir des Il peut y avoir des cascades cascades d'éclatementsd'éclatements Simulations de Julien Levy (Paris 9) montrent que Simulations de Julien Levy (Paris 9) montrent que

les performances sont (un peu) meilleures que les performances sont (un peu) meilleures que celles de LH* avec le coordinateurcelles de LH* avec le coordinateur– De plus il n'y a aucun composant centraliséDe plus il n'y a aucun composant centralisé

Page 102: 1 Structures de Données Distribuées et Scalables Witold Litwin .

103

Load factor for uncontrolled splitting

Page 103: 1 Structures de Données Distribuées et Scalables Witold Litwin .

104

Load factor for different load control strategies and threshold t = 0.8

Page 104: 1 Structures de Données Distribuées et Scalables Witold Litwin .

105

Page 105: 1 Structures de Données Distribuées et Scalables Witold Litwin .

106

AutresAutresAutresAutres

Pré-éclatementPré-éclatement Accès concurrentAccès concurrent Plusieurs cases sur un même serveur Plusieurs cases sur un même serveur

– (Breitbart et Waikum, ACM-SIGMOD 94)(Breitbart et Waikum, ACM-SIGMOD 94) LH*LH*LH LH (Transputer avec 128 PowerPCs) (Transputer avec 128 PowerPCs)

» avec J. Karlson & T. Risch, avec J. Karlson & T. Risch, publié à EDBT-96publié à EDBT-96

LH*LH*RS RS : : » ACM-SIGMOD 2000ACM-SIGMOD 2000

Page 106: 1 Structures de Données Distribuées et Scalables Witold Litwin .

107

Opérations relationnellesOpérations relationnellesOpérations relationnellesOpérations relationnelles Projections, restrictions :Projections, restrictions :

– envoi d'une requête parallèleenvoi d'une requête parallèle Equijointures :Equijointures :

– par bulk inserts dans le fichier LH* résultatpar bulk inserts dans le fichier LH* résultat» les clés égales ne peuvent finir que dans une même caseles clés égales ne peuvent finir que dans une même case» plusieurs méthodes existentplusieurs méthodes existent

– D. Schneider & al. COMAD 94D. Schneider & al. COMAD 94 On peut faire de très grandes jointures et on n'a pas besoin On peut faire de très grandes jointures et on n'a pas besoin

de connaître par avance la taille du résultatde connaître par avance la taille du résultat Il est préferable de faire les Il est préferable de faire les projections et restrictions projections et restrictions

avant les jointure (comme pour les BDs centralisées)avant les jointure (comme pour les BDs centralisées)

Page 107: 1 Structures de Données Distribuées et Scalables Witold Litwin .

108

Opérations relationnellesOpérations relationnellesOpérations relationnellesOpérations relationnelles

Theta jointuresTheta jointures– l'algo a définir en détailsl'algo a définir en détails

» la comparaison de deux clés la comparaison de deux clés C C etet C' C' autre que autre que C =C = C' C' est peu performante par hachage est peu performante par hachage

» RP* semble plus efficaceRP* semble plus efficace

Fonctions agrégats (SUM, COUNT...)Fonctions agrégats (SUM, COUNT...)– req. parallèlesreq. parallèles

Page 108: 1 Structures de Données Distribuées et Scalables Witold Litwin .

109

Vidéo sur demandeVidéo sur demandeVidéo sur demandeVidéo sur demande

Chaque image (fixe) a une clé 0,1,2...Chaque image (fixe) a une clé 0,1,2... LH* répartit les images sur les sitesLH* répartit les images sur les sites Le client qui doit faire jouer un film recherche les Le client qui doit faire jouer un film recherche les

images en ordre de clésimages en ordre de clés PerformancesPerformances

– on peut jouer plusieurs films à la foison peut jouer plusieurs films à la fois

– on peut jouer un film et charger d'autres simultanémenton peut jouer un film et charger d'autres simultanément

– Pas besoin de serveur dédié (N-Cube chez Oracle)Pas besoin de serveur dédié (N-Cube chez Oracle)

Page 109: 1 Structures de Données Distribuées et Scalables Witold Litwin .

110

Travaux à DauphineTravaux à Dauphine(CERIA)(CERIA)

Travaux à DauphineTravaux à Dauphine(CERIA)(CERIA)

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

» Financé par HPL, IBM-Almaden, MS-ResearchFinancé par HPL, IBM-Almaden, MS-Research» LH*LH*LH LH

» LH*LH*RS RS (U. Uppsala)(U. Uppsala)» RP*RP*

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

Application SD-AMOS (avec U. Uppsala)Application SD-AMOS (avec U. Uppsala)

Page 110: 1 Structures de Données Distribuées et Scalables Witold Litwin .

111

ConclusionConclusionConclusionConclusion

MOs sont l'avenirMOs sont l'avenir SDDS sont une nouvelle classe de SDDS sont une nouvelle classe de

structures de données à des performances structures de données à des performances impossibles auparavantimpossibles auparavant

Des possibilités nouvelles pour nombreuses Des possibilités nouvelles pour nombreuses applicationsapplications

Page 111: 1 Structures de Données Distribuées et Scalables Witold Litwin .

112

FINFINFINFINMerci de votre attentionMerci de votre attentionMerci de votre attentionMerci de votre attention

Page 112: 1 Structures de Données Distribuées et Scalables Witold Litwin .

113