IH* – Hachage Multidimensionnel Distribué et Scalable

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Les Cases Cachées 3 2 Les Verbes ER Tu/ manger Je/ parler Elles/
LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Structures de données avancées : MTH ( Multidimensional trie hashing )
D. E ZEGOUR Institut National d ’Informatique
Classe : …………… Nom : …………………………………… Date : ………………..
ACTIVITES Les fractions (10).
Applications et Techniques
Directeur de Thèse : Pr. Witold Litwin
Witold Litwin Structures physiques Witold Litwin
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
Minimisation Techniques 1 Assimilation Algorithms: Minimisation Techniques Yannick Trémolet ECMWF Data Assimilation Training Course March 2006.
User management pour les entreprises et les organisations Auteur / section: Gestion des accès.
Commission Règlement Arbitrage Organisation – Présidente : Framboise Leclerc 3, rue Jacques Cartier – Montigny le Bretonneux –
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Développement d’applications web
PBST*: une nouvelle variante des SDDS
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
1. 2 L'évolution du métier de garde de 1963 à 2013 – 50 ans du Parc national de la Vanoise The evolution of the ranger job from 1963 up to years.
Synchronisation et communication entre processus
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
1 Conduite du changement LA CONDUITE DU CHANGEMENT.
Configuration de Windows Server 2008 Active Directory
22 janvier 2013 Commercialiser en 2013 ! Que de variables à ajuster ! 1.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
1 INETOP
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
La Distribution des Données
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
Titre : Implémentation des éléments finis en Matlab
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
Le workflow Encadré par: M . BAIDADA Réalisé par: ATRASSI Najoua
Elaboré par M. NUTH Sothan 1. 2 Soit x, y et z des coordonnées cartésiennes à 3 dimension. G un ensemble de points dans le plan (u, v). Déf. : On appelle.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
Structures de données avancées : Hachage dynamique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Equation différentielle de 2ème ordre
CALENDRIER-PLAYBOY 2020.
Slide 1 of 39 Waterside Village Fête ses 20 ans.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les Chiffres Prêts?
Répondons 1 2 vends 2 3 L e s C a s e s C a c h é e s Je/ perdre Elles/ entendre Nous/ répondre Tu/ vendre Les Verbes RE.
1 Formation à l’usage éco-performant de votre pc 1 ère Partie.
Projet Implémentation du protocole MMT sous Linux
Structures de données avancées : Concepts réseaux et protocole de communication. D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Fichiers distribués
Partie II: Temps et évolution Energie et mouvements des particules
Introduction à SolidWorks
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
D. E ZEGOUR Institut National d ’Informatique
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Range Partionning: RP*
Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Hachage dynamique
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Transcription de la présentation:

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

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

Structures de données classiques Serveurs Clients Répertoire d'accès 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

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)

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

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

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

SDDS – Contraintes (1) Performance d'accès d'une SDDS 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

SDDS – Contraintes (2) Scalabilité Distribution Disponibilité 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

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

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

Structures de données multidimensionnelles Partie II: Structures de données multidimensionnelles

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 D1 D0 Records K

Méthodes d’accès multidimensionnelles Propriétés

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).

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

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és selon le modèle SDDS Introduction de l’ordre et l’aspect multidimensionnel à la SDDS LH* Hachage Linéaire Multidimensionnel (IH) Hachage Linéaire Distribué et Scalable (LH*) Hachage par Interpolation Distribué et Scalable (IH*)

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 Coordinateur i , n Client1 i’ , n’ Clientn Réseaux d’interconnexion j Serveurs

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

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

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

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

É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

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

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 1 2 3 4 5 6 7 8 9 10 Splitted Servers Newly created Servers Non-uniform data distribution Next server to split (n)

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

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

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

Requête à intervalles

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

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

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

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

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

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;

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)

Envoi par décomposition récursive

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

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} for each server sk from S do Send (qk, k) towards server (sk) end for End

Décomposition récursive – Exemple

Tests de terminaison Probabiliste Déterministe 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

Architecture – Serveur / Coordinateur

Architecture – Client

Architecture – Serveur de noms

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

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)

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 …

Implémentation – Client

Implémentation – Serveur

Implémentation – Manager / Agent

Conclusion & perspectives Partie IV: Conclusion & perspectives

Travaux en cours Compléter le prototype IH*, mesurer ses performances Rétrécissement du fichier Structure de la case (IH*IH), contrôle d’éclatement Terminaison des requêtes à intervalle et réception de repenses Généraliser le contrôleur de flux, Event-driven : IOCP Amélioration du schéma IH classique Requêtes à intervalle récursives Détermination de la portée d’une région quelque soit le niveau actuelle du fichier. Nouveau schéma de hachage linéaire multidimensionnel Gray code, distance de Hamming Préservation de la localité spatiale (proximity preserving) Meilleur déclustering des données Requête non orthogonales & Recherche au voisinage

Travaux futurs Sécurité & Haute disponibilité récupération sur panne: serveur, coordinateur Sans-coordinateur, coordination distribués Sauvegarde & restauration : Signature, … Qualité , Performances : Architectures (Even-driven), communication, … Serveur de noms distribué, Interopérabilité (XML) Adaptation du IH* au P2P Fully decentrilzed (data & index), fault tolerent SDDS

Problèmes ouverts Plate-forme unifiée pour le test et la validation des systèmes SDDS SDDS avec coordination et accès complètement décentralisés Placement des serveurs et équilibrage de charge (données et travail) Gestion des caches dans les systèmes SDDS …

Merci de votre attention BOUKHELEF Djelloul boukhelef_dj@yahoo.fr