Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Structures de données avancées : MTH ( Multidimensional trie hashing )
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Chap. 4 Recherche en Table
Calculs de complexité d'algorithmes
Les fractions.
GEF 435 Principes des systèmes d’exploitation
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Chapitre VII :Commande par retour d’état
Structures de données linéaires
Les structures de données arborescentes
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
Algorithme de Bellman-Ford
Structures de données IFT-10541
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Introduction et Motivation
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Indexes à Arbres et Indexes à Hachage
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
Gestion de Fichiers GF-1: Introduction à la Géstion des Fichiers et Opérations de Base.
Gestion de Fichiers Hachage.
Indexes à Arbres et Indexes à Hachage
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
Organisation des Fichiers pour la Performance
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: I. Indexes Bases sur les Structures dArbres Binaires.
Gestion de Fichiers GF-5: Storage Secondaire: Bandes Magnetiques (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Programmation linéaire en nombres entiers : les méthodes de troncature
Plan cours La notion de pointeur et d’adresse mémoire.
Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres.
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Gestion de Fichiers GF-14: Acces Sequentiel et Indexe aux Fichiers et Arbres B+ Prefixes (Base sur le Chapitre 10 de Folk, Zoellick & Riccardi, File Structures,
Gestion de Fichiers GF-16: Addressage Disperse Extensible (Extendible Hashcoding) (Base sur le Chapitre 12 de Folk, Zoellick & Riccardi, File Structures,
Gestion de Fichiers GF-1: Introduction a la Gestion des Fichiers et Operations de Base.
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: II. Arbres B (Base sur les Sections de.
David Rivreau Table de hachage David Rivreau
Gestion de Fichiers GF-9: Construction d’Indexes (Base sur le Chapitre 7 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with.
Algorithmique et programmation (1)‏
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation linéaire en nombres entiers
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
Arbres binaires et tables de hachage
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
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
CSI 4506: Introduction à l’Intelligence Artificielle
Chapitre 3: Variables aléatoires réelles continues
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Recherche de motifs par projections aléatoires
GF-4: Storage Secondaire: Disques
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Gestion de Fichiers Construction d’Indexes. 2 Plan du cours de la semaine Vue Générale Un indexe pour les fichiers à entrées séquentielles Opérations.
Post-optimisation, analyse de sensibilité et paramétrage
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Transcription de la présentation:

Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++;)

2 Motivation La recherche sequentielle peut etre faite en temps dacces dordre O(N), ce qui veut dire que le nombre de seeks augmente au meme taux que la taille du fichier. Les arbres B diminuent ce taux puisquils permettent un temps dacces dordre O(Log k N) ou k est une mesure de la taille dune feuille (ce.a.d., le nombre denregistrements qui peuvent etre sauvegarder dans une feuille). Ce que lon voudrait, cependant, est un temps dacces dordre O(1) ce qui veut dire que quelque soit la taille du fichier le temps dacces a un enregistrement est toujours un petit nombre de seeks. Hashcoding Statique: Ces techniques peuvent atteindre une telle performance si la taille du fichier naugmente pas.

3 QuEst-ce que le Hashcoding? Une fonction Hash est une fonction h(K) qui peut transformer une cle K en une addresse. Hashcoding est relie a la construction dindexes qui correspond a associer une cle a une addresse relative denregistrement. Hashcoding, cependant, est different de la construction dindexes en deux respects: Avec le hashcoding, il ny a pas de connection evidente entre la cle et laddresse. Avec le hashcoding, deux cles differentes peuvent etre etre transformees en la meme addresse.

4 Collisions Lorsque deux cles differentes produisent la meme addresse, il y a une collision. Les cles impliquees dans cette collision sappellent des synonymes. Neanmoins, il est tres difficile de trouver une fonction hash qui evite les collisions. Il est plus simple de trouver des moyens de resoudre ces collisions. Solutions Possible: Espacer les enregistrements Utilisation de memoire supplementaire Placement de plus dun enregistrement a une addresse.

5 Un Algorithme de Hashcoding Simple Etape 1: Representer la cle en forme numerique. Etape 2: Plier et Ajouter (Fold and Add) Etape 3: Division par un nombre premier et utilisation du reste comme dune addresse.

6 Fonctions Hashcoding et Distribution dEnregistrements Les enregistrements peuvent etre distribues sur toutes les addresses de manieres differentes: Il peut y avoir (a) aucun synonymes (distribution uniforme); (b) que des synonymes (pire cas); (c) quelques synonymes (cela arrive avec des distributions au hasard). Les distributions uniformes pures sont difficiles a obtenir et ne valent pas la peine detre cherchees. Les distributions au hasard peut etre facilement derivees mais elles ne sont pas parfaites car elles peuvent generer un nombre important de synonymes. On veut des methodes de hashcoding meilleures que cela.

7 Dautres Methodes de Hashcoding Bien quil nexiste pas de fonction hashcoding qui garantisse des distributions meileures que les distributions au hasard dans tous les cas, si on considere le cles qui vont etre hachees, certaines ameliorations sont possibles. Voici quelques methodes qui sont potentiellement meilleures que les methodes au hasard: Examiner les cles pour trouver un patron Plier certaines parties de la cle Diviser la cle par un nombre Elever la cle au carre et prendre le milieu Faire une transformation radix.

8 Prediction de la Distribution des Enregistrements Lorsque lon utilise une distribution au hasard, on peut utiliser certains outils mathematiques pour obtenir des estimation conservatives de la facon dont notre fonction hash peut se comporter: En utilisant la Fonction Poisson p(x)=(r/N) x e –(r/N) /x! applique au hashcoding, on peut conclure que: En general, sil y a N addresses, le nombre attendu daddresses a x enregistrements affectes est de Np(x).

9 Prediction de Collisions pour un Fichier Plein Veuillez supposer que vous avez une fonction hash qui, theoretiquement, distribue les enregistrements au hasard, et que vous voulez mettre en storage 10,000 enregistrements dans 10,000 addresses. Combien daddresses ne devraient pas avoir denregistrements qui y soient affectes? Combien daddresses devraient avoir un, deux et trois enregistrements qui y soient affectes, respectivement? Comment peut-on reduire le nombre denregistrements qui debordent?

10 Augmentation dEspace Memoire I Une reduction de collisions peut etre atteinte en choisissant utilisant une bonne fonction hash ou en utilisant de la memoire additionelle. La question posee est la suivante: Quel montant de memoire additionnelle doit on utiliser pour obtenir un taux de reduction de collision donnee? Definition: la Densite dImplantation (Packing Density) correspond a la proportion de nombre denregistrements a sauvegarder (r) par rapport au nombre despaces disponibles (N). La densite dimplentation nous donne une mesure du montant despace de fichier vraiement utilise.

11 Augmentation dEspace Memoire II La distribution Poisson nous permet de predire le nombre de collisions qui peuvent se produire etant donne une certaine densite dimplantation. On utilise la distribution Poisson pour repondre aux questions suivantes: Combien daddresses ne devraient avoir aucun enregistrements qui y soient affectes? Combien daddresses ne devraient avoir quun enregistrement qui y soit affecte (pas de synonymes)? Combien daddresses devraient avoir un enregistrement plus un ou plusieurs synonymes? Si on suppose quun seul enregistrement peut etre affecte a chaque addresses, a combien denregistrements debordants peut-on sattendre? Quel pourcentage denregistrements sera un enregistrement debordant?

12 Resolution de Collision par Debordement Progressifs Que faire lorsque lon a des enregistrements qui nont pas de place a leur addresse? Une approche simple est la suivante: Debordement Progressif (ou Sondage Lineaire). Si une cle k1 est hachee a la meme addresse a1 quune autre cle k2, alors on cherche la premiere addresse disponible a2, suivant a1; et on place k1 en a2. Si on atteint la fin de lespace addresse avant de trouver une addresse disponible alors on retourne au debut de cet espace et on continue la recherche. Lorsque lon cherche une cle qui nest pas dans lespace, si lespace daddresse nest pas plein, alors une addresse vide sera atteinte tot ou tard; Sinon, la recherche retournera a son point de depart.

13 Longueur dun Recherche lorsque le Debordement Progressif est Utilise Le debordement progressif cause des recherches additionelles et, donc, des acces au disque additionels. Sil y a beaucoup de collisions, alors beaucoup denregistrements seront loin de leur addresse reelle. Definition: la Longueur de recherche correspond au nombre dacces requis pour recuperer un enregistrement de memoire secondaire. La longueur de recherche moyenne est le montant de temps moyen auquel on peut sattendre pour recuperer un enregistrement du disque. longueur de recherche moyenne = (longueur de recherche totale)/(nombre total denregistrements)

14 Storage de Plus dun Enregistrements par Addresse: Bucket Definition: Un bucket decrit un bloc denregistrements partageant la meme addresse et etant recuperes dans un meme acces au disque. Lorsquun enregistrement va etre mis en storage ou recupere de storage, son addresse de bucket est determinee par la fonction hash. Lorsquun bucket est remplit, on doit toujours resoudre le probleme de debordement denregistrements, mais ce probleme apparait beaucoup moins souvent que lorsque chaque addresse ne peut contenir quun seul enregistrement.

15 Effet des Buckets sur la Performance Afin de calculer la densite dimplantation dun fichier, on doit considerer: 1) Le nombre, N, daddresses (buckets) disponibles et 2) le nombre, b, denregistrements que lon peut mettre a chaque addresse (la taille des buckets) et 3) le nombre, r, denregistrements dans le fichier. Alors, densite dimplantation = r/bN. Bien que la densite dimplantation ne change pas lorsque lon reduit de moitie le nombre daddresses et que lon double la taille des buckets, le nombre de debordements attendu diminue dramatiquement.

16 Effacer des Enregistrements Leffacement dun enregistrement dun fichier hache est plus complique que laddition denregistrements pour deux raisons: Lespace dans lequel leffacement sest fait ne doit pas deranger les recherches futures. Il devrait etre possible de re-utiliser les espaces liberes dans des additions futures. Afin de traiter les effacements, on utilise des pierres tombales, ce.a.d., un signal indiquant quun enregistrement etait la auparavant mais ny est plus. Les pierres tombales resolvent les deux problemes causes par leffacement, simultanement. Linsertion denregistrements est un petit peu differente lorsque lon utilise des pierres tombales.

17 Effets des Effacements et des Additions sur la Performance Une fois quun large nombre deffacements et dadditions ont pris place, il y aura beaucoup de pierres tombales occuppant des emplacements qui pourraient etre occuppes par des enregistrements dont laddresse precede ces pierres tombales, mais qui sont mises en storages plus loin. Ceci deteriore la longueur de recherche moyenne. Il y a trois type de solutions qui permettent de resoudre ce probleme: a) reorganisation locale pendant les effacements; b) reorganisation globale lorsque la longueur de recherche moyenne est trop grande; c) lutilisation dun algorithme de resolution de collision different.

18 Autres Techniques de Resolution de Collision Il y a quelques variations sur le hashing au hasard qui peut ameliorer la performance: Double Hashing: lorsquun debordement se produit, utiliser une seconde fonction hash pour trouver la location de debordement de cet enregistrement. Debordement progressif chaine: Comme le debordement Progressif mis a part le fait que les synonymes sont lies lun a lautre avec des pointeurs. Enchainement avec une aire de debordement separee: Comme le debordement progressif chaine mis a part le fait que les addresses de debordement noccuppe pas les addresses normales (de non- debordement) Scatter Tables: Le fichier hash ne contient pas denregistrements, mais seulement des pointeurs a ces enregistrements. I.e., cest un index.

19 Patron dAcces aux Enregistrements Si on a des informations sur les enregistrements qui sont accedes le plus souvent, on peut optimiser leur location de facon a ce que ces enregistrements aient des longueurs de recherche courtes. En faisant cela, on essaie de diminuer la longueur effective moyenne de recherche meme si la longueur nominale moyenne de recherche reste la meme. Ce principe est relie a celui utilise dans lencodage Huffman.