Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parNeva Chollet Modifié depuis plus de 10 années
1
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, An Object-Oriented Approach with C++;)
2
2 Acces Sequentiel Indexe Jusqu’a maintenant, on a du choisir entre une vue de fichier indexee ou sequentielle. Dans ce cours, on cherche une seul methode d’organization qui nous donne ces deux vues simultanement. Pourquoi demander ces deux vues simultanement? Parce que si une application demande aussi bien un acces au hazard interactif et du traitement co- sequentiel en mode batch, ces deux actions doivent etre performees de maniere efficace. (example: une base de donnees d’etudints dans une universite)
3
3 Comment Maintenir un “Sequence Set”: L’Utilisation de Blocs I Un “Sequence Set” est un ensemble d’enregistrements ordonne par valeur de cle et qui reste ordonne au fur et a mesure que des enregistrements sont ajoutes et effaces. Puisque le triage et le re-triage d’un “Sequence Set” tout entier au fur et a mesure que des enregistrements sont ajoutes et effaces est tres couteux, nous cherchons d’autes strategies. En particulier on essaie de trouver un moyen de localiser les changements. L’idee est d’utiliser des blocs qui peuvent etre lus en memoire et rearranges rapidement. Comme dans les arbres B, ces blocs peuvent etre divises, fusionnes ou leurs enregistrements re-distribues au necessaire.
4
4 Comment Maintenir un “Sequence Set”: L’Utilisation de Blocs II En utilisant des blocs, on peut garder un “sequence set” en ordre par valeur de cles sans jamais avoir besoin de re-trier l’ensemble entier d’enregistrements. Cependant il y a des couts associes a cette approche: Un fichier a Blocs prend plus d’espace qu’un fichier sns bloc a cause de la fragmentation interne. L’ordre des enregistrements n’est pas necessairement physiquement sequentiel partout dans le fichier. Le montant maximum garantie de sequentialite physique est a l’interieur d’un bloc.
5
5 Comment Maintenir un “Sequence Set”: L’Utilisation de Blocs III Un aspect important dans l’utilisation de blocs est le choix d’une taille de blocs. Il y a deux considerations a considerer dans le choix de cette taille: La taille de bloc doit etre telle que l’on peut garder plusieurs blocs en memoire en meme temps. La taille de bloc doit etre telle que l’on peut acceder a un bloc sans avoir besoin d’un “seek” sur disque pendant l’operation de lecture ou d’ecriture du bloc.
6
6 Ajout d’un Indexe Simple au “Sequence Set” Chaque blocs crees pour notre “Sequence Set” contient une succession d’enregistrements qui peut contenir l’enregistrement qui nous interesse. On peut construire un indexe simple d’un seul niveau pour ces blocs. Une combinaison d’indexe de ce type avec le “Sequence Set” de blocs nous donne un acces sequentiel indexe complet. Cette methode fonctionne bien si l’indexe peut tenir en memoire. Si l’indexe ne peut pas completement tenir en memoire, on peut utiliser un arbre B+, c’e.a.d. un indexe a structure d’arbre B plus un “Sequence Set” qui contient les enregistrements.
7
7 Le Contenu de l’Indexe: Separateurs plutot que Cles L’indexe represente une sorte de guide pour le “sequence set” Il n’est pas necessaire d’avoir les cles dans l’indexe. Ce dont on a vraiement besoin est un ensemble de separateurs capable de discriminer entre deux blocs. On peut epargner de l’espace en utilisant des separteurs a longueur variable et en placant le plus petit separateur dans la structure d’indexe. Les regles sontles suivantes: Cle < separateur bloc de gauche Cle = separateur bloc de droite Cle >= separateur bloc de droite
8
8 Un Arbre B+ Prefixe Simple Les separateurs que l’on vient d’itentifier peuvent etre organises en un arbre B representant l’indexe du “sequence set” des blocs. Cet arbre B s’appelle alors l’”Index Set”. Pris ensemble avec le “Sequence Set”, l’”Index Set” forme une structure de fichiers appelee un Arbre B+ Prefixe Simple. “Prefice Simple” indique que l’”Index Set” contient les plus petit separateurs, en d’autres termes, le prefixe des cles plutot que des copies des cles completes.
9
9 Arbre B+ Prefixe Simple: Maintenance Pour les mises a jour localisees a un seul bloc dans le “Sequence Set”: Faire les changements dans le “Sequence Set” et dans l’”Index Set”. Pour les mises a jour incluant plusieurs blocs dans le “Sequence Set”: Si les blocs sont divises dans le “Sequence Set”, un nouveau separateur doit etre inserre dans l’”Index Set”. Si les blocs sont fusionnes dans le “Sequence Set”, un separateur doit etre efface de l’”Index Set”. Si les enregistrements sont re-distribues entre les blocs d’un “Sequence Set”, la valeur de separateurs dans l’”Index Set” doit etre changee.
10
10 Taille d’un Bloc dans l’”Index Set” La taille physique d’un noeud dans l’Index Set” est typiquement la meme que celle d’un bloc dans le “Sequence Set”. Dans ce case on parle de blocs d’indexes plutot que de noeuds. Il y a plusieures raisons pour utiliser une taille de bloc commune au “Sequence Set” et l’”Index Set”: La taille d’un bloc est souvent choisie en relation avec les caracteristiques de l’unite de disque et le montant de memoire disponible. Une taille de bloc commune rend la creation d’un traitement par memoire tampon plus facile a implementer dans le cas d’un arbre B+ Prefixe Simple Virtuel. Les blocs d’indexe et de sequence sont souvent melanges dans le meme fichier afin d’eviter l’acces a deux fichiers differents pendant le traitement.
11
11 La Structure Interne des Blocs de l’”Index Set”: Un arbre B a Ordre Variable Etant donne un grand bloc a taille fixe dans l’”Index Set”, comment peut-on sauvegarder les separateurs dans ce bloc? Il y a de nombreuses facons de combiner la liste de separateurs, l’indexe des separateurs et la liste de” Numeros de Blocs Relatifs” (NBR) dans un seul bloc de l’”Index Set”. Une approche possible est d’inclure un compteur de separateurs et de garder un compteur de la longueur totale des separateurs.
12
12 Amener un Arbre B+ Prefixe Simple en Memoire I Une serie d’insertions successives n’est pas une bonne methode car la division de blocs et leur re- distribution sont assez couteuses et ne devraient etre faites que pour la mise a jour. Si on part d’un fichier triee, cependant, on peut placer les enregistrements dans des blocs de “Sequence Set”, creant un nouveau bloc des que celui que l’on est en train de remplir est plein. Lorsque l’on fait la transition d’un bloc a l’autre, on peut determiner le separateur minimal de ces deux blocs. On peut mettre tous ces separateurs dans un bloc d’”Index Set” que l’on construit et retient en memoire jusqu’a ce qu’il soit plein.
13
13 Amener un Arbre B+ Prefixe Simple en Memoire II Les avantages de cette technique pour amener un arbre B+ Prefixe Simple en Memoire sont presque toujours plus grands que les desavantages associes a la possibilite de creer des blocs contenant trop peu d’enregistrements ou trop peu de separateurs. Un avantage particulier est que ce processus va plus rapidement car: Le resultat peut etre ecrit sequentiellement; On n’a besoin de consulter les donnees qu’une seule fois; Aucun bloc n’a besoin d’etre re-organise. Les avantages une fois que l’arbre est en memoire: Les blocs sont plein a 100% Comme l’arbre est amene en memoire sequentiellement, un certain degre de localisation spatiale dans le fichier est cree “seeking” peut etre minimise.
14
14 Arbres B+ La difference entre un arbre B+ prefixe simple et un arbre B+ est que l’arbre B+ n’utilise pas de prefixes comme separateurs. Dans l’arbre B+, les separateurs sont des copies de cles. Les arbres B+ prefixes simples sont souvent plus desirables que les arbre B+ car les separateurs prefixes prennent moins de place que les cles completes. Les arbres B+, cependant, sont parfois plus desirables car 1) ils ne demandent pas de champs de separateurs a taille variable et 2) certaines cles ne sont pas toujours facile a comprimer de maniere effective.
15
15 Arbres B, Arbres B+ et Arbres B+ Prefixes Simples en Perspective I Les arbres B et B+ ne sont pas les seuls outils utiles pour la conception des structures de fichiers. Les indexes simples sont utiles lorsqu’ils peuvent tenir en memoire et Hashcoding peut permettre un acces beaucoup plus rapide que les arbres B et B+. Caracteristiques communes aux arbres B, B+ et B+ Prefixes Simples: Structure d’indexes paginees Arbres large et bas Arbres a taille balancee (height-balanced) Les arbres sont construits de bas en haut et les operations utilisees sont: division, fusion, et re- distribution de blocs. Division deux-trois et redistribution peuvent etre utiliser pour ameliorer l’efficacite du storage. Ils peuvent etre implementes virtuellement. Ils peuvent etre adaptes pour enregistrements a longueur variable.
16
16 Arbres B, Arbres B+ et Arbres B+ Prefixes Simples en Perspective II Difference entre ces structures d’arbres: Arbres B: indexes a niveaux multiples pour fichiers non-tries. Aspects Positifs: simplicite de l’implementation; Aspects Negatifs: trop de “seeking” est necessaires pour l’acces sequentiel. Arbres B avec information associee: Ces arbres sont des arbres B qui contiennent le contenu des enregistrements a chaque niveau de l’arbre. Aspect Positif: Peuvent epargner de l’espace; Aspect Negatif: ne fonctionne que lorsque l’information sur l’enregistrement est localisee dans l’arbre B. Sinon, trop de “seeking” est necessaire pour recuperer l’information sur cet enregistrement.
17
17 Arbres B, Arbres B+ et Arbres B+ Prefixes Simples en Perspective III Difference entre ces structures d’arbres: Arbres B+: Dans un arbre B+, toutes les informations sur la cle et l’enregistrement est contenue dans un ensemble de blocs chaines appele le “Sequence Set”. Un acces indexe est disponible grace a l’”Index Set”. Avantages par rapport aux arbres B: 1) Le “Sequence Set” peut etre traite de maniere vraiement lineaire et sequentielle; 2) l’indexe est construit avec une seule cle ou separateur par bloc d’enregistrements plutot qu’avec une seule cle par enregistrement l’indexe est plus petit et donc moins profond. Arbres B+ Prefixes Simples: Les separateurs de l’”Index Set” sont plus petits que les cles du “Sequence Set” L’arbre est encore plus petit.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.