Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.

Slides:



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

Module Systèmes d’exploitation
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
Chap. 4 Recherche en Table
D. E ZEGOUR Institut National d ’Informatique
Structures de données et complexité
Sensibilisation à l’Algorithmique et structure de données
Distributed Compact Trie Hashing Proposé par D.E ZEGOUR.
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Structures de données linéaires
Chapitre VII. Tri Tri par tas Tri rapide.
Bases de données lexicales
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.
IFT Complexité et NP-complétude
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 Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Indexes à Arbres et Indexes à Hachage
Optimisation des Requêtes Relationnelles
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.
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.
GPA750 – Gestion de Projets
Pour le chemin le plus court pour tous les couples
Faculté des sciences économique et gestion de Nabeul
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Cours de Systèmes d’exploitations
Programmation linéaire en nombres entiers
Arbres binaires et tables de hachage
Cours 4 - Trois algorithmes de recherche dans un tableau
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.
SIO SI2 : Support Réseau des Accès Utilisateurs
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
Problème de double digestion
La Gestion des fichiers
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
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.
Système de gestion fichiers
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
Structures de données avancées : LH* 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 : Introduction D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de données
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,
Structures de données avancées : Hachage dynamique
Fragmentation / Défragmentation
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Chapitre 4 La représentation des nombres.
Structures de données IFT-2000
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.
TD N°5: Une GPAO pour l’usine Odyssée. Lancement du logiciel Logiciel « Usine Odyssée 7 » disponible dans … Entrer votre nom et un nom d’entreprise de.
Transcription de la présentation:

Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique

Arbre B+ avec expansion partielle Introduction  Idée : incrémenter graduellement la taille de la case surchargée au lieu de la diviser immédiatement.  La division se fait quand une taille maximale est atteinte.  Exige une gestion plus délicate de l'espace disque (que celle de l'arbre B) car il faut gérer des cases de tailles différentes.  Intérêt : augmenter le facteur de chargement

Arbre B+ avec expansion partielle Arbre B+ : Rappel  L'organisation la plus utilisée ( accès séquentiel indexé)  Les données sont rangées au niveau le plus bas ( niveau des cases)  Les autres niveaux servent d'index aux cases de données  Les cases de données sont chaînées et sont toutes de même taille.  Le fichier pousse à travers les éclatements des cases  Quand une case déborde, une nouvelle case est rajoutée au fichier et la moitié de la case surchargée est transférée vers la nouvelle case.  Le même principe est appliqué aux nœuds

Arbre B+ avec expansion partielle L'idée d'élasticité  Introduite en 79 et poussée d'avantage vers les années 87  L'idée : incrémenter la taille d'une case débordante au lieu de la diviser.

Arbre B+ avec expansion partielle Terminologie  Chaque expansion est dite expansion partielle  Une case est étendue jusqu'à atteindre une taille maximale prédéfinie.  Le processus qui permet à une case de pousser de sa taille minimale jusqu'a ce qu'elle se divise (taille maximale) est appelée expansion complète.  Par conséquent, l'expansion complète incrémente le nombre de cases d'une unité.

Arbre B+ avec expansion partielle Terminologie  Séquence de croissance de la case : C'est la suite s 0, s 1,...., s r-1 des r différentes tailles de cases avec s 0 < s 1 <....<s r-1. r étant le nombre d'étapes d'expansions  Les tailles sont mesurées en nombre d'articles (articles de longueur fixe)  Une séquence est valide que si 2s 0 > s r-1. (la plus grande taille est inférieure au double de la taille initiale)

Arbre B+ avec expansion partielle Séquence la plus pratique  Définitions page : plus petite unité de transfert entre Ram et disque. bloc page : ensemble de pages contiguës. b : capacité d'un bloc page (nombre d'articles). Case : ensemble de bloc pages contigus  On choisit la séquence de croissance : rb, (r+1)b,.....(2r-1)b  En d'autres termes, la taille minimale est rb. Chaque expansion partielle fait pousser la taille de case d'un bloc page, jusqu' à la taille maximale (2r-1)b.

Arbre B+ avec expansion partielle Séquence la plus pratique  Nombre maximal d’articles : m = (2r – 1)b  Nombre minimum d’articles par case : (m + 1) /2  Une case de taille s 0 =rb contient de [(m+1)/2] à rb articles  Une case de taille s i = (r+i)b, i > 0 contient de (r+i-1)b + 1 à (r+i)b articles.  (r+i-1)b + 1 désigne la limite précédente + 1.

Arbre B+ avec expansion partielle Séquence la plus pratique  Exemple :  Pour des blocs page de taille 5 et avec 3 expansions partielles, la séquence est 15, 20, 25.  A l'insertion du 26 ième article, la case est éclatée en deux cases de taille 15, chacune contient 13 articles.  Le stockage minimum pour les différentes tailles de cases est 13/15 =.866, 16/20=.8, 21/25 =.84

Arbre B+ avec expansion partielle Structure des nœuds d'index et de données

Arbre B+ avec expansion partielle Comparaison avec les arbres B*  Avec deux expansions partielles, le stockage minimum est de 67% pour les grandes cases et de 75% pour les petites cases. ( voir calcul après )  La valeur moyenne attendue pour les grandes cases est de 83%. Ce qui est légèrement plus haut que les 81% attendu pour les arbres B*.  Dans un arbre B*, nous essayons de transférer les articles vers des cases (nœuds) sœurs avant de les diviser immédiatement. Quand deux cases sœurs sont pleines, elles sont divisée en 3.

Arbre B+ avec expansion partielle Calcul  r = 2  S0 = 2b et S1 = 3b  m = Max = 3b ; Min = (3b + 1) / 2  S0 évolue de (3b + 1)/2 à 2b  S1 évolue de (2b + 1) à 3b  Minimum pour les petites cases ((3b+1)/2 ) / (2b)  ¾ + 1/4b  0,75  Minimum pour les grandes cases (2b+1) / (3b)  2/3 + 1/3b  0,67

Arbre B+ avec expansion partielle Apport de l'expansion partielle  Meilleure alternative que les arbres B* car il n'est pas nécessaire de lire les cases à gauche et à droite.  Donc à priori, plus facile à implémenter et le coût de l'insertion est plus faible.  Inconvénient  La gestion de l'espace disque est plus délicate car il faut gérer des cases de tailles différentes

Arbre B+ avec expansion partielle Une technique de gestion de l'espace disque (une première implémentation pour r=2)  L'espace alloué pour le fichier est divisé en morceaux (chunks) de 5 blocs page  Quand plus d'espace est exigé pour le fichier, un morceau additionnel est demandé au système  Un morceau permet de stocker 1 ou 2 cases.  Chunk = unité d’allocation pour le fichier  fragmentation externe.

Arbre B+ avec expansion partielle Une technique de gestion de l'espace disque  En prenant comme taille de case 2 et 3, la classification suivante des états d'un chunk est suffisante pour notre propos :  vide, 2+0, 0+2, 3+0, 0+3, 2+0+2, plein.  2+0 signifie qu'une case de taille 2 occupe les deux bloc pages les plus à gauche et le reste du chunk est libre.  signifie qu'il y a un espace libre au milieu du chunk.

Arbre B+ avec expansion partielle Vide Plein

Arbre B+ avec expansion partielle Une technique de gestion de l'espace disque (une deuxième implémentation pour r = 2)  L'espace alloué pour le fichier est divisé en morceaux (chunks) de 6 blocs page  Un morceau permet de stocker 1, 2 ou 3 cases.  avec les tailles de case 2 et 3, on a la classification suivante des états d'un chunk :  vide, 2+0, 0+2+0, 0+2, 3+0, 0+3,  2+2+0, 2+0+2, 0+2+2, 2+3, 3+2, plein.

Arbre B+ avec expansion partielle Une technique de gestion de l'espace disque  Une table en mémoire est utilisée pour garder la trace des "chunks"  Distinguer les différents états d'un chunk. En principe, 3 bits suffisent pour les états énumérés pour les chunks de taille 5 et 4 bits pour les chunks de taille 6.  A partir de cette table, nous pouvons découvrir : Y a t-il de la place ? Taille exacte disponible ? A quel endroit dans le chunk ?

Arbre B+ avec expansion partielle Une technique de gestion de l'espace disque  On peut donc écrire une nouvelle case directement sans lire d'abord dans le chunk.  Même pour les très grands fichiers, la table est assez petite pour être gardée en RAM.

Arbre B+ avec expansion partielle Une technique de gestion de l'espace disque  Pour les chunks de 5 bloc page, 3 bits sont suffisant car il existe 7 états possibles  Existence d’une table fictive d’association Vide : 001 ; : 010 ; : 011; Etc.  Par programme on traite les différents cas : Si entrée = ‘001’ : vide Si entrée = ‘010 ’: il y a de la place, pour 3 cases et à partir de la troisième Si entrée = ‘111’ : il y a de la place, pour 3 cases et à partir de la première Etc.

Arbre B+ avec expansion partielle Algorithme d'allocation ( Cas des chunks de taille 5 )  Quand un espace est demandé pour une case de taille 2,  un chunk contenant déjà une case de taille 2 n'est utilisé que s'il n‘ y a pas de chunks contenant des cases de taille 3. Ainsi, on évite la perte de 1/5 d'un chunk.  Quand un espace est demandé pour une case de taille 3,  On essaie de le placer dans un chunk existant. Quand il n'y a pas d'espace dans un chunk, un nouveau chunk est alloué pour le fichier

Arbre B+ avec expansion partielle Algorithme d'allocation  ( Cas des chunks de taille 6 )  Ordre de recherche pour une case de taille 2,   ou ou  ou  0+3 ou 3+0 . Ordre de recherche pour une case de taille 3,  0+3 ou 3+0  ou 2+0+0

Arbre B+ avec expansion partielle Résultats : - Améliorer le facteur de chargement avec une gestion spéciale de l’espace disque - Gain meilleur que celui du b*arbre (83% au lieu de 81%)