1 structures de données distribuées et scalables witold litwin
TRANSCRIPT
![Page 1: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/9.jpg)
9
Un multiordinateurUn multiordinateurUn multiordinateurUn multiordinateur
![Page 10: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/18.jpg)
18
Un multiordinateurUn multiordinateurUn multiordinateurUn multiordinateur
Client Serveur
![Page 19: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/29.jpg)
30
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
![Page 30: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/30.jpg)
31
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
![Page 31: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/31.jpg)
32
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
IAM
![Page 32: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/32.jpg)
33
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
![Page 33: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/33.jpg)
34
Une SDDSUne SDDSUne SDDSUne SDDS
Clients
![Page 34: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/34.jpg)
35
SDDSs ConnuesSDDSs ConnuesSDDSs ConnuesSDDSs Connues
DS
Classics
![Page 35: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/57.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/58.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/59.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/60.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/61.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/62.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/63.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/64.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/65.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/66.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/67.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/68.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/69.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/70.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/71.jpg)
72
10,000 inserts
Global cost
Client's cost
![Page 72: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/72.jpg)
73
![Page 73: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/73.jpg)
74
![Page 74: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/74.jpg)
75
Inserts by two clients
![Page 75: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/75.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/76.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/77.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/78.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/79.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/80.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/81.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/82.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/83.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/84.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/85.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/86.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/87.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/88.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/89.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/90.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/91.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/92.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/93.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/94.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/95.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/96.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/97.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/98.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/99.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/100.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/101.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/102.jpg)
103
Load factor for uncontrolled splitting
![Page 103: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/103.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/104.jpg)
105
![Page 105: 1 Structures de Données Distribuées et Scalables Witold Litwin](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/105.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/106.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/107.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/108.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/109.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/110.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/111.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062621/551d9d85497959293b8c07aa/html5/thumbnails/112.jpg)
113