Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique.

Slides:



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

Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
D. E ZEGOUR Institut National d ’Informatique
Algorithmes et structures de données avancés
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Distributed Compact Trie Hashing Proposé par D.E ZEGOUR.
Directeur de Thèse : Pr. Witold Litwin
IH* – Hachage Multidimensionnel Distribué et Scalable
Witold Litwin Structures physiques Witold Litwin
TP 3-4 BD21.
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
PPE : La Porte Intelligente
PBST*: une nouvelle variante des SDDS
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
SECURITE DU SYSTEME D’INFORMATION (SSI)
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
II. Chaînage, SDD séquentielles
Sections sélectionnées du Chapitre 11
Les fichiers indexés (Les B-arbres)
Rappel... Caractérisation des matrices inversibles: Matrices bloc.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
Structures de données avancées : Hachage dynamique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Fondements de l’algorithmique des réseaux
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pourquoi est-il nécessaire d'installer de nouveaux logiciels sur votre ordinateur ? J'exclus de cette présentation l'installation de nouveaux matériels.
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
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Bases de données fédéréEs hétérogènes
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Arbres binaires et tables de hachage
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr BELKHIR Abdelkader USTHB
Crawlers Parallèles Présentation faite par: Mélanie AMPRIMO
D. E ZEGOUR Institut National d ’Informatique
II. Chaînage, SDD séquentielles
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Gestion de Fichiers Hachage (suite et fin). 2 Plan du cours d’aujourd’hui Utilisation des “buckets” Effacements dans des fichiers hachés Autres méthodes.
GF-11: Tri Interne Efficace et Tri Externe
Structures de données avancées : MBT ( Multidimensional B-trees )
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
La Gestion des fichiers
Les Réseaux Informatiques
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : B arbres
Vlan Trunking Protocol
Structures de données avancées : Variantes des B arbres
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Structures de données avancées : Range Partionning: RP*
Structures de données avancées TH ( Hachage digital ) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de fichiers
Architecture Client/Serveur
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : MLH (Multidimensional linear hashing) 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.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
2 3 Recherche de l’adresse du serveur Envoie en broadcast ( ) Communication entre les clients et le serveur :  Enregistrement de personnes.
Département Informatique Les Réseaux Informatiques Couche Transport Protocoles UDP & TCP Laurent JEANPIERRE.
Structures de données avancées : Distributed Compact Trie Hashing : CTH* Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Transcription de la présentation:

Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique

LH*  Une SDDS basée sur Linear Hashing (LH) –LH : proposé par Litwin 1978, (VLDB-78), décrit dans plusieurs livres sur SGBDs. –LH* : Proposée par Litwin, Neimat, Schneider (ACM-Sigmod 1993)  Plusieurs variantes proposées depuis par d'autres chercheurs (voir ACM-Sigmod 1994, FODO 94...)

LH* : Rappel sur LH  Un algorithme de 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 h i : c -> c mod 2 i N donne l'adresse h (c) de la clé c.  Éclatement de cases en remplaçant h i avec h i+1 ; i = 0,1,..  En moyenne, b/2 clés sont transférées vers une nouvelle case

LH* : 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,3/ 0,1,..,7/ 0,..,2 i N / 0..  Ces principes évitent l'existence d'un index, caractéristique d'autres algos de hachage extensible.

LH* : Rappel sur LH - Construction h 0 ; n = 0 N = 1 b = 4 i = 0 h 0 : c -> Au départ

LH* : Rappel sur LH - Construction h 1 ; n = 0 N = 1 b = 4 i = 1 h 1 : c -> Quand il y a éclatement c’est h1

LH* : Rappel sur LH - Construction h 1 ; n = 0 N = 1 b = 4 i = 1 h 1 : c -> Résultat de l’éclatement

LH* : Rappel sur LH - Construction N = 1 b = 4 i = 1 h 1 : c -> h1h1h1h1 h1h1h1h1 Après quelques insertions

LH* : Rappel sur LH - Construction N = 1 b = 4 i = 1 h 2 : c -> h2h2h2h2 h1h1h1h1 h2h2h2h2 Quand il y a éclatement c’est h2

Evolution de fichier LH* : Rappel sur LH - Construction N = 1 b = 4 i = 1 h 2 : c -> h2h2h2h2 h1h1h1h1 h2h2h2h2 Après quelques insertions

LH* : Rappel sur LH - Construction N = 1 b = 4 i = 1 h 2 : c -> h2h2h2h2 h2h2h2h2 h2h2h2h h2h2h2h2 Résultat de l’éclatement

LH* : Rappel sur LH - Construction N = 1 b = 4 i = 2 h 2 : c -> h2h2h2h2 h2h2h2h2 h2h2h2h h2h2h2h2 N remis à zéro et i passe à 2

LH* : Rappel sur LH - Construction  Et ainsi de suite –on introduit h 3 puis h 4...  Le fichier peut s'étendre autant qu'il faut, sans jamais avoir beaucoup de débordements.

LH* : Rappel sur LH - Adressage a  h i ( c ) si a < p a  h i+1 ( c) Fsi p étant la prochaine case à éclater

LH*  Propriété de LH : –Une clé c est dans une case m adressée par une fonction h j ssi h j (c) = m ; le niveau de m est soit j = i soit j = i + 1  Idée pour LH* : –mettre chaque case sur un serveur diffèrent –Ajouter dans la case son niveau  Niveau : moyen de vérifier que l’adresse d’une clé (obtenu par le client) est la bonne.

LH* : Éclatement j = j = j = n = 2 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs

LH* : Éclatement j = j = j = n = 2 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs

LH* : Éclatement j = j = j = n = 2 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs

LH* : Éclatement j = j = j = n = 2 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs

LH* : Éclatement j = j = 3 7 j = n = 3 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs j = 4 10

LH* : Éclatement sans site coordinateur  Rôle d’un SC : Détermine quelle case doit être éclaté et quand.  Problème peut tomber en panne Chaque collision coûte un message et un éclatement coûte 2 messages au SC.  Solution : utilisation d’un jeton (pour désigner la prochaine case à éclater

LH* : Éclatement sans site coordinateur Utilisation d’un jeton ( Soit d la charge d’une case et b sa capacité ( d > b; cas de plusieurs cases en débordement) Se déplace comme n ( pointeur d ’éclatement) Quand il y a insertion dans une case qui détient le jeton, celle-ci est éclatée si d > b, puis le jeton passe à la case suivante Toute case qui reçoit le jeton pour la première fois s’éclate si sa charge d est supérieure à b  Éclatement en cascade.

LH* : Adressage  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' := h j (c) ; si a' = a alors accepte c ; sinon a'' := h j - 1 (c) ; si a < a'' < a' alors a' := a'' ; envoies c à la case a' ;

LH* : Adressage  Proposition : “L’algorithme appliqué au serveur trouve l’adresse de toute clé C envoyée par un client, et C est renvoyée au plus deux fois”  La démo existe.

LH* : Ajustement de l’image de client  Le message IAM consiste à ajuster l’image du client en fonction  - du niveau j du serveur trouvé (directement ou après renvoi)  - du serveur a adressé la première fois.  Soit i' et n’ les paramètres du client i' := j - 1 n' := a +1 si n'  2 i' alors n' = 0, i' := i' +1

LH* : Adressage  Les algorithmes LH* garantissent que tout image de client est contenue dans le fichier actuel avec la supposition qu’il n’y a pas eu contraction du fichier suite aux suppressions d’articles.

LH* : Adressage j = j = 3 7 j = n = 3 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client Serveurs j =

LH* : Adressage j = j = 3 7 j = n = 3 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client Serveurs j =

LH* : Adressage j = j = 3 7 j = n = 3 ; i = 3 n' = 1, i' = 2n' = 3, i' = 2 Site coordinateur Client Serveurs j = a =0, j = 3

LH* : Adressage j = j = 3 7 j = n = 3 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs j =

LH* : Adressage j = j = 3 7 j = n = 3 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs j =

LH* : Adressage j = j = 3 7 j = n = 3 ; i = 3 n' = 0, i' = 0n' = 3, i' = 2 Site coordinateur Client serveurs j =

LH* : Adressage j = j = 3 7 j = n = 3 ; i = 3 n' = 1, i' = 3n' = 3, i' = 2 Site coordinateur Client serveurs j = a = 0, j = 4

LH* : Requête parallèle  Opération envoyée par un client qui s’exécute en parallèle sur une partie du fichier ( ou tout le fichier) (Exemple : recherche d’un ensemble d’éléments)  2 solutions Utilisation des messages Broadcast / Multicast Utilisation des messages Point à point.

LH* : Requête parallèle Solution Brodacast / Multicast Principe  La requête Q est envoyée à tous les serveurs LH*  Seuls les serveurs concernés retournent des réponses au client  Le client collecte toutes les réponses pour construire la réponse globale de Q.

LH* : Requête parallèle Solution Brodacast / Multicast 2 stratégies de terminaison:  Probabilistique : Un time-out est initialisé après réception de chaque article.  Déterministique : Chaque serveur répond avec sa case a et son niveau j a Le client termine quand il reçoit dans un ordre quelconque a = 0, 1, 2, …, (2 j + n + 1) Avec i = Min(j a ) et n = Min(a) tel que j a = i.

LH* : Requête parallèle Solution Point à point Principe  Le client envoie la requête Q à tous les serveurs de son image  Chaque serveur qui reçoit Q, envoie le message vers les cases ne figurant pas dans l’image du client ( par propagation )  Seuls les serveurs concernés retournent des réponses  Le client collecte toutes les réponses pour construire la réponse globale de Q.  Même stratégies de terminaison

LH* : Requête parallèle Solution Point à point Algorithme de propagation (appliqué au niveau de chaque serveur a de niveau j) : Tq j’ < j j’  j’ + 1 Envoyer (Q, j’) au serveur a + 2 j’-1 FTq

LH* : Résultats  On peut construire un fichier distribué grandissant à une taille quelconque (ex. tout Internet) et tel que : –toute insertion et toute recherche peuvent être faites au plus en 4 messages (IAM inclus) –en général une insertion est faite en un message et une recherche en deux messages