1 / 55

IH* – Hachage Multidimensionnel Distribu é et Scalable

IH* – Hachage Multidimensionnel Distribu é et Scalable. BOUKHELEF Djelloul É tudiant en PhD, Institut National d ’ Informatique (INI), Alger. Algérie E-mail: boukhelef_dj@yahoo.fr Directeur de thèse : Pr D-E. ZEGOUR. Partie I:. Structures de donn é es Distribu é s et Scalables. Serveurs.

toril
Download Presentation

IH* – Hachage Multidimensionnel Distribu é et Scalable

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IH* – Hachage Multidimensionnel Distribué et Scalable BOUKHELEF Djelloul Étudiant en PhD, Institut National d’Informatique (INI), Alger. Algérie E-mail: boukhelef_dj@yahoo.fr Directeur de thèse : Pr D-E. ZEGOUR

  2. Partie I: Structures de données Distribués et Scalables

  3. Serveurs Répertoired'accès Clients Structures de donnéesclassiques • Schémas de distribution classiques : • Partitionnement par intervalle, • Partitionnement par hachage, • Round-Robin , … • Mécanisme de calcul d'adresse unique et centralisé  un point d'accumulation • Limite sur les performances d'accès • Vulnérabilité aux pannes • Scalabilité et Disponibilité • Duplication du calcul d'adresse  MAJ synchrones des clients: • Impossible pour un grand nombre de clients distribués et autonomes

  4. SDDS – Structures de Données Distribuées et Scalables • Conçues spécifiquement pour les multiordinateurs • Une collection d'ordinateurs, Stations de travail, faiblement couplés (à partage de rien, shared nothing) interconnectés par un réseau informatique (MAN, LAN, WAN) • Une nouvelle classe de structures de données pour des bases de données modernes • D’une grande taille (GO – TO) • Avec des données complexes: spatiales, géographiques, Image, Son, … • Scalables • Grandissent rapidement en gardant les mêmes performances • Haute disponiblilité et disponibilité incrémentale (scalable availability)

  5. SDDS – Axiomes généraux (1) • Les données sont identifiées par des clés (d1), OID pour les objets • Les données sont stockées sur des serveurs et sont accédées par des clients autonomes • Il n'y a pas de répertoire central d'accès • Image locale par client • Mécanisme de vérification et de redirection des requêtes • Mécanisme de mise à jour distribué des images des clients • Les MAJ de la structure d'une SDDS ne sont pas envoyées aux clients de manière synchrone

  6. SDDS – Axiomes généraux (2) • Un client peut faire des erreurs d'adressage suite à 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 un message correctif (Image Adjustment Message, IAM) au client ayant commis l'erreur d'adressage • Le client ajuste son image local pour ne plus faire, au moins, la même erreur

  7. Réponse Requête h0(k) = 1 Ajustement de l’image locale Correction d’image Level = 2 Redirection SDDS – Axiomes généraux (3) 0 1 i’ = 0 n’ = 0 Level = 2 Next = 1 0 1 2 3 4 i’ = 2 n’ = 0

  8. SDDS – Contraintes (1) • Si une SDDS n'évolue plus, alors les IAM font converger toute image d'un client vers l'image actuelle du fichier • L'ensemble des renvois à la suite d'une erreur d'adressage ne se fait qu'en quelques messages • Performance d'accès d'une SDDS • Nombre de messages sur le réseau (indépendante des paramètres du réseau) • Nombre de messages par opération • Vitesse de convergence de l’image d’un nouveau client

  9. SDDS – Contraintes (2) • Scalabilité • Prendre en charge n’importe quelle quantité de données • pas de limite théorique de la taille, pas de réorganisation totale de la structure • Maintenir les performances quand le volume de données stockées varie: temps d ’accès  constants • Distribution • Une grande quantité de données • Traitement parallèle et distribué • Non vulnérabilité aux pannes • Disponibilité • Assurer la continuité du fonctionnement 24 heures sur 7 jours

  10. Classiques SDDS Arbre Hachage Disponibilité LH*m, LH*g Sécurisé LH*s SDDS – Typologie Structure de Données d-dimensionnel IH* 1-d-Arbre DRT, DRT*,RP* k-d-Arbre Distributed B+ k-RP* 1-dimensionnel LH*, LH*LH DDH, EH* k-disponibilité LH*RS, LH*SA

  11. SDDS – Travaux en cours à l’INI • IH* • Scalable and Distributed Interpolation-Based Hashing D. Boukhelef • CTH* • Scalable and Distributed Compact-Trie-Hashing D-E. Zegour • TH* • Scalable and Distributed Trie-Hashing M. Aridj

  12. Partie II: Structures de données multidimensionnelles

  13. Records K D1 D0 Données multidimensionnelles • Espace de clés K : • K = D0D1...Dd-1 • Fichier F : • F = (r1,r2, ... , rN) • Enregistrement r : • r = (k0, k1, ... , kd-1, a0, a1, ... , am)  K ; kj Dj pour 0  j  d

  14. Méthodes d’accès multidimensionnelles • Propriétés

  15. IH – Hachage par Interpolation • Proposé par W.A. Burkhard en 1983 • Extension du Hachage Linéaire (LH) de Litwin • Principe : clé k = k0, k1, ... , kd-1 • Interpolation (shuffle function) • Former la signature de k (record signature) • Appliquer le LH classique pour décider où se trouve la clé k • Implémentation des requêtes à intervalle : (partial match query & range query).

  16. Partie III: IH* - Adaptation du Hachage par interpolation aux environnements distribués

  17. Hachage Linéaire Multidimensionnel (IH) Hachage Linéaire Distribué et Scalable (LH*) Hachage par Interpolation Distribué et Scalable (IH*) IH* – Hachage par Interpolation Distribué et Scalable Hachage Linéaire (LH) • Structure de donnée àbase du Hachage (Linéaire) • Adaptation du IH aux environnements distribuésselon le modèle SDDS • Introduction de l’ordre et l’aspect multidimensionnel à la SDDS LH*

  18. Coordinateur i , n Serveurs Réseaux d’interconnexion j j j Clientn i’ , n’ Client1 i’ , n’ IH* – Structure d’un fichier • Serveurs (j) • Stockage de données • Evaluation des requêtes des clients • Clients autonomes (i’ , n’) • Accès aux données • Intermédiaire entre application et système SDDS • Site Coordinateur (i , n) • Maintient les paramètres du fichier • Gestion d’éclatement • Allocation de sites

  19. IH* –Évolution du Fichier 0 0 i = 0 , n = 0

  20. IH* –Évolution du Fichier 0 1 0 1 i = 1 , n = 0

  21. IH* –Évolution du Fichier 2 1 0 1 2 0 i = 1 , n = 1

  22. IH* –Évolution du Fichier 2 3 0 1 2 3 0 1 i = 2 , n = 0

  23. Éclatement d’un serveur Algorithme SplitServer (n) 1- créer la case (n+2j): niveau j’= j+1 2- éclater la case (n) en utilisant hj+1 3- mettre à jour jj+1 4- confier l’éclatement au site coordinateur Fin

  24. Uniform data distribution Next server to split (n) 4 Non-uniform data distribution 2 5 8 3 4 5 6 7 0 1 0 1 2 8 9 10 9 3 6 7 10 Splitted Servers Newly created Servers Splitted Servers Newly created Servers IH* – Eclatement • Éclatement non contrôlé • À chaque collision • Éclatement contrôlé • Taux de chargement est supérieur / inférieur au facteur de chargement du fichier

  25. 4 Non-uniform data distribution 2 5 8 0 1 9 3 6 7 10 Splitted Servers Newly created Servers IH* - Éclatement contrôlé • 1ère solution : Loi de distribution de données • 2ème solution : Négociation entre Coordinateur et Server (n) • Garder l’historique des messages de collision Next server to split (n)

  26. 0 1 Réponse Requête h0(k) = 1 0 1 2 3 4 Ajustement de l’image locale i’ = 2 n’ = 0 IAM Level = 2 Redirection Adressage (1) i’ = 0 n’ = 0 Level = 2 Next = 1

  27. 0 1 2 3 Réponse Requête h2(k) = 2 0 1 2 3 Ajustement de l’image locale i’ = 2 n’ = 2 IAM Level = 3 Redirection Adressage (2) i’ = 2 n’ = 0 Level = 2 Next = 3 4 5 6

  28. 0 1 2 6 3 3 0 4 1 5 5 Image du client i’ = 1 , n’ = 0 Image exacte Level = 2, Next = 3 Requête à intervalles 1

  29. Requête à intervalles

  30. Client i’ = .. n’ = .. Requête par intervalle sur F1 0 1 2 3 4 5 F1 Serveurs libres Mécanisme d’envoi multicast 0 1 2 3 F2 Multiordinateur Envoi par Diffusion – Principes

  31. Envoi par Diffusion – Critiques • Simple: un envoi pour tous le monde • Multicast n’est pas toujours disponibles sur tous les réseaux • Peut ne pas être efficacement implémenté • Trop de messages sur le réseaux • Problèmes du déterminisme d’envoi et de réception dans le cas des

  32. Client 0 1 i’ = 1 n’ = 0 0 1 2 3 4 5 6 F1 Requête à intervalle sur F1 Level = 2 Next = 3 Multiordinateur Envoi ciblé (solution LH*)

  33. Envoi ciblé– Critiques • Déterministe • Parcours de tous les serveur même pour un petit nombre d’enregistrements  Pas d’ordre dans LH

  34. Client 0 1 i’ = 1 n’ = 0 0 1 2 3 4 5 6 F1 Requête à intervalle sur F1 Level = 2 Next = 3 Multiordinateur Envoi sélectif (solution IH*)

  35. Envoi sélectif – Client • Déterminer l’ensemble A des serveurs couvrant la région de Q (Algo Range Query du IH) : A  {0, 1, ..., n’+2i’} • Déterminer pour chaque serveur de A la région correspondante en utilisant (n’est pas forni par IH) • Envoyer à chaque serveur de A la sous-requête correspondante;

  36. Envoi sélectif – Serveur • Découper la requête reçue en des sous des sous-requêtes plus fines • Déterminer l’ensemble des serveur fils et envoyer à chaque serveur la sous-requête correspondante • Si portée du serveur  portée de la sous-requête  alors Exécuter la requête correspondante Retourner(réponse + adresse + niveau)

  37. Envoi par décomposition récursive

  38. Décomposition récursive – Client Algorithm Generate_Target_Servers Begin Compute the set S of target servers: S={s0, s1, ... , sm}  {0, 1, ... , n’+2i’-1} Decompose the range of Q into relevant sub-queries: P ={ q0, q1, ... , qm} for each server si from S do Send (qi, j) towards server (si): j  i’+1 if (sin) and j  i’ otherwise end for End

  39. Décomposition récursive – Serveur Algorithm Query_Propagation (Q, j) Begin Compute the set S of children servers: S={sk, sk+1, ... , sk+m}  {a+2j+1, ... , a+2j’’} where k is the level of sk at the moment of its creation by server (a): j <k  j’ Decompose the range of Q into relevant sub-queries: P ={ qk, qk+1, ... , qk+m} foreach server sk from S do Send (qk, k) towards server (sk) end for End

  40. Décomposition récursive – Exemple

  41. Tests de terminaison • Probabiliste • Expiration du timeout • Déterministe • Tous les serveurs ont bien répondu • Hybride : Déterministe avec timeout • Déterminer les serveurs manquant • Leur retransmettre les messages de requête • Retourner à l’application les réponses reçues • Signaler au Coordinateur les serveurs n’ayant pas répondu • Lancer la procédure de recouvrement

  42. Architecture – Serveur / Coordinateur

  43. Architecture – Client

  44. Architecture – Serveur de noms

  45. Window Thread Sender Threads Requests FIFO Non Ack FIFO Output Sockets Empty Win. Pos. Worker Thread Pop Push Full Win. Pos. Ack / Error Thread Window Timer Thread Receiver Thread Answers FIFO Input Socket Ack / Error FIFO Worker Thread Module de contrôle de flux

  46. Implémentations • Environnement Windows (XP, 2000) • Windows - Visual C++ (V6) • Protocole plus complet • Test et validation des résultats • Java et XML • Interopérabilité (Langage, SQL  Xquery, …) • Portabilité (Windows, Linux, …) • Requêtes / Réponses par lot (bulk operations)

  47. Environnement de développement • Visual C++ (V6) • Programmation 100% objet • Interface graphique • MFC & API Windows • TCP, UDP • I/O Completion Port, Asynchronous I/O • Multithreading • …

  48. Implémentation – Client

  49. Implémentation – Serveur

  50. Implémentation – Manager / Agent

More Related