Elaboration de diagnostiqueurs locaux à partir de modèles distribuées de Partie Opérative
Structures de Données Distribuées et Scalables
description
Transcript of Structures de Données Distribuées et Scalables
![Page 1: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/1.jpg)
1
Structures de Données Distribuées et Scalables
Witold Litwinceria.dauphine.fr/witold.html
![Page 2: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/2.jpg)
2
Structures de Données Distribuées et Scalables
Une nouvelle classe de structures de données pour des bases de données modernes– Scalables
» Grandissant rapidement– D’une grande taille (TO – PO)
» Avec des données multimedia, géographiques…– Hautement disponibles 24/7– Permettant le calcul de prise de décision
» Calcul rapide de fonctions diverses– Distribution et mémoires rapides
![Page 3: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/3.jpg)
VLDB-05 par taillehttp://www.wintercorp.com/VLDB/2005_TopTen_Survey/TopTenWinners_2005.asp
![Page 4: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/4.jpg)
4
VLDB-98 par taille
UPS contient aussi 6 TB d ’indexes
![Page 5: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/5.jpg)
5
Même « VLDB Survey » en 1997
• Scalabilité : Base UPS a plus que quadruplé de volume en un an !
• Base TRW est la même que Experian
![Page 6: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/6.jpg)
6
Scalabilité de Grandes BDs
3,2 TO en 97 17 TO en 98 223 TO en 2005 La taille max connue d’une BD a augmenté
de 70 fois en 8 ans !!!
![Page 7: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/7.jpg)
7
Structures de Données Distribuées et Scalables
Conçues spécifiquement pour les multiordinateurs– CPUs ou PCs interconnectés par un réseau local– Architecture à partage de rien
» Shared Nothing Architecture Introduites en 1993 Plusieurs SDDSs découvertes depuis Recommandées dans la nouvelle éd. 1999 de « Art of
Computer Programming » de D. Knuth Etudiées notamment à CERIA
– Avec support de HP, IBM-Research & MS-Research– Cas unique pour les recherches en BDs en France
![Page 8: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/8.jpg)
8
Structures de Données Distribuées et Scalables
![Page 9: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/9.jpg)
9
SDDSs : Ce que l’on sait faire
Partitionnement scalable – Hachage– Ordonné– Multidimensionnel
» Notamment SD-Rtrees Fichiers résidant en général en RAM distribuée
» Accès dix à cent fois plus rapide qu’aux disques Fichiers sur SANs
– TOctets à POctets Calcul parallèle
– Nécessaire pour les calculs de décision
![Page 10: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/10.jpg)
10
SDDSs : Ce que l’on sait faire
Disponibilité scalable– Plus le fichier est grands, plus il y a de serveurs à panne
tolérée Couplage à un SGBD
– AMOS-2 Prototype SDDS-200x sous Windows Tables relationnelles scalables
– SD-SQL Server
![Page 11: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/11.jpg)
11
SDDSs : Ce que l’on sait faire
Recherche de chaînes– Pattern matching
Confidentialité Les deux, notamment en utilisant les
signatures algébriques
![Page 12: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/12.jpg)
12
SDDSs : Ce que l’on ne sait pas faire
Beaucoup de choses– Fichiers plats– Concurrence– Transactions– Objets Symboliques– T-Cubes– ….
![Page 13: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/13.jpg)
13
Plan
Pourquoi ?– Multiordinateurs & leur applications– Inadéquation de structures de données
traditionnelles Quoi ?
– Axiomatique des SDDSs Comment ?
– SDDSs connues
![Page 14: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/14.jpg)
14
Un multiordinateur
Une collection d'ordinateurs faiblement couplés– sans mémoire partagée– en général couplés
» par un reseau de type LAN (multiordinateur reseau)» par un bus (ang.”switched” multiordinateur)
– et WAN, puis ATM
![Page 15: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/15.jpg)
15
Un multiordinateur
![Page 16: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/16.jpg)
16
Pourquoi des multiordinateurs ?
Bon marchés (souvent ils existent déjà) Une configuration matériel qui devienne
dominante par son prix et utilité Puissance théorique de ressources en calcul et
mémoires impossible pour un ordinateur (traditionnel)
1400 WSs reliés à HPL avec le total de 100 GO de RAM et TOs de disques
+ que tout super-ordinateur existant Possibilité de bases en RAM distribuée
– Une nécessité pour les bases modernes
![Page 17: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/17.jpg)
17
Distance à l'info(ex. de Jim Gray, cours à UC Berkeley 1992, MAJ 2009)
1 s
10 s
10 ms
RAM
RAM distant(Gb net)
disque local
100 s RAM distant(100Mb Ethernet)
1 m
10 m
2 h
8 j
Lune
500 s Flash 10 h
![Page 18: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/18.jpg)
18
Situation 2009
Le prix d’une flash RAM est 49 $ pour 32 GO (Déc. 08) 139 $ pour 64 GO
Il est désormais sûr que:– Les disques devient le support d’archivage– Les données opérationnelles seront en général en
RAM ou Flash distribuée Voir l’article de J. Gray sur son site MS
– Ou dans le matériel du cours
![Page 19: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/19.jpg)
19
Dimensions de la scalabilité(vue client)
Quantité de données# serveurs et # clients
Temps d'opération(RAM distante)
# opération / s
Scale-up
Linéaire (idéal)
Sous-linéaire (usuel)
![Page 20: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/20.jpg)
20
Dimensions de la scalabilité(vue client, spécifique SDDS)
Quantité de données
Multiordinateur & SDDS
Scale-up
Linéaire
Sous-linéaire (usuel)
RAM locale
Disques & Cache
Bandes, juke-box…
Cache & Disques
Temps d'opération
OrdinateurRAM locale
Ordinateur- cluster
Ordinateur- cluster = # fixe de serveurs
![Page 21: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/21.jpg)
21
Dimensions de la scalabilité(vue client)
# serveurs
# opération / s
Speed-upLinéaire (idéal)
Sous-linéaire (usuel)
![Page 22: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/22.jpg)
22
Applications potentiellesde multiordinateur
Bases de Données Réseaux Sociaux (Web 2…)
– Réseaux Communautaires notamment Calcul hautes performances
– numérique– cryptographie
Haute disponibilité Temps réel (flux de données…) Gestion en général Multimédia Cartographie ....
![Page 23: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/23.jpg)
23
Autres terminologies à la mode
Peer-to-Peer (P2P) Computing– Les paires autonomes partageant les données
» un paire est le client des autres » un paire est le serveur des autres
– client seul = « free rider » – Les 1èrs P2P avait été non-structurés
» toute requête provoquait un « flooding » – Un système P2P structuré évite le « flooding »
» c’est en fait une SDDS
![Page 24: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/24.jpg)
24
Autres terminologies à la mode
Grid Computing– calcul en grille– grilles de données – terminologie favorisée par IBM
» projet Decrypthon en France et autres dans le monde.
– Globus, Virtual Observatory, Meersman Primes… Offre Industrielle naissante
– DNS….
![Page 25: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/25.jpg)
25
Une Image Vaut Mille Mots
![Page 26: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/26.jpg)
26
Autres terminologies à la mode
Cloud Computing– Terminologie MS, IBM, HP…– Les services dispo à distance dans un « nuage »
de serveurs (surtout sur le Web)– Semble un synonyme de grille (grid)
Storage Service– Amazon– Cas particulier de « Cloud »
![Page 27: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/27.jpg)
27
Autres terminologies à la mode
Elastic Computing– Semble même chose que Cloud
![Page 28: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/28.jpg)
28
Autres terminologies à la mode
SaaS– Software as a Service <-> Cloud– Voir Wikipedia…
Entreprise Data Fabric– Offert par Gemstone– Produit Gemfire– Même chose en principe que Storage Service– Mais c’est une RAM distribuée– Très proche de LH*
![Page 29: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/29.jpg)
29
GemFire
http://www.gemstone.com/products/gemfire/edf.php
![Page 30: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/30.jpg)
30
Problèmes de conception A part les réseaux :
presque tout le logiciel système à (re)faire
Notamment les SGF pour :– mieux utiliser la
RAM distribuée– offrir les fichiers
scalaires sur la RAM distribuée (en dehors d'un ordinateur)
![Page 31: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/31.jpg)
31
Un multiordinateur
Client Serveur Pair
« Spare »
![Page 32: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/32.jpg)
32
Un multiordinateur
Client Serveur
Toujours disponible pour la connexion
etcontient les données
partagées
Initiateur des connectionsaux serveurs
pour l'accès auxdonnées partagées
Paire ?
![Page 33: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/33.jpg)
33
Une SD classique
Calcul d'adresse
Clients
Fichier
SGF
![Page 34: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/34.jpg)
34
Problèmes de transposition sur un MO
Calcul d'adresse unique centralisé deviendrait un point d'accumulation – limite sur les performances d'accès– vulnérabilité aux pannes
Duplication du calcul d'adresse sur les clients exigerait des MAJ synchrones de clients en cas de changement de structure (éclatement d'une case, par exemple)– impossible pour un grand nombre de clients
![Page 35: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/35.jpg)
35
Une SDDS: axiomes généraux
Les données sont sur les (sites) serveurs Il n'y a pas de répertoire central d'accès Les MAJ de la structure d'une SDDS ne
sont pas envoyées aux clients d'une manière synchrone
![Page 36: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/36.jpg)
36
Une SDDS: axiomes généraux
Un client peut faire des erreurs d'adressage par suite d'une image inadéquate de la structure de SDDS
Chaque serveur vérifie l'adresse de la requête et l'achemine vers un autre serveur si une erreur est détectée
Le serveur adéquat envoie alors un message correctif au client ayant fait l'erreur d'adressage:– Image Adjustment Message (IAM)
Le client ajuste son image pour ne plus faire la même erreur
![Page 37: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/37.jpg)
38
Une SDDS
Clients
Croissance par des éclatements
Serveurs
![Page 38: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/38.jpg)
39
Une SDDS
Clients
Croissance par des éclatements
ServersServeurs
![Page 39: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/39.jpg)
40
Une SDDS
Clients
Croissance par des éclatements
ServersServeurs
![Page 40: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/40.jpg)
41
Une SDDS
Clients
Croissance par des éclatements
ServersServeurs
![Page 41: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/41.jpg)
42
Une SDDS
Clients
Croissance par des éclatements
ServersServeurs
![Page 42: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/42.jpg)
43
Une SDDS
Clients
![Page 43: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/43.jpg)
44
Une SDDS
Clients
![Page 44: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/44.jpg)
45
Une SDDS
Clients
IAM
![Page 45: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/45.jpg)
46
Une SDDS
Clients
![Page 46: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/46.jpg)
47
Une SDDS
Clients
![Page 47: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/47.jpg)
48
SDDSs Connues
DSClassics
![Page 48: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/48.jpg)
49
SDDSs Connues
Hash
SDDS(1993)
LH* DDH
Breitbart & al
DSClassics
![Page 49: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/49.jpg)
50
SDDSs Connues
Hash
SDDS(1993)
1-d tree LH* DDH
Breitbart & al RP* Kroll & Widmayer
DSClassics
![Page 50: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/50.jpg)
51
SDDSs Connues
Hash
SDDS(1993)
1-d tree LH* DDH
Breitbart & al RP* Kroll & Widmayer
m-d treesk-RP*
dPi-tree
DSClassics
![Page 51: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/51.jpg)
52
SDDSs Connues
Hash
SDDS(1993)
1-d tree LH* DDH
Breitbart & al RP* Kroll & Widmayer
m-d trees
DSClassics
Security LH*s
k-RP*dPi-tree
Nardelli-tree
LH*m, LH*g
H-Avail.
![Page 52: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/52.jpg)
53
SDDSs Connues
Hash
SDDS(1993)
1-d tree LH* DDH
Breitbart & alRP*
Kroll & WidmayerBreitbart & VingralekBaton, CTH*, IH*..
m-d trees
DSClassics
H-Avail.
LH*m, LH*gSecurity LH*s
k-RP*dPi-tree, hQT*:
Nardelli-treeSD-Rtree…
s-availabilityLH*SA
LH*RS http://ceria.dauphine.fr/SDDS-bibliograhie.html
SDLSA
Disk
LH*P2PRS LH*RE
![Page 53: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/53.jpg)
54
Références aux Travaux SDDS
![Page 54: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/54.jpg)
55
Références aux Travaux SDDS
![Page 55: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/55.jpg)
56
LH* Une SDDS basée sur Linear Hashing (LH)
– Litwin 1978, (VLDB-78).» Décrit dans plusieurs livres, Wikipedia, NIST Dict. of
Algos…» L'article original est réimprimé dans:
– Readings in Databases. M. Stonebraker (ed.). 2nd édition. Morgan-Kaufmann
» Utilisé dans de nombreux produits Postgres, MySQL, MS Inf. Server, SQL Server,
DbLibrary (Oracle), Nescape Suite, Frontpage, MsExchange
» Partie standard d’un curriculum en structures de données
![Page 56: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/56.jpg)
57
LH* Proposée par Litwin, Neimat, Schneider (ACM-
Sigmod 1993), noté dans ce qui suit [LNS93] Présenté + en détail dans le journal ACM-
Transactions on Database Systems– ACM-TODS 96– Le principal journal de recherche en BDs
Nombreux variantes proposées depuis – Voir la biblio sur le site CERIA– Aussi ACM-TODS Oct. 06
Trois brevets US– 1 : HPL – 2 : IBM
![Page 57: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/57.jpg)
58
Rappel sur LH Un algorithme d'hachage extensible
– on étend l'espace d'adressage primaire pour éviter l'accumulation de débordements
– et la détérioration progressive de performances d'accès Le fichier consiste de cases de capacité b >> 1 Hachage par division hi : c -> c mod 2i N donne
l'adresse h (c) de la clé c. Eclatement de cases en remplaçant hi avec h i+1 ; i
= 0,1,.. En moyenne, b / 2 de clés s'en vont vers une
nouvelle case
![Page 58: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/58.jpg)
59
Rappel sur LH
Un éclatement a lieu quand une case déborde On n'éclate pas la case qui déborde, mais celle
pointée par un pointer n. n évolue : 0, 0,1, 0,1,2, 0,1..,3, 0,..,7, 0,..,2i N, 0.. Ces principes évitent l'existence d'un index,
caractéristique d'autres algos de hachage extensible.
![Page 59: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/59.jpg)
60
Evolution de fichier
351271524
h0 ; n = 0
N = 1b = 4i = 0h0 : c -> 20
0
![Page 60: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/60.jpg)
61
Evolution de fichier
351271524
h1 ; n = 0
N = 1b = 4i = 0h1 : c -> 21
0
![Page 61: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/61.jpg)
62
Evolution de fichier
1224
h1 ; n = 0
N = 1b = 4i = 1h1 : c -> 21
0
35715
1
![Page 62: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/62.jpg)
63
Evolution de fichier
32581224
N = 1b = 4i = 1h1 : c -> 21
0
211135715
1
h1 h1
![Page 63: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/63.jpg)
64
Evolution de fichier
321224
N = 1b = 4i = 1h2 : c -> 22
0
211135715
1
58
2
h2 h1 h2
![Page 64: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/64.jpg)
65
Evolution de fichier
321224
N = 1b = 4i = 1h2 : c -> 22
0
33211135715
1
58
2
h2 h1 h2
![Page 65: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/65.jpg)
66
Evolution de fichier
321224
N = 1b = 4i = 1h2 : c -> 22
0
3321
1
58
2
h2 h2 h2
1135715
3
h2
![Page 66: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/66.jpg)
67
Evolution de fichier
321224
N = 1b = 4i = 2h2 : c -> 22
0
3321
1
58
2
h2 h2 h2
1135715
3
h2
![Page 67: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/67.jpg)
68
Evolution de fichier
Et ainsi de suite– on introduit h3 puis h4 ...
Le fichier peut s'étendre autant qu'il faut, sans jamais avoir beaucoup de débordements.
![Page 68: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/68.jpg)
69
Algorithme d'adressage
a <- h (i, c) si n = 0 alors exit sinon
si a < n alors a <- h (i+1, c) ;fin
![Page 69: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/69.jpg)
70
LH* : Propriété Basique de LH
Une clé c est dans une case m adressée par une fonction hj ssi
hj (c) = m avec j = i ou j = i + 1
» Vérifiez par vous mêmes
![Page 70: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/70.jpg)
71
LH* : Structure globale
Chaque case est sur un serveur diffèrent Pour toute clé c, son adresse est celle de
LH – C’est l’adresse correcte
Un site spécial gère les éclatements – Le coordinateur (super-pair)
![Page 71: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/71.jpg)
72
LH* : Structure globale Le coordinateur est utile
– Adresses physiques– Haute dispo– Sécurité
Il est sollicité exceptionnellement– Pour ne pas être le point d’accumulation
» ang. hot spot Il n’est pas nécessaire
– Voir la version à jeton dans l’article ACM-TODS [LNS96]
![Page 72: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/72.jpg)
73
LH* : Structure globale Quand il existe, il est le seul à
connaître (n, i)– Etat du fichier
» Ang. file state– Etendue du fichier
» Nombre de cases (serveurs)» Ang . extent
N = n + 2i
– La dernière case a pour l’adresse N -1
![Page 73: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/73.jpg)
74
LH* : Structure globale Le coordinateur reçois tout message
d’une case qui déborde Il le seul à connaître et informer la
case n qu’elle doit éclater Une fois l’éclatement terminé, il met
à jour (n, i)– Selon LH– Comment alors ?
![Page 74: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/74.jpg)
75
LH* : Adressage par clé
Chaque client a son image de l’état du fichier (i’, n’)
Initialement i’ = 0 et n’ = 0 Le client adresse toute requête à clé à la
case m m = LHi’, n’ (c)
![Page 75: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/75.jpg)
76
LH* : Adressage par clé
L'en-tête de chaque case contient j courant– Déterminé par les éclatements– Egalement, par l’étendue du fichier N
Quand une clé c arrive de la part d'un client à une adresse, la case vérifie si elle est correcte – Par le test de la propriété de LH
Si OK, alors la case répond au client
![Page 76: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/76.jpg)
77
LH* : Adressage par clé
Sinon – La case renvoie c vers une adresse peut-
être correcte– On parle d’un renvoi
» Ang. forwarding or hop La case réceptrice répète le schéma Etc Enfin, la case correcte répond au client
– Avec en plus un IAM
![Page 77: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/77.jpg)
78
LH* : structure de fichier distribué
j = 4
0
j = 4
1
j = 3
2
j = 3
7
j = 4
8
j = 4
9
n = 2 ; i = 3
n' = 0, i' = 0 n' = 3, i' = 2 Coordinateur
Client Client
serveurs
![Page 78: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/78.jpg)
79
LH* : éclatement
j = 4
0
j = 4
1
j = 3
2
j = 3
7
j = 4
8
j = 4
9
n = 2 ; i = 3
n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur
Client Client
serveurs
![Page 79: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/79.jpg)
80
LH* : éclatement
j = 4
0
j = 4
1
j = 3
2
j = 3
7
j = 4
8
j = 4
9
n = 2 ; i = 3
n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur
Client Client
serveurs
![Page 80: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/80.jpg)
81
LH* : éclatement
j = 4
0
j = 4
1
j = 3
2
j = 3
7
j = 4
8
j = 4
9
n = 2 ; i = 3
n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur
Client Client
serveurs
![Page 81: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/81.jpg)
82
LH* : éclatement
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3
n' = 0, i' = 0 n' = 3, i' = 2 Site coordinateur
Client Client
serveurs
j = 4
10
![Page 82: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/82.jpg)
83
LH* : adressage
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3
n' = 3, i' = 2 Site coordinateurClient
Client
serveurs
j = 4
10
15
n' = 0, i' = 0
N' = 1
![Page 83: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/83.jpg)
84
LH* : adressage
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3n' = 0, i' = 0
n' = 3, i' = 2 Site coordinateurClient Client
serveurs
j = 4
10
15
N' = 1
![Page 84: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/84.jpg)
85
LH* : adressage
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3
n' = 1, i' = 3 n' = 3, i' = 2 Site coordinateurClient
Client
serveurs
j = 4
10
15
j = 4, a = 0
N = 23 + 2N' = 23
![Page 85: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/85.jpg)
86
LH* : adressage
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3
n' = 3, i' = 2 Site coordinateurClient
Client
serveurs
j = 4
10
9
n' = 0, i' = 0
N' = 1N = 23 + 2
![Page 86: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/86.jpg)
87
LH* : adressage
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3n' = 0, i' = 0
n' = 3, i' = 2 Site coordinateurClient Client
serveurs
j = 4
10
9
N' = 1 N = 23 + 2
![Page 87: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/87.jpg)
88
LH* : adressage
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3n' = 0, i' = 0
n' = 3, i' = 2 Site coordinateurClient
Client
serveurs
j = 4
10
9
N' = 1N = 23 + 2
![Page 88: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/88.jpg)
89
LH* : adressage
j = 4
0
j = 4
1
j = 4
2
j = 3
7
j = 4
8
j = 4
9
n = 3 ; i = 3
n' = 2, i' = 3 n' = 3, i' = 2 Site coordinateurClient
Client
serveurs
j = 4
10
9
j = 4, a = 1
N' = 23 + 1N = 23 + 2
![Page 89: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/89.jpg)
90
Adressage LH*
Le client – calcule l'adresse LH de la clé c dans son image, soit m, et
envoie c à la case m Serveur a recevant la clé c, a = m notamment, calcule :
a' := hj (c) ;si a' = a alors accepte c ;sinon a'' := hj - 1 (c) ;
si a'' > a et a'' < a' alors a' := a'' ; envoies c à la case a' ;
Vois [LNS93] pour la (longue) preuve de cet algo
Simple, n'est ce pas ?
![Page 90: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/90.jpg)
91
Ajustement d'image du client Toute image d’un client SDDS doit être correcte
– Ne contenir que les adresses logiques qui sont dans le fichier
Une IAM fait converger une image vers l’état réel du fichier– Ajoute des adresses de serveurs inconnues du client– La convergence peut être +- rapide
Dans le cas de LH*– Image (i’,n’) est correcte ssi:
» i’ ≤ i et si i’ = i alors n’ ≤ n – Toute IAM doit diminuer la différence entre l’étendu réel
N et dans l’image N’ – Plusieurs algos possibles
![Page 91: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/91.jpg)
92
Ajustement d'image du client Le message IAM consiste de l'adresse a de la
dernière case qui a renvoyé c et de j(a).– i' est la valeur présumée de i dans l'image du client.– n' est la position présumée de n– initialement, i' = n' = 0.
si j > i' alors i' := j - 1, n' := a +1 ; si n' 2^i' alors n' = 0, i' := i' +1 ;
L'algo. garantit que tout image de client est contenue dans le fichier actuel [LNS93]– dans l'absence de contractions du fichier (merge)
Mais, peut-on faire mieux ?
Simple, n'est ce pas ?
![Page 92: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/92.jpg)
93
Ajustement d'image du client La case correcte a renvoie dans IAM
– l’adresse de la dernière case traversée a’ et son j’– son propre j
Le client ajuste son image comme suit: i’ = j’ – 1
if j < j’ or a > 2i’ : a = a’ endifn’ = a + 1if n’ ≥ 2i’ : n’ = 0 ; i’ = i’ + 1 endif
![Page 93: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/93.jpg)
94
Ajustement d'image du client
Analysez l’ajustement de l’image dans le cas
l’insertion de la clé 1 dans le fichier exemple
Par le 1er algorithme d’ajustement
Puis, par le 2ème
Conclusion ?
![Page 94: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/94.jpg)
95
Résultat On peut construire un fichier distribué
grandissant à une taille quelconque (ex. tout Internet) et tel que :–Toute insertion et toute recherche à clé
peuvent être faites au plus en 4 messages au plus (IAM inclus)
–En général une insertion est faite en un message et une recherche en deux messages
![Page 95: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/95.jpg)
96
Résultat Preuve dans [LNS 93] Récemment, on a démontré que si tout
site est pair, alors le cas le pire n’est qu’un seul message de renvoi.
Cette variante s’appèle LH*RSP2P
– C’est le meilleur résultat possible pour une SDDS (DHT, grille, nuage…)
Thèse de Y. Hanafi–En cours à Dauphine
![Page 96: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/96.jpg)
97
Allocation de sites
Toute case a:–Une adresse logique
»a = 0, 1, 2..– Une adresse physique réseau,
»ex. s = 123.456.789– Son site (localisation…)
Les clients et les serveurs doivent connaître les adresses physiques
![Page 97: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/97.jpg)
98
Allocation de sites Le coordinateur choisit le site pour
toute nouvelle case–Dans le pool de sites disponibles
»Ang. spare sites La case ayant besoin d’éclater demande
le site vide par multicast– LH*RS
Alternativement, tout serveur a ce pool dans une table fournit par le coord. – Statique ou dynamique
![Page 98: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/98.jpg)
99
Propagation des adresses de sites
Le serveur de la case n reçoit dans la demande de l’éclatement du coordinateur les adresses qu’il pourrait ne pas connaitre – Jusqu’à la case N = n + 2i
Un serveur qui envoi une IAM y inclut les adresses de site que le client pourrait ne pas connaître
![Page 99: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/99.jpg)
100
Propagation des adresses de sites Une manière de faire:
– Le client inclut dans la requête l’étendu N’ de son image
– Le 1er serveur qui a réacheminé la requête y inclut les adresses physiques de l’étendu de sa connaissance
N’…N’’ ≤ N -1– Le 2ème serveur qui soit envoie l’IAM, soit
réachemine encore la requête y unione les adresses physiques de l’étendu de sa connaissance
– Le résultat part dans l’IAM chez le client qui ajuste son image
![Page 100: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/100.jpg)
101
Propagation des adresses de sites Alternativement: le client manquant
d’adresses de sites, les demande au coordinateur
Le coordinateur est davantage sollicité En contrepartie, le traitement est + simple Aussi, le client peut demander toute adresse
à sa guise–Par ex. pour se prémunir contre les
adresses périmées à la suite de pannes de cases»Reconstruits ailleurs
![Page 101: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/101.jpg)
102
Table statique
une même table T sur tout client et serveur – contient tous les adresses
disponibles pour tous les fichiers
une fonction H de hachage :H : (F + a ) -> k
ex. k = (F + a) mod M T ( k ) contient s (a)
s1 s2 s3 sMT
5
H
![Page 102: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/102.jpg)
103
Requêtes parallèles (Scans)
Une requête Q à toutes les cases de F dont les exécutions locales sont indépendantes– en toute généralité : à certaines cases– toute case devrait recevoir Q et une seule fois
Mode d'envoi:– multicast
» n'est pas toujours commode, voire possible– unicast
» le client ne connaît pas tous les serveurs
![Page 103: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/103.jpg)
104
LH* Scans
Le client envoie Q à toute case a dans son image Le message avec Q contient le niveau de message
j' :– initialement j' = i' si n' aet ai' sinon j' = i' +
1– case a (de niveau j ) renvoie Q à tous ses enfants en
utilisant l'algo:while j' < j do
j' := j' + 1forward (Q, j' ) à case a + 2 j' - 1 ;
endwhile Preuve de cet algo ?
![Page 104: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/104.jpg)
105
LH* Scans
Le client envoie Q à toute case a dans son image Toute case fait suivre Q à tous ces enfants, petits
enfants… selon son j et avec son j. Un descendant don le niveau est j aussi, fait
suivre à son descendant. Preuve de cet algo ? Différence pratique entre les deux ? Comment faire pour un client paire ?
– Le serveur de case 4 veut envoyer la requête parallèle
![Page 105: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/105.jpg)
106
Terminaison d'un Scan(multicast ou unicast)
Quand est-ce que le client C sait que la dernière réponse est arrivée ?– le nombre réel de cases est inconnu de C
Stratégies possibles– Regroupement sur les cases connues du client
» Chaque serveur ayant reçu le scan par renvoi, renvoie la réponse au « père »
» Peut-être aussi son adresse en guise de IAM– Réponse directe au client – Réponse vers un fichier indiqué par le client
![Page 106: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/106.jpg)
107
Terminaison d'un Scan(multicast ou unicast)
Quand est-ce que le client C sait que la dernière réponse est arrivée ?– le nombre réel de cases est inconnu de C
Solution déterministe (chère, mais 100 % sure)– C demande à chaque case de répondre
Solution probabiliste (en général moins chère, mais x < 100 % sure)– seules répondent les cases pertinentes à la requête– après chaque réponse C réinitialise un time-out T
![Page 107: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/107.jpg)
108
Solution Déterministe
– Toute case envoie j, m et les enreg. éventuellement» m c'est l'adresse logique
– Le client termine quand il a reçu N réponses ;» N = 2 i + n avec
– i = min (j) et n = min (m) avec j = i
i+1 i i+1n
![Page 108: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/108.jpg)
109
Exécution d'un Scan(TCP/IP)
Stratégie 1– Tous les sites serveurs se connectent dans la limite du "backlog"
» Taille de la file d'attente de demandes simultanées de connections– 5 sous Windows 2000
Stratégie 2– Ceux refusés redemandent x fois la connexion après temps t, 2t, 4t…
Problèmes– Surcharge du LAN, nombreuses re-émissions de paquets
Stratégie 3– Le client rappelle pour la connexion les serveurs ayant répondu
» N serveurs simultanément ; N = 1 dans ce qui suit.
![Page 109: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/109.jpg)
110
Exécution d'un Scan
0
1000
2000
3000
4000
5000
6000
1 10 20 30 40 50 60 70 80 90 100 120 140Nombre de serveurs
Tem
ps d
e ré
pons
e (m
s)
Scénario 1Scénario 2Scénario 3
Étude de MM. Tsangou & Samba (U. Dakar)
![Page 110: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/110.jpg)
111
Performances d'accès d'une SDDS
Mesurées en nombre de messages sur le réseau– mesure indépendante des paramètres du réseau
Nombre moyen de messages / insertion– global– sur un client
Nombre moyen de messages / recherche– client nouveau (i' = 0, n' = 0)
Convergence de vue du nouveau client Performance d'un client peu actif
![Page 111: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/111.jpg)
112
10,000 inserts
Global cost
Client's cost
![Page 112: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/112.jpg)
113
![Page 113: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/113.jpg)
114
![Page 114: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/114.jpg)
115
Inserts by two clients
![Page 115: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/115.jpg)
116
Travaux à Dauphine(CERIA)
Implémentation des SDDS sous Windows NT– Système SDDS – 2000
» Financé par HPL, IBM-Almaden, MS-Research» LH*LH » LH*RS (U. Uppsala)» RP*
– Client Java (U. Dakar)– Concurrence par dates de valeur (U. Dakar)
Application SD-AMOS (avec U. Uppsala)
![Page 116: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/116.jpg)
117
SDDS-2000 : global architecture(SDDS-2007 actuellement)
Applications ApplicationsApplications etc
Data Data Data
SDDS-Server SDDS-Server SDDS- Server
SDDS- Client SDDS-Client SDDSClient SDDS-Client
Network
![Page 117: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/117.jpg)
118
Send Request Receive Response Return Response Client Image process.
SDDS-2000 : Client Architecture
Interface : Applications - SDDS
send Request
Socket
Network
Response
Request
ReceiveResponse
file i n
..... .....
Client Image
Update
Server Address
ReceiveRequest
ReturnResponse
Id_Req Id_App ... .....
Queuing system
Request Response
Applications
Server
![Page 118: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/118.jpg)
119
SDDS-2000 : Server Architecture Bucket SDDS
Insertion Search Update Delete
W.Thread 1 W.Thread 4…
Request Analysis
Queuing system
Listen Thread
Socket
Client
Network
client Request
Response
Response
Listen Thread Queuing system Work Thread Local process Forward Response
![Page 119: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/119.jpg)
120
6 Pentium 700 Mhz 128 MB Ram
Ethernet 100 Mbit/s
SDDS-2000 Access Performance Experimental Analysis
UDP Protocol for inserts and searches TCP Protocol for splits
SDDS 2007 est sur 1Gbit/s et est 10 fois + rapide
![Page 120: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/120.jpg)
121
File creation time
012345678
0 1 2 3 4 5 6Nombre de case
Tem
ps (s
)
Single client inserts 20 000 records with acks
Number of buckets
Tim
e (s
)
![Page 121: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/121.jpg)
122
Insert Time
0
0,1
0,2
0,3
0,4
0,5
0 5000 10000 15000 20000Taille du fichier (enregistrements)
Tem
ps (m
s)
File size
Tim
e (m
s)
![Page 122: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/122.jpg)
123
Search Time
0,1
0,2
0,3
0,4
0,5
0 5000 10000 15000 20000Taille du fichier (enregistrements)
Tem
ps (m
s)
image client actualisée image client non-actualisée
File size
Tim
e (m
s)
New client Client with exact image
![Page 123: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/123.jpg)
124
Conclusion
Scalability as wished Access times 30 times faster than the disk access
time Splits do not cost much IAMs are efficient
![Page 124: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/124.jpg)
125
Conclusion
MOs sont l'avenir SDDS sont une nouvelle classe de
structures de données à des performances impossibles auparavant
Des possibilités nouvelles pour nombreuses applications
![Page 125: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/125.jpg)
126
FINMerci de votre attention
![Page 126: Structures de Données Distribuées et Scalables](https://reader036.fdocument.pub/reader036/viewer/2022062323/568166da550346895ddafa63/html5/thumbnails/126.jpg)
127