1 Structures de Données Distribuées et Scalables Witold Litwin .
-
Upload
iseult-beck -
Category
Documents
-
view
106 -
download
2
Transcript of 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
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
3
VLDB-98 par taille
UPS contient aussi 6 GB d ’indexes
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
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
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
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
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
9
Un multiordinateurUn multiordinateurUn multiordinateurUn multiordinateur
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
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)
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
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)
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
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)
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 ........
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)
18
Un multiordinateurUn multiordinateurUn multiordinateurUn multiordinateur
Client Serveur
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
20
Une SD classiqueUne SD classiqueUne SD classiqueUne SD classique
Calcul d'adresse
Clients
Fichier
SGF
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
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
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
25
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
Croissance par des éclatements
Serveurs
26
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
Croissance par des éclatements
ServersServeurs
27
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
Croissance par des éclatements
ServersServeurs
28
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
Croissance par des éclatements
ServersServeurs
29
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
Croissance par des éclatements
ServersServeurs
30
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
31
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
32
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
IAM
33
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
34
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
35
SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues
DS
Classics
36
SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues
Hash
SDDS(1993)
LH* DDH
Breitbart & al
DS
Classics
37
SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues
Hash
SDDS(1993)
1-d tree
LH* DDH
Breitbart & al RP* Kroll & Widmayer
DS
Classics
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
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.
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
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
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
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.
44
Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier
351271524
h0 ; n = 0
N = 1b = 4i = 0
hh00 : c -> : c -> 2200
0
45
Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier
351271524
h1 ; n = 0
N = 1b = 4i = 0
hh11 : c -> : c -> 2211
0
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
47
Evolution de fichierEvolution de fichierEvolution de fichierEvolution de fichier
32581224
N = 1b = 4i = 1
hh11 : c -> : c -> 2211
0
211135715
1
hh11 hh11
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
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
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
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
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.
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
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
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
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
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
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
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
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' ;
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 ?
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)
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
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
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
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
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
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
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
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]
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
72
10,000 inserts
Global cost
Client's cost
73
74
75
Inserts by two clients
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
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
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
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
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, …
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
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
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, …
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
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)
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
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),
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
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
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]]
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
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
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
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
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
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
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 ?
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
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
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.
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)
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é
103
Load factor for uncontrolled splitting
104
Load factor for different load control strategies and threshold t = 0.8
105
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
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)
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
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)
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)
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
112
FINFINFINFINMerci de votre attentionMerci de votre attentionMerci de votre attentionMerci de votre attention
113