FR2606182A1 - Procede de memorisation et de catalogage d'informations, et ordinateur comprenant un systeme de classement mettant en oeuvre ce procede - Google Patents

Procede de memorisation et de catalogage d'informations, et ordinateur comprenant un systeme de classement mettant en oeuvre ce procede Download PDF

Info

Publication number
FR2606182A1
FR2606182A1 FR8714435A FR8714435A FR2606182A1 FR 2606182 A1 FR2606182 A1 FR 2606182A1 FR 8714435 A FR8714435 A FR 8714435A FR 8714435 A FR8714435 A FR 8714435A FR 2606182 A1 FR2606182 A1 FR 2606182A1
Authority
FR
France
Prior art keywords
file
directory
directories
node
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8714435A
Other languages
English (en)
Other versions
FR2606182B1 (fr
Inventor
Bill M Bruffey
Gursharan Singh Sidhu
Patrick William Dirks
Christopher R Mcfall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of FR2606182A1 publication Critical patent/FR2606182A1/fr
Application granted granted Critical
Publication of FR2606182B1 publication Critical patent/FR2606182B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

CE PROCEDE COMPREND LES ETAPES DE : REGROUPEMENT DES INFORMATIONS A CLASSER EN UNE PLURALITE DE FICHIERS 21-24, MISE EN OEUVRE D'UNE STRUCTURE HIERARCHISEE, NOTAMMENT DU TYPE DIT " EN ARBRE-B ", AVEC UN NOEUD DE DEPART 17, UNE PLURALITE DE NOEUDS D'EXTREMITE 21-24, ET UNE PLURALITE DE NOEUDS INTERMEDIAIRES 18-20 DISPOSES EN DIFFERENTS NIVEAUX SUCCESSIFS A PARTIR DU NOEUD DE DEPART, ET INTERCONNEXION DE CERTAINS DES NOEUDS D'EXTREMITE AU NOEUD DE DEPART, DE SORTE QU'IL EXISTE UN SEUL TRAJET D'INTERCONNEXION ALLANT DU NOEUD DE DEPART A CHACUN DES NOEUDS D'EXTREMITE, MISE EN PLACE D'INFORMATIONS DE DESCRIPTION DE POSITION POUR CHACUN DES FICHIERS DANS UN NOEUD D'EXTREMITE PREDETERMINE, DE SORTE QUE CHACUN DES NOEUDS D'EXTREMITE COMPORTE LA DESCRIPTION DE POSITION DE FICHIER ASSOCIEE ET FOURNISSE CETTE DESCRIPTION DE POSITION POUR RETROUVER LE FICHIER QUI LUI EST ASSOCIE, ASSIGNATION D'UNE VALEUR PROPRE A CHACUN DES FICHIERS, DE MANIERE A RETROUVER L'INFORMATION D'UN FICHIER PARTICULIER EN RECHERCHANT SA VALEUR ASSOCIEE DANS LA STRUCTURE HIERARCHISEE.

Description

La présente invention concerne un procédé pour mémoriser et retrouver des
données par un ordinateur; elle concerne plus
particulièrement un système de classement hiérarchisé.
Dans un système d'ordinateur, l'information est généralement mémorisée sous forme de signaux sur divers supports de mémorisation tels que des bandes magnétiques, des disques, des composants à semiconducteurs, etc. Au fur et à mesure que les densités de mémorisation ont augmenté avec les progrès de la technique des moyens de mémorisation, il est devenu possible
de mémoriser beaucoup plus d'informations que précédemment.
Lorsque l'information est mémorisée sur un support, elle est cataloguée de manière à pouvoir retrouver cette même information lorsqu'on le souhaite. Normalement, un nom de code propre est attribué à un ensemble particulier de données pour le différencier des autres. Pour retrouver un ensemble particulier de données, on utilise un nom de code approprié associé avec ces données, de sorte que l'appareil recherche ce nom de code et retrouve les données souhaitées lorsque le nom
de code est retrouvé.
Comme cela est bien connu dans la technique, chaque ensemble distinct de données est appelé "fichier", et le catalogage de
ces dossiers sur un support est appelé "classement".
Généralement, les noms de code associés à des données particulières contiennent des pointeurs qui pointent sur des zones de mémoire réservées pour la mémoire de masse. Les différents noms de code et leur pointeurs forment le système de catalogage. Lorsque l'on utilise des supports de mémorisation à haute densité, il est possible de mémoriser des millions de bits d'informations sur ces supports, ce qui permet de créer des centaines, des milliers', et même des millions de fichiers. Pour retrouver un fichier spécifique, une recherche séquentielle parmi ces fichiers est extrêmement
coûteuse en temps.
On comprendra que l'on cherche, dans un système de classement pour un support de mémorisation à forte densité, un système qui recherche et retrouve rapidement le fichier mémorisé souhaité. De plus, avec l'arrivée des ordinateurs individuels et des petits ordinateurs de bureau, pour lesquels
2 2606182
on se soucie de la taille physique, il est souhaitable de disposer d'un système de classement qui puisse être mis en oeuvre sans trop empiéter sur la taille disponible pour les
programmes, tout en restant performant.
A cet effet, la présente invention décrit un procédé permettant d'obtenir un système de classement hiérarchisé. Ce système de classement hiérarchisé fournit un catalogue des' données mémorisées dans différents emplacements situés à l'intérieur d'un support de mémoire. Généralement, on utilise une structure de catalogage pour organiser un volume de mémoire. La structure de catalogage du système de classement hiérarchisé est obtenue par une structure du type en arbre renversé, dans laquelle un répertoire de départ est utilisé comme répertoire formant racine. D'autres répertoires et fichiers s'y rattachent pour former une lignée. Une pluralité de niveaux descendants se divisent vers le bas de manière à réaliser la stru:ure hiérarchisée du catalogue. La structure de catalogage c; -'.%ent l'information de position indiquant o
se trouve mémorse la donnée réelle.
Le système Je catalogage des fichiers est mise en oeuvre en utilisant u-n. :re-B. L'information de catalogage est conservée dans les noeuds formant feuilles de l'arbre-B. Les noeuds ne fermant pas feuille (noeuds formant index) de l'arbre-B contiennent des informations qui permettent la recherche d'informations de catalogue particulières en
utilisant le nom de code ou la clef du fichier correspondant.
Les valeurs de clef qui sont utilisées pour identifier et cataloguer différents fichiers du système de catalogage sont également utilisées pour organiser le catalogue dans les noeuds formant feuilles de l'arbre-B. Les clefs sont placées en ordre ascendant pour permettre un accès systématique. En outre, l'arbre-B s'agrandit en utilisant des rotations à gauche et des scissions à gauche avec insertion d'informations de catalogue concernant de nouveaux fichiers, à partir de la
droite, de manière à conserver un arbre équilibré.
Lorsque les données d'un fichier sont mémorisées, les
3 2 6 02606182
additions, les suppressions et les modifications vont généralement avoir pour effet une mémorisation physiquement non contigue des données dans le support de mémoire. Chacun des segments contigus du fichier est appelé "plage de fichier". Un enregistrement de l'emplacement physique des plages d'un fichier particulier est conservé dans un ou plusieurs enregistrements de plage. Le système de classement hiérarchisé utilise une liste des plages de fichier pour conserver les enregistrements des plages des différents
fichiers sur le support de mémoire.
La présente invention conserve le premier enregistrement des plages d'un fichier dans la structure de catalogage, mais tous les enregistrements des plages ultérieures sont conservés dans une liste séparée des plages de fichier. Cette liste des plages de fichier est également mise en oeuvre par une seconde
structure en arbre-B.
Sur les dessine: - la figure I est une représentation d'un système de classement à pla. Jt l'art antérieur, - la fiaure est une représentation d'un système de classement h 6t.rchi.eà selon la présente invention, - la figure _ -?t une représentation d'une structure en arbre-B selon la présente invention, - la figure 4 est une représentation du contenue d'un noeud de la structure en arbre-B de la figure 3, - la figure 5 est une représentation d'un opération de scission à gauche et de rotation à gauche d'une structure en arbre-B d'un mode de réalisation préféré, - la figure 6 est une représentat;Dn d'une structure de catalogage du mode de réalisation préféré et d'une organisation de la structure de catalogage dans un certain nombre de noeuds d'un arbre-B, - la figure 7 est une représentation de la mappe d'allocation d'un volume dans un système de classement du mode de réalisation préféré, - la figure 8 est une représentation d'une liste des plages de fichier du mode de réalisation préféré, et montre
4 2606182
différentes plages de fichier dans la mémoire, et - La figure 9 est une représentation montrant l'organisation des plages de fichier dans l'arbreB du catalogue et l'arbre-B
des plages de fichier du mode de réalisation préféré.
La présente invention décrit un procédé pour mémoriser et pour retrouver des informations qui utilise un système de
classement hiérarchisé. Dans la description qui va suivre, on
a donné de nombreux détails pour permettre une compréhension complète de la présente invention. Il est cependant évident pour l'homme de l'art que la présente invention peut être mise en oeuvre sans ces détails particuliers. Par ailleurs, des procédés- bien connus n'ont pas été décrits en détail de
manière à ne pas alourdir inutilement la description de la
présente invention.
En référence à la figure 1, on a représenté un système de classement à plat 10 de l'art antérieur, qui comprend un répertoire 11 et des fichiers 12 à 15. Pour la commodité des explications, on a représenté symboliquement un répertoire sous forme d'un dossier, et un fichier sous forme d'une feuille de papier avec un coin corné. Cette représentation imagée correspond bien à l'analogie consistant à placer des documents dans des dossiers (des fichiers dans des répertoires). Dans le système 10 de l'art antérieur, on est en présence d'un répertoire 11 unique, qui contient des informations de position des fichiers 12 à 15. Chacun des fichiers 12 à 15 contient des données associées à un ensemble particulier d'informations mémorisées. Dans cet exemple particulier du système 10 de l'art antérieur, si l'on veut accéder au fichier 15, on exécute une recherche séquentielle a l'intérieur du répertoire 11 jusqu'à trouver l'adresse de fichier du fichier 12, cette recherche séquentielle ayant pour conséquence l'écoulement d'un temps considérable lorsqu'un nombre important de fichiers sont présents dans le répertoire 11. Bien que, dans cet exemple imaginaire, le répertoire 11 contienne des adresses de pointeurs correspondant à quatre fichiers 12 à 15, le répertoire 11 continuera à mémoriser les
adresses des fichiers suivants de manière séquentielle.
2606182
La figure 2 illustre l'architecture du système de classement hiérarchisé de la présente invention. Ce système de classement hiérarchisé particulier 16 comprend un répertoire 17 formant la racine et des fichiers 21 à 24. Le système de classement hiérarchisé 16 comprend également des répertoires 18 à 20. Chaque répertoire peut contenir des fichiers ou bien d'autres répertoires, à la manière du répertoire 18 qui contient le répertoire 20. Chaque répertoire est un noeud d'embranchement, qui peut, aussi bien, n'être relié à aucun noeud qu'être relié à une pluralité de noeuds de sous-embranchements. Chaque répertoire contient des informations qui permettent d'effectuer le rattachement des branches. Les données proprement dites sont mémorisées dans les fichiers 21 à 24. Du fait que chaque fichier constitue un noeud de terminaison, ces fichiers n'ont pas besoin de contenir des informations supplémentaires de rattachement des branches. A la place, chaque fichier mémorise les données proprement dites. Ainsi, les répertoires 17 à 20 contiennent des informations de rattachement des branches, tandis que les fichiers 21 à 24
contiennent les données mémorisées.
Le système de classement hiérarchisé 16 accède aux fichiers 21 à 24 selon un mode hiérarchisé, de sorte qu'il n'est pas nécessaire d'effectuer une recherche séquentielle parmi les fichiers. Supposons, avec l'exemple de la figure 2, que l'on
souhaite accéder aux données mémorisées dans le fichier 23.
Une recherche dans le répertoire 17 révèle qu'il existe deux
chemins possibles pour rechercher l'adresse du fichier 23.
L'un des chemins mène du répertoire 17 au répertoire 18, et l'autre chemin mène au répertoire 19. Le chemin souhaitable est celui menant au répertoire 18, point auquel il existe à nouveau deux chemins. Le chemin souhaitable mène du répertoire 18 directement au fichier 23. Bien que cet exemple soit très simple du fait du nombre minuscule de fichiers représentés, on peut apprécier aisément l'économie de temps dans la recherche des fichiers lorsque l'on serait en présence d'un nombre de
fichiers relativement important.
De plus, si, par exemple, on avait choisi le fichier 22, le trajet partant du répertoire 18 aurait mené au répertoire 20,
6 2606182
point auquel il existe deux chemins partant du répertoire 20.
Le chemin souhaitable allant du répertoire 20 au fichier 22 aurait alors été choisi. Le système de classement hiérarchisé 16, bien qu'il ait été représenté sous une forme particulière dans la figure 2, peut comporter un nombre quelconque de niveaux (d'embranchements) en aval du répertoire 17 formant racine, aussi bien qu'un nombre quelconque de branches à partir d'un répertoire particulier. Cependant, il faut noter que toutes les données sont mémorisées dans les fichiers représentés 21 à 24, qui sont tous situés en des noeuds
d'extrémité du système de classement hiérarchisé 16.
En réalité, l'architecture de catalogage du mode de réalisation préféré contient, dans la structure du système de
classement hiérarchisé 16, des informations de description de
position pour -le catalogage. Les rubriques du catalogue contiennent, pour les fichiers 21 à 24, des pointeurs qui
indiquent des descriptions de position permettant de localiser
les emplacements de la zone de mémorisation o se trouvent
effectivement les données mémorisées.
ARBRE-B
Le système de classement hiérarchisé de la présente invention est mis en oeuvre en utilisant, dans le mode de réalisation préféré, deux structures en arbre-B, à savoir l'arbre-B du catalogue et l'arbre-B des plages de fichier. La structure en arbre-B est bien connue de l'art antérieur, et elle est décrite dans The Art of Computer Programming, tome 3 ("Sorting and Searching"), de Donald E. Knuth (1973), au chapitre 6.4 intitulé "Multiway Trees", pages 471 à 479. Les noeuds d'un arbre-B contiennent des enregistrements, chaque enregistrement comportant certaines informations qui sont soit des pointeurs soit des données, ainsi qu'une clef associée à
cet enregistrement.
En référence à la figure 3, on a illustré un arbre-B imaginaire. Une caractéristique essentielle de l'arbre-B 31 est que les données sont mémorisées seulement dans les noeuds formant feuilles 35 à 38. Les noeuds internes 32 à 34,
7 22606182
également appelés noeuds d'index, contiennent des pointeurs pointant vers d'autres noeuds, de sorte que ces noeuds d'index 32 à 34 forment un index permettant d'accéder aux enregistrements de données mémorisées dans les noeuds formant feuilles 35 à 38. Chaque enregistrement 39 comporte une clef et un segment d'information 41. A l'intérieur de chaque noeud, les enregistrements sont mémorisés de manière que leur clefs soient en ordre ascendant. L'arbre-B 31 donné à titre d'exemple sur la figure 3, contient des clefs imaginaires qui ont été placées pour montrer la structure de l'arbre et la relation entre les noeuds formant index 32 à 34 et les noeuds formant feuilles 35 à 38. Le noeud formant feuille 35 contient les valeurs de clefs "48" et "50". La première clef d'un noeud est également représentée sous forme d'une clef placée selon l'ordre ascendant. Ainsi, la clef "48", qui est la première clef du noeud formant feuille 35, est également représentée
sous forme d'une clef à l'intérieur du noeud formant index 33.
La clef "53", qui est la première clef du noeud formant feuille 36, est représentée comme étant la seconde clef du noeud formant index 33. En outre, du fait que la clef "48" est la première clef à l'intérieur du noeud formant index 33, elle est également représentée sous forme d'une clef à l'intérieur du noeud formant index 32. Cette configuration est répétée, avec une structure en arbre-B, pour chaque noeud formant feuille 35 à 38 et chaque noeud formant index ascendant 32 à 34. Bien que la figure 3 ne montre que trois niveaux et deux clefs par noeud, on peut choisir, pour une structure en arbre-B particulière, n'importe quel nombre de clefs par noeud et n'importe quel nombre de niveaux. L'arbre-B 31 représenté figure 3 est un exemple imaginaire, à des seules fins d'illustration. Lorsque l'on a besoin d'un enregistrement de données, on fournit la clef de l'enregistrement souhaité. La recherche commence au noeud formant racine, qui est également un noeud formant index. Une recherche est exécutée à l'intérieur du noeud jusqu'à ce que l'on atteigne l'enregistrement ayant la clef la plus élevée qui soit pas supérieure à la clef recherchée. Supposons, dans l'exemple imaginaire de la figure
8 2606182
3, que l'on doit sélectionner la donnée avec la clef "59". La recherche commence au noeud formant racine 32, o l'on sélectionne la clef "56" car la valeur "56" est la clef la plus élevée qui ne soit pas supérieure à la clef recherchée elle-même. Le pointeur de la clef "56" sélectionne le noeud formant index 34, o la recherche continue à l'intérieur du noeud formant index 34. A nouveau, la clef "56" est choisi du fait qu'elle est la clef la plus élevée qui ne soit pas supérieure à la clef recherchée elle-même (la clef suivante "63" est supérieure à la clef recherchée). Le pointeur de la clef "56" dans le noeud formant index 34 sélectionne le noeud formant feuille 37. A l'intérieur du noeud formant feuille 37, une autre recherche est effectuée de manière à identifier la clef recherchée "59". Lorsque la clef recherchée "59" est retrouvée, on peut utiliser l'information qui lui est associée (les données) Un pointeur particulier dans un enregistrement d'index mène
à un autre noeud situé un niveau plus bas dans l'arbre-B 31.
Par exemple,]. nceud 32 mène au noeud 34. Le processus continue jusqu'a a. tteindre un noeud formant feuille, o l'on examine alcrs:es enregistrements jusqu'à retrouver la clef souhaitée.:. la clef souhaitée est absente, alors la recherche s'a.i ce lorsqu'une clef supérieure à la clef recherchée est atteinte, ou lorsque tous les enregistrements dans le noeud tormant feuille ont été examinés. Les valeurs de clef peuvent être numériques, alphabétiques ou alphanumériques. En référence à la figure 4, on a représenté la structure de l'un quelconque des noeuds d'un arbre-B de la présente invention. Chaque noeud 42 comprend un segment 43 de
description de noeud, un segment 44 d'enregistrements, un
segment 46 de décalage d'enregistrements, et peut comporter un segment 45 d'espace libre. Chaque noeud 42 commence avec un
segment 43 de description du noeud. La zone NDNRECS (Node
Number of Records) 58 contient le nombre d'enregistrements se trouvant actuellement dans le noeud. La zone NDTYPE (Node Type) 54 indique le type de noeud, qui est soit un noeud formant feuille, soit un noeud formant index. La zone NDHEIGHT
9 606 182
(Node Height) 57 indique la hauteur du noeud dans l'arbre, les noeuds formant feuilles étant considérés comme étant au niveau 1, les noeuds formant index situés juste au dessus étant considérés comme étant au niveau 2, etc. Les zones NDBLINK (Node Backward Link) 52 et NDFLINK (Node Forward Link) 51 sont utilisées en conjugaison avec les autres noeuds de l'arbre-B pour se déplacer rapidement parmi les enregistrements des divers noeuds situés à un niveau donné. Pour chaque noeud, la zone NDBLINK 52 contient un pointeur indiquant le noeud précédent, et la zone NDFLINK 51 contient un pointeur indiquant le noeud suivant situé au même niveau. Sur la figure 3, la zone NDBLINK du noeud 36 pointerait en direction du noeud 35, et la zone NEDFLINK du noeud 36 pointerait en direction du noeud 37. De la sorte, les zones NDBLINK 52 et NDFLINK 51 constituent des moyens de localiser les noeuds adjacents sans avoir besoin de commencer par remonter à
l'intérieur de l'àrbre-B.
Les segmente d'enregistrement 44 contiennent les enregistrement. le l'arbre-B, chacun ayant sa clef et une information de p. rteur ou une information de donnée. Dans Cet
exemple particL e- il existe deux enregistrements 60 et 61.
Les enregistrments d'un noeud peuvent avoir une longueur variable. Icur te raison, il est nécessaire de connaître,
pour chaque enregistrement, son décalage par rapport au début.
Le segment d'unregistrement commence juste après le segment de
description de noeud 43. Les enregistrements sont suivis par
un segment d'espace libre 45 qui, pour l'essentiel, constitue l'espace inutilisé du noeud. Ainsi, dans certains cas, ce segment d'espace libre peut ne pas exister. Le segment de décalage d'enregitzrement 46 situé a l'extrémité du noeud contient l'information de décalage des enregistrements 60 et 61. Le décalage 68 contient l'information de décalage de l'enregistrement 60 et le décalage 67 contient l'information de décalage de l'enregistrement 61. Le décalage 66 contient le décalage nécessaire pour déterminer l'espace libre 62. Ainsi, le segment d'enregistrement 44 se développe vers le bas à l'intérieur du segment d'espace libre 45, tandis que le segment 46 de décalage d'enregistrement se développe vers le
10.2606182
haut, à partir de l'extrémité opposée, dans le segment
d'espace libre 45.
Si le noeud 42 est un noeud formant index, alors chaque enregistrement 60 et 61 comprend une clef et une information de pointeur. En outre, la zone NDFLINK 51 et la zone NDBLINK 52 vont contenir les pointeurs de chaînage vers le noeud formant index adjacent. Si le noeud 42 est un noeud formant feuille, alors chaque enregistrement 60 et 61 comprend une clef et une information de donnée. La zone NDFLINK 51 et la zone NDBLINK 52 contiendraient également des pointeurs de chaînage vers des noeuds formant feuilles. On notera également que, bien que l'on ait illustré un format particulier pour le noeud 42, le format peut être modifié facilement pour inclure d'autres types d'informations. De plus, dans le mode de réalisation préféré, pour adresser des emplacements de mémoire o se trouvent réellement les données, on utilise des informations de données dans les noeuds formant feuilles de
l'arbre-B du catalogue du système de classement hiérarchisé.
En référence à la figure 5, on a représenté une architecture spécialisée d'expansion de l'arbre-B, telle que mise en oeuvre
dans le mode de réalisation préféré de la présente invention.
Un noeud 70, qui est équivalent au noeud 42 de la figure 4, est illustré avec des pointeurs pointant vers deux noeuds 71 et 73 de niveau inférieur, qui peuvent être des noeuds formant index ou des noeuds formant feuilles. Bien que l'on n'ait représenté que deux noeuds 71 et 73 au niveau inférieur, un nombre quelconque de noeuds peuvent résider à ce niveau inférieur. De même, dans cet exemple imaginaire particulier,
les noeuds 71 et 73 ne sont que partiellement remplis.
Pour maintenir l'équilibre d'un arbre-B, il faut conserver les enregistrements uniformément espacés dans la structure hiérarchisée. Un arbre déséquilibré aura pour effet que, lorsque les enregistrements ne sont pas conservés uniformément dans chaque noeud, ils se trouvent empilés en très grand nombre sur l'une des branches de l'arbre-B. Le mode de réalisation préféré de la présente invention utilise une technique de rotation à gauche et de scission à gauche pour permettre le déplacement des enregistrements d'un noeud à
11îî -2606182
l'autre de manière à conserver un arbre-B équilibré. Lorsque les enregistrements doivent être transférés vers un autre noeud, on utilise l'opération de rotation à gauche. Dans cet exemple, les enregistrements du noeud 73 sont l'objet d'une rotation à gauche vers le noeud adjacent gauche 71, comme
illustré par la flèche 77.
Si l'on a besoin d'un autre noeud, comme par exemple lorsque les enregistrements du noeud 73 doivent subir une rotation et que le noeud 71 ne peut plus contenir les enregistrements provenant du noeud 73, on utilise une opération de scission à gauche pour insérer le noeud 72 à la gauche du noeud 73, entre les noeud 71 et 73. Dans cet exemple, le noeud 72 est inséré de manière à rattacher le noeud 71 au noeud 73, comme illustré par les flèches 78. Lorsque le noeud 72 est inséré, on établira un chaînage approprié par des pointeurs pointant vers son noeud formant index 70, et des pointeurs de chaînage vers les noeuds adjacents 71 et 73. Un déplacement continuel des données vers la gauche et l'insertion des nouvelles données aux extrémités droites facilite la conservation d'un arbre-B équilibré. Du fait que le système de classement hiérarchisé de la présente invention soit structuré avec les noeuds ascendants correspondant à une direction vers la droite, l'équilibre est maintenu même si les rotations et les scissions sont réalisées vers la gauche. On notera que l'on peut aussi bien utiliser des opérations de scisson et de rotation vers la droite, ou bien des insertions équilibrées utilisant des opérations à la fois à gauche et à droite. Bien que le mode de réalisation préféré de la présente invention utilise un arbre-B équilibré et cherche à maintenir celui-ci équilibré prur l'efficacité de la recherche, on peut utiliser pratiquement n'importe quelle structure d'arbre-B, y compris
des arbres-B non équilibrés.
ARBRE DU CATALOGUE
En référence à la figure 6, un catalogue imaginaire 90 est utilisé pour illustrer la mise en oeuvre du mode de catalogage
selon le mode de réalisation préféré de la présente invention.
12 tOb
12 2 2606182
La structure 90 comprend un répertoire 91 formant racine intitulé "volume". Chaque répertoire du mode de réalisation préféré reçoit un identificateur numérique spécifique appelé "identificateur de répertoire". Le répertoire formant racine du catalogue 90 a une valeur d'identificateur de répertoire de "2". Le répertoire 91 formant racine comporte trois branches formées du répertoire 92 et des fichiers 93 et 94. Le répertoire 92 a un nom de "dossier" et une valeur d'identificateur de répertoire de "29". A son tour, le répertoire 92 comprend deux branches formées des fichiers 95 et 96. Les fichiers 93 à 96 sont appelés "A", "B", "C" et "D" respectivement, dans cet exemple. L'architecture des répertoires et des fichiers suit la structure du système de classement hiérarchisé expliquée précédemment à propos de la figure 2. La structure complète de catalogage 90 est mémorisée sous forme d'enregistrement de données dans divers noeuds formant feuilles de l'arbre-B des figures 3 et 4, appelé "arbre-B du catalogue". On notera que la structure de catalogage 90, bien qu'étant un arbre, n'est pas en elle-même un arbre-B. La forme de la structure 90 est en fait mémorisée dans les différents noeuds formant feuilles d'un arbre-B. On notera que la structure de catalogage 9.0 ne doit pas être
confondue avec la description faite ci-dessus de l'arbre-B. Le
catalogue 90 et la structure d'arbre-B sont deux structures
séparées et distinctes.
La structure hiérarchisée du catalogue 90 est mise en oeuvre sous forme d'une structure d'arbre-B et mémorisée sous forme d'enregistrement de données dans les noeuds formant feuilles d'un arbre-B similaire à celui des figures 3 et 4. La structure de catalogue hiérarchisée 90 est mémorisée dans un support de mémorisation tel qu'illustré par la mappe de mémoire 97 de la figure 6. La mappe de catalogage 97 comprend trois types possibles d'enregistrement: des enregistrements de répertoire 100, des enregistrements de fichier 101, et des enregistrements de liaison 102. Chaque enregistrement 100 à 102 est formé d'une clef 103 et d'un segment d'information 104, comme cela a été décrit précédemment à propos de la
description d'un noeud formant feuille d'un arbre-B. La clef
13 OUl2606182 103 de chaque enregistrement- est formée d'une valeur 105 et d'un nom 106. La clef 103 d'un enregistrement de répertoire, comme en 91 et 92, est formée du nom 106 de son répertoire et de la valeur 105 d'identificateur de répertoire du répertoire apparenté. Un segment d'information 104 de chaque information de répertoire, comme celui des répertoires 91 et 92, est formé de la valeur 107 de l'identificateur de répertoire du répertoire. Pour le répertoire 92, l'identificateur du répertoire a reçu la valeur "29" et reçoit un nom de "dossier". L'identificateur de répertoire apparenté de l'enregistrement 92 a reçu la valeur "2" du fait que le répertoire 92 appartient à une lignée rattachée au répertoire 91 de la structure 90. L'enregistrement de répertoire 91 a une valeur d'identificateur de répertoire de "2", avec un nom correspondant de "volume". Du fait que le répertoire 91 est un répertoire formant racine, la valeur d'identificateur de répertoire apparenté a reçu la valeur "1", la valeur "1"
correspondant à la création du système de classement lui-même.
Un enregistrement de fichier, tel que celui des enregistrements de fichier 93 à 96, est également formé d'une clef 113 et d'un segment d'information 114, la clef 113 étant à son tour formée d'une valeur d'identificateur derépertoire et d'un nom. Cependant, dans le segment d'information 114, on mémorise l'information descriptive de la position des données de fichier effectivement mémorisées ainsi qu'un numéro de fichier propre. Les segments d'information 114 des
enregistrements de fichier 93 à 96 contiennent la description
de l'emplacement des informations de données effectivement mémorisées. L'enregistrement de fichier 94, qui a le nom de fichier "B", et l'enregistrement de fichier 93, qui a le nom de fichier "A" ont tous les deux une valeur d'identificateur de répertoire apparenté de "2". La valeur d'identificateur de répertoire apparenté "2" signifie que les fichiers A et B sont des descendants directs du répertoire "volume" ayant une valeur d'identificateur de répertoire de "2". Le fichier 95, qui porte le nom "C", et le fichier 96, qui porte le nom "D", ont des valeurs d'identificateur de répertoire apparenté de "29",
14 2606182
ce qui indique l'origine des fichiers C et D qui sont des descendants du répertoire 29 intitulé "dossier", et qui a une valeur d'identificateur de répertoire de 29. De la sorte, en cherchant un quelconque fichier ou une clef 103 d'un enregistrement de répertoire, l'information mémorisée fournit l'identification du nom de cet enregistrement particulier ainsi que la valeur d'identificateur de répertoire du noeud apparenté. Pour réaliser l'interconnexion des différentes branches, un enregistrement de rattachement 102 est prévu pour chaque répertoire. La clef d'un enregistrement de rattachement contient une valeur d'identificateur de répertoire et un nom nul, ce qui équivaut à ne pas avoir de nom du tout. Dans l'exemple de la figure 6, l'enregistrement de rattachement 108 donne la liaison entre le répertoire "fichier" et les fichiers C et D. Dans la clef 111 de l'enregistrement de rattachement 108, seule la valeur d'identificateur de répertoire du "dossier" est donnée. Dans le segment d'information 112 de l'enregistremeni: de rattachement 108, l'identificateur de répertoire du 1 rent de "dossier" et le nom de répertoire "dossier" sont -.r.d.i.qués. De la sorte, lorsque le dossier C, qui a un idii.t.'ificateur de répertoire apparenté 29, essaye de se rattacher. --n répertoire apparenté le plus proche 92, qui a un identificateur de répertoire de "29", l'enregistrement de rattachement 10z fournit le nom "dossier" du répertoire apparenté 92 ainsi que la valeur d'identificateur de
répertoire apparenté du répertoire 92, qui vaut "2".
De la même façon, l'enregistrement de rattachement 109 fournit le nom "volume" du répertoire 91 ainsi que sa valeur d'identificateur de répertoire apparenté pour les trois descendants 92 à 94 du répertoire 91. Grâce aux enregistrements de répertoire 91 à 92, aux enregistrements de fichier 93 à 96, ainsi qu'aux enregistrements de rattachement 108 à 109 pour chaque répertoire, la structure de catalogage 90 est interconnectée en un système de classement hiérarchisé,
l'information de description de position pour les données
effectivement mémorisées étant mémorisée dans les enregistrements de fichier 91 à 92, comme indiqué sur la
2606182
structure 97 de la figure 6.
En mettant en oeuvre la structure de catalogage 90 en utilisant une structure en arbre-B, la configuration hiérarchique de la structure 90 est aisément mémorisée dans
les noeuds formant feuilles d'un arbre-B de la description
ci-dessus. Par exemple, lorsqu'un ordinateur doit accéder au fichier C, le système va mettre en oeuvre une recherche d'arbre-B. En se référant à l'exemple de catalogue 90 de la figure 6, lorsque le fichier avec le nom C doit être retrouvé, le trajet de recherche doit être spécifié pour cette recherche. Ceci peut être donné sous la forme d'une séquence des noms de tous les répertoires du trajet depuis la racine jusqu'au fichier concerné, à savoir "volume", puis "dossier" puis enfin "C". La recherche commence en recherchant l'enregistrement de répertoire dans l'arbre-B du catalogue qui correspond & "volume". Son nom est "volume" et, comme il s'agit de la racine, son identificateur de répertoire apparenté vaut "1"'. L'arbre-B du catalogue est exploré pour retrouver un errz:Ftrement de répertoire ayant une clef <1>; on trouve ainsi 'e.registrement de répertoire 91. Son segment d'informatJon úóncrnit alors la valeur d'identificateur de répertoire "' de ce répertoire. On effectue alors une exploration u l'arbre-B pour retrouver l'enregistrement ayant la clef <2>, ce qui amème à l'enregistrement de répertoire 9", dont le segments d'information fournit cette valeur d'identificateur de répertoire de "29". On explore alors l'arbre-B de manière à retrouver l'enregistrement de données ayant la clef <29>C. Ceci permet à la recherche d'arriver immédiatement à l'enregistrement de données 95, dont le segment d'information contient l'information concernant la position physique des données contenues dans le dossier souhaité. On notera que la spécification du dossier de l'exemple ci-dessus peut commencer avec la valeur d'identificateur de répertoire de n'importe quel répertoire du trajet depuis la racine jusqu'au fichier souhaité, et consisterait alors en cette valeur d'identificateur de répertoire et en la séquence des noms des répertoires situés sur le trajet allant de ce
16 2 2606182
répertoire au fichier souhaité. Le mécanisme de recherche
suivi est une variante évidente de celui indiqué plus haut.
Bien que la structure de catalogage 90 ait une structure simplifiée et que la figure 6 ne montre que la présence d'une structure unique ayant un unique répertoire formant racine 91, une structure de catalogage peut être développé dans plusieurs directions. Le mode de réalisation préféré de la présente invention utilise une structure de catalogage par système de classement hiérarchisé pour chaque support de mémoire, par exemple pour chaque disque. Cependant, un tel disque peut être partitionné et un catalogue de système de classement
hiérarchisé affecté à chacune de ces partitions.
Les enregistrements de catalogue de la structure 97 de la figure 6 sont mémorisés sous forme des enregistrements de données dans les noeuds formant feuilles 42 de la figure 4 d'un arbre-B du catalogue. Ces enregistrements sont insérées et maintenus dans l'arbre-B du catalogue selon un ordre alphanumérique ascendant. De la sorte, si les noeuds formant feuilles de l'arbre-B sont traversés de la gauche à la droite, les enregistrements de données seront rencontrés dans l'ordre illustré par la structure 97 de la figure 6. Cet ordre correspond aux enregistrements en ordre ascendant avec comme clef principale la valeur d'identificateur de répertoire de la clef. Ainsi, parmi les enregistrements ayant la même valeur d'identificateur de répertoire dans leur clef, l'ordre est alphabétique par rapport à la portion de la clef
correspondante au nom.
On notera également que d'autres informations pertinentes peuvent être mémorisées dans les différents enregistrements, en plus de ce qui a été décrit à propos de la figure 6. Par exemple, les enregistrements de répertoire et les enregistrements de fichier de la présente invention contiennent des drapeaux, la date et l'heure de création du répertoire ou du fichier ainsi que la date et l'heure de la dernière modification. De la même façon, les enregistrements de fichier comprennent des rubriques comme les drapeaux permettant de verrouiller le fichier, des valeurs permettant de positionner les fins de fichier logiques et physiques, et
17 KU2606182
la taille du fichier.
ARBRE DES PLAGES DE FICHIER
Comme on l'a déja indiqué, l'enregistrement de fichier, dans l'arbre-B du catalogue, d'un fichier particulier contient des informations concernant les emplacements o les données du fichier sont mémorisées dans le support de mémoire. Le support de mémoire est considéré comme étant formé d'un ensemble de blocs séquentiellement numérotés. Une série de blocs contigus de mémoire est appelé une "plage". Idéalement, un fichier devrait être mémorisé sur une plage unique ayant un espace contigu alloué en mémoire. Cependant, en raison de la taille de certains fichiers ainsi que d'additions ultérieures à des fichiers existants, de suppressions et de modifications, les fichiers sont généralement mémorisés sur une pluralité de zones allouées en mémoire. Sauf dans le cas de fichiers alloués à l'avance ou de petits fichiers, le contenu d'un fichier particulier est généralement mémorisé sur plusieurs
plages séparées en sections non contiguës dans un volume.
Chaque plage de fichier peut être identifiée par un descripteur de plage. De la sorte, l'information complète de position d'un fichier particulier est une liste des plages séquentielles formée par les descripteurs de plage des
différentes plages contenant les données du fichier.
La liste des plages du fichier selon la présente invention est organisée également sous forme d'un arbre-B, appelé "arbre-B des plages de fichier", et enregistre la position du volume et la taille des différentes plages qui constituent les fichiers. Bien que pratiquement tout systèmes d'allocation de mémoire puisse utiliser le mode d'enregistrement des plages de fichier selon la présente invention, on décrira un système particulier d'allocation de mémoire pour illustrer l'enregistrement des plages de fichier de la présente
invention.
En référence à la figure 7, on a représenté un volume de mémoire 120 qui est une partie d'un support de mémoire, par exemple un disque dur. Le volume 120 est segmenté en un
18 2606182
certain nombre de blocs logiques 126. Généralement, chaque bloc logique 126 comprend un nombre fixe prédéterminé de multiplets, comme par exemple 512 multiplets pour le mode de réalisation préféré. Un nombre fixe de blocs logiques, commençant au bloc 0 et finissant au bloc n, est réservé pour les informations de volume. Le reste du support de mémoire commençant au bloc n+1 est disponible pour la mémorisation des données, et cette zone de mémorisation est séparée en unités d'allocation, chaque unité d'allocation étant formée d'un ou
plusieurs blocs logiques contigus.
Le volume 120 comprend quatre zones 121 à 124. La zone de démarrage du système 121 contient certains paramètres configurables du système, qui sont bien connus dans la technique de la mise en oeuvre des disques ou des autres composants de mémoire. La zone des informations du volume 122 contient des informations concernant les paramètres de gestion du volume, comme le numéro et la taille de chaque unité d'allocation. La mappe de bits du volume 123 contient un enregistrement de chaque unité d'allocation du volume 120 et utilise une mappe de bits pour indiquer l'utilisation ou l'a
non-utilisation de chaque unité d'allocation.
Commençant au bloc n+l, une zone de contenu de fichier 124 s'étend jusqu'à l'extrémité du volume 120. La zone de contenu de fichier 124 est séparée en un certain nombre d'unités d'allocation, chaque unité d'allocation étant formée d'un nombre fixe de blocs logiques. Bien que la mappe de bits 123 contienne des informations sur la gestion de l'espace des volumes, elle ne permet pas un mappage des fichiers. La fonction de mappage des fichiers est obtenue par les listes
des plages de fichier.
Si l'on se réfère également à la figure 8, on y a représenté une partie de la zone des contenus de fichier 124, qui contient les informations attribuées à un fichier appelé "fichier E". Dans cet exemple imaginaire, le contenu complet du fichier E est séparé en sept plages 125 à 131. La première portion du fichier est mémorisée dans la plage de base 125, les portions suivantes du fichier étant réparties en conséquence sur les plages 2 à 7 qui ont été référencées 126 à
19 2606182
131. Le fichier E comporte sept plages 125 à 131 qui ne sont pas physiquement contiguës. Pour conserver les informations des plages de fichier, un descripteur de plage 140 est utilisé pour la plage de base 125 et chacune des plages suivantes 126 à 131 du fichier E. Le descripteur de plage 140 est formé d'un numéro 141 d'unité d'allocation de départ et du nombre 142 des unités d'allocation. La liste 135 des plages du fichier E, qui est formée de sept descripteurs de plage 125a à 131a, fournit des informations concernant l'adresse et la longueur de chaque plage 125 à 131 du fichier E. Par exemple, la quatrième plage 128, qui a une adresse "189" d'allocation de départ et qui est longue de deux blocs d'allocations seulement,, comprend une valeur "189" dans le champ 141 et une valeur "2" dans le champ
142 du descripteur 128a.
Les descripteurs de plage de tous les fichiers d'un volume sont, dans la présente invention, mémorisés dans les enregistrements de données contenus dans les noeuds formant feuilles d'un arbre-B tel que celui des figures 3 à 5. Cet arbre est appelé "arbre-B des plages de fichier", et constitue un arbre-B distinct de l'arbre-B du catalogue précédemment décrit. Chaque enregistrement de données de cet arbre-B des plages comprend une clef et un segment d'information, comme précédemment exposé à propos des figures 3 à 5. Le segment d'information d'un enregistrement de données d'un arbre-B des plages de fichier est formé d'une suite de descripteurs de plage d'un fichier particulier. Le nombre maximum de descripteurs de plage dans un tel enregistrement peut varier d'une configuration à l'autre, mais, dans le mode de réalisation préféré, il est fixé à trois. La clef de l'enregistrement de l'arbre-B des plages de fichier est formé de deux champs: le numéro de fichier du fichier en question, et la position relative de fichier du bloc de départ du premier descripteur de plage dans cet enregistrement. Ces enregistrement de plage sont conservés dans les noeuds formant feuilles de l'arbre-B des plages de fichier, triés en ordre ascendant avec comme clef principale le champ de numéro de fichier et comme clef secondaire la position relative de
2606182
fichier du bloc de départ. Ceci permet une recherche efficace à l'intérieur de l'arbre-B de l'information de position de données se trouvant à une position relative particulière d'un fichier. En réalité, le mode de réalisation préféré de la présente invention mémorise trois descripteurs de plage, à savoir un descripteur de plage de base et deux descripteurs de plages suivantes, dans le segment de données d'informations 114 de l'enregistrement de l'arbre-B du catalogue du fichier tel que l'enregistrement 94 de la figure 6. De la sorte, dans l'exemple de la figure 8, les descripteurs de plage 125a, 126a et 127a sont conservés dans le segment d'information de la structure de catalogage, et les plages 128a à 131a sont conservées dans l'arbre-B des plages de fichier illustré figure 9. En permettant de conserver une information limitée sur les plages dans les segments de données d'une structure de
catalogage, on autorise un accès plus rapide aux données.
C'est seulement lorsqu'un fichier est formé de quatre plages et plus qu'il sea nécessaire de consulter l'arbre-B des plages de fichih on notera que le nombre des plages qui sont conservées dans ''enregistrement de l'arbre-B du catalogue du fichier sans uiiliúer un arbre-B des plages de fichier est arbitraire, e. -eut être modifié tout en restant dans les
limites de la présente invention.
Si l'on s.: rcière également à la figure 9, celle-ci représente un enregistrement de fichier de catalogue 145 et des enregistrements 143 et 144 d'arbre-B des plages de
fichier. Comme expliqué à propos de la description des
structures des arbres-B de la présente invention, chaque enregistrement 143 et 144 comprend une clef 148 et 149 et une liste des plages 146 et 147, respectivement. Pour localiser une certaine partie des données d'un fichier donné, on explore tout d'abord l'arbre-B du catalogue pour rechercher l'enregistrement de fichier correspondant. A partir de ce segment d'information de l'enregistrement de fichier, on extrait le numéro de fichier. On examine également les trois premiers descripteurs de plage dans le segment d'information de l'enregistrement de fichier de l'arbre-B du catalogue. Si
21 2606182
les données de fichier nécessaires sont contenues dans les plages correspondantes, l'information de position est alors immédiatement disponible. En revanche, si les données souhaitées du fichier sont situées dans des plages situées au-delà de la troisième dans l'enregistrement de fichier du catalogue, on effectue alors une exploration de l'arbre-B des plages de fichier en utilisant comme clef de recherche le numéro de fichier et la position relative calculée du fichier pour les données souhaitées. Cette recherche va aboutir à l'enregistrement de l'arbre-B des plages de fichier contenant
les informations de position souhaitées.
L'exemple avec le fichier E comprend 22 blocs et a un numéro de fichier qui est, arbitrairement, de "20". Les descripteurs de plage contenus dans l'enregistrement de fichier de catalogue 145 du fichier E donnent l'information de position des trois premières plages qui, à leur tour, comprennent les neuf premiers blocs (3+5+1) du fichier. L'information de position pour les treize blocs restants (2+3+1+7) du fichier est contenue dars -'eux enregistrements de données 143 et 144 dans l'arbre-B i'- plages de fichier. Supposons que la donnée souhaitée se trtl[i'e à la position relative de bloc "13" dans le fichier L. LeE descripteurs de plage contenus dans l'enregistr:em- 1 de catalogue du fichier sont examinés d'abord. Comme la position relative de bloc "13" est supérieure au nomtre de blocs localisés par les descripteurs de plage dans l'enregistrement de catalogue du fichier, on explore l'arbre-B des plages de fichier. La clef utilisée pour la recherche dans l'arbre-B de la position relative de blocs
"13" est <20,13>.
Comme la valeur de clef "13" est supérieure à la valeur "9" de la clef 148 pour le premier enregistrement 143 de l'arbre-B des plages de fichier, pour le fichier E, et est inférieure à la valeur "15" de la clef 149 du second enregistrement 144, la recherche donnera pour résultat "introuvable" ailleurs que
dans des positions du second enregistrement 144 de l'arbre-B.
En retrouvant le précédent enregistrement 143 de la clef 148, on obtient le descripteur de plage pour la position relative de bloc "13". La valeur "9" de la clef 148 vient du fait que
22 2606182
la liste des plages 146 commence à la dixième position relative de bloc (numéro d'unité d'allocation "9"). La valeur "15" de la clef 149 vient du fait que la liste des plages 147 commence à la seizième position relative de bloc (numéro d'unité d'allocation "15").
MISE EN OEUVRE
Le système de classement hiérarchisé de la présente invention est mis en oeuvre dans un ordinateur relié à un support de mémoire, tel qu'un disque, ayant la possibilité de mémoriser des millions de bits d'information, quoique n'importe quel support de mémorisation puisse utiliser le système de classement hiérarchisé. Généralement, le système de classement hiérarchisé de la présente invention permet le catalogage de différents groupements de données, tels que des
fichier, qui sont mémorisés sur le disque.
Le mode de réalisation préféré de la présente invention met en oeuvre la mémorisation des données par l'utilisation d'une structure de catalogage que l'on a décrite plus haut, afin de cataloguer les données mémorisées sur un support mémoire de grande capacité. Il permet également de conserver dans le catalogue un enregistrement des plages de fichier, jusqu'à trois plages par fichier. Les informations concernant les plages suivantes sont mémorisées dans un enregistrement séparé des plages de fichier. L'enregistrement de catalogue et l'enregistrement des plages sont tous deux conservés en utilisant deux arbres-B ayant la structure en arbre-B
antérieurement décrite.
Le système de classement hiérarchisé que l'on a décrit dans le mode de réalisation préféré de la présente invention est commandé par une combinaison de logiciel et de matériel d'un système de classement hiérarchisé d'ordinateur. Les programmes de commande du système de classement hiérarchisé sont mémorisés dans un support mémoire séparé de celui du support mémoire utilisé pour la mémorisation effective des données. Le mode de réalisation préféré mémorise ces programmes dans une mémoire morte ROM, bien que l'on puisse utiliser pratiquement
23 260618Z
n'importe quel support de mémoire.
24 22606182

Claims (14)

REVENDICATIONS
1. Procédé de mémorisation d'informations sur un support mémoire, caractérisé par la préparation d'un programme de catalogage de ces informations comprenant les étapes de: - regroupement de ces informations en une pluralité de fichiers (21-24), - mise en oeuvre d'une structure hiérarchisée avec un noeud de départ (17), une pluralité de noeuds d'extrémité (21-24), et une pluralité de noeuds intermédiaires (18-20) disposés en différents niveaux successifs à partir du noeud de départ, et interconnexion de certains des noeuds d'extrémité au noeud de départ, de sorte qu'il existe un seul trajet d'interconnexion allant du noeud de départ à chacun des noeuds d'extrémité,
- mise en place d'informations de description de position
pour chacun des fichiers dans un noeud d'extrémité prédéterminé, de sorte que chacun des noeuds d'extrémité
comporte la description de position de fichier associée et
fournisse cette description de position pour retrouver le
fichier qui lui est associé, - assignation d'une valeur propre à chacun des fichiers, de manière à retrouver l'information d'un fichier particulier en recherchant sa valeur associée dans la
structure hiérarchisée.
2. Le procédé de la revendication 1, comprenant en outre les étapes de: mise en oeuvre d'une structure en arbre-B, et - mise en place de chacune des valeurs propres et des
informations de description de position qui y sont associées
dans un noeud formant feuille prédéterminé de cet arbre-B.
3. Le procédé de la revendication 2, dans lequel la mise en place des valeurs propres dans les noeuds formant feuilles comprend l'étape de: disposition de ces valeurs propres en ordre ascendant dans
les noeuds formant feuilles.
2606182
4. Le procédé de la revendication 3, dans lequel la mise en
place de l'information de description-de position dans les
noeuds d'extrémité prédéterminés comprend en outre l'étape de:
- formation d'une pluralité d'informations de description
de position pour chaque fichier lorsque, pour un fichier respectif, ces informations sont segmentées en une pluralité de segments (125-131) physiquement non contigus sur le support
de mémoire.
5. Un procédé de catalogage d'informations dans un système de classement, caractérisé par la préparation d'un programme pour produire ce système de classement, comprenant les étapes de: - ordonnancement d'une structure nodale hiérarchisée comprenant un répertoire formant racine (17), une pluralité de répertoires (18-20) rattachés en branches et une pluralité de fichiers (21-24), chaque fichier remontant au répertoire formant racine par un trajet unique, ce trajet unique pouvant passer par les répertoires rattachés en branches, - assignation d'une valeur d'identification propre à chacun des répertoires, - assignation d'un nom d'identification propre à chacun des fichiers,
- mise en place d'informations de description de position
des données mémorisées dans leurs fichiers correspondants, chacun des fichiers faisant référence à un groupe particulier des données mémorisées, de sorte que ce groupe particulier de données mémorisées soit catalogué par son nom correspondant dans la structure hiérarchisée. 6. Le procédé de la revendication 5, comprenant en outre les étapes de: - mise en oeuvre d'une structure en arbre-B comprenant un noeud d'index formant racine (17), une pluralité de noeuds d'index rattachés en branches (18-20) et disposés à différents niveaux successifs à partir du noeud d'index formant racine, 26 c2606182 et se terminant en une pluralité de noeuds formant feuilles (21-24), et - ordonnancement de cette structure nodale hiérarchisée dans les noeuds formant feuilles, en:
5. associant chacun des noms de chacun des fichiers à l'une desdites valeurs d'un répertoire correspondant qui soit situé immédiatement au dessus dans ledit trajet unique, associant chacune des valeurs de chacun des répertoires à une valeur d'un répertoire correspondant qui soit situé immédiatement au dessus le long dudit trajet unique, de manière à former un chaînage des fichiers et des répertoires, de sorte que l'on puisse accéder à chacun des fichiers en accédar.t à l'un quelconque des répertoires situés
le long dudit trajet unique.
7. Le procédé de la revendication 6, dans lequel l'ordonnancement de la structure hiérarchisée dans les noeuds formant feuille- comprend en outre l'étape de: - dispositicr desdites valeurs dans les noeuds formant feuilles d'un E.:eit.-B en ordre ascendant de sorte que chacune desdites valeur-s p1opres soit associée à son enregistrement de données respectif comprenant des informations de chaînage par le trajet un-ré e, une première valeur dans chacun de ces noeuds étant également indiquée dans un noeud d'index lié d'un niveau précédent, de manière à former une séquence d'interconnexion à partir du noeud d'index formant racine
jusqu'à chacun des noeuds formant feuilles.
8. Le procédé de la revendication 7, dans lequel la mise en
place des informations de description de position pour chaque
groupe particulier de données mémorisé comprend en outre l'étape de:
- formation de plusieurs descriptions de position, lorsque
ledit groupe est segmenté en une pluralité de segments
(125-131) physiquement non contigus sur le support de mémoire.
9. Un procédé de catalogage d'informations dans un système de classement et de recherche de ces informations dans un
27 2606182
support de mémoire par utilisation de ce système de classement, caractérisé par un procédé de préparation d'un programme de mise en place de ce système de classement comprenant les étapes de: - ordonnancement d'une structure de catalogage hiérarchisée ayant un répertoire formant racine (17), une pluralité de répertoires (18-20) rattachés en branches et disposés sur plusieurs niveaux consécutifs à partir du répertoire formant racine, certains des répertoires rattachés en branches étant rattachés en branches à d'autres desdits répertoires rattachés en branches, lesdits répertoires rattachés en branches étant interconnectés de sorte que, pour chacun des répertoires rattaché en branches, il existe seulement un trajet unique allant de celui-ci au répertoire formant racine, - affectation d'une valeur de clef propre à chacun des répertoires, de manière à distinguer ces répertoires, - structuration- d'une pluralité de fichiers (21-24) dans la structure hiérazch-sée, chacun des fichiers étant rattaché en branche à son rier.oire associé, chacun des fichiers ayant un nom d'identifió-- ion propre et étant associé à un groupe particulier de doi:ées mémorisées sur le support de mémoire, - mise en p'ace, "ans le fichier respectif, d'informations de descripti- de position pour chacun des groupes particuliers de donnâes, - mise en iplace dans chaque répertoire et dans chaque fichier de la valeur de clef de son répertoire apparenté, de sorte que ledit trajet unique soit déterminé en faisant référence à cette valeur de clef du répertoire apparenté, - recherche du groupe particulier de données en parcourant la structure hiérarchisée vers le bas, à partir de n'importe quel répertoire le long du trajet correspondant et jusqu'au fichier correspondant, le fichier fournissant les informations
de description de position,
de manière à pouvoir rechercher et retrouver les données
mémorisées par une technique systématisée et hiérarchisée.
10. Le procédé de la revendication 9, comprenant en outre les étapes de:
28 2606182
- mise en oeuvre d'une structure en arbre-B ayant un noeud d'index formant racine, une pluralité de noeuds d'index rattachés en branches et disposés sur un certain nombre de niveaux successifs à partir du noeud d'index formant racine et se terminant par une pluralité de noeuds formant feuilles, - organisation de cette structure hiérarchisée de catalogage dans les noeuds formant feuilles, de sorte que les répertoires et les fichiers soient distribués en ordre ascendant en fonction de leur valeur de répertoire apparenté, - mise en place d'une première valeur de chaque noeud de l'arbre-B dans un noeud d'index lié d'un niveau précédent pour former une séquence d'interconnexion allant du noeud d'index formant racine à chacun des noeuds formant feuilles, - recherche d'une valeur de clef prédéterminée dans la structure hiérarchisée en parcourant un niveau de l'arbre-B jusqu'à trouver une valeur supérieure à la valeur de clef prédéterminée, puis en descendant à un niveau immédiatement inférieur en prenant le chemin correspondant à la valeur de clef immédiatement inférieure à ladite valeur supérieure, et en répétant ces parcours jusqu'à atteindre l'un des noeuds
formant feuilles.
11. Le procédé de la revendication 10, dans lequel la mise
en place de l'information de description de position pour
chacun des groupes particuliers de données mémorisées comprend en outre l'étape de:
- formation de plusieurs descriptions de position, lorsque
ce groupe est segmenté en une pluralité de segments (125-131)
physiquement non contigus sur le support de mémoire.
12. Le procédé de la revendication 10, comprenant en outre l'étape de: formation d'un second arbre-B pour conserver les
informations de description de position, lorsque ledit groupe
est segmenté en une pluralité de segments (125-131)
physiquement non contigus sur le support de mémoire.
13. Le procédé de la revendication 10, comprenant en outre
29 2606182
l'étape de: - formation d'un second arbre-B pour conserver les
informations de description de position des segments en excès,
lorsque lesdits segments non contigus dépassent un nombre prédéterminé. 14. Un ordinateur comprenant un système de classement hiérarchisé pour le catalogage et la recherche des données mémorisées sur un. support de mémoire, caractérisé en ce que ce système de classement hiérarchisé comprend: - une mémoire pour mémoriser un programme permettant ce catalogage et cette recherche, - un processeur, relié à la mémoire et au support de mémoire pour manipuler le programme, cataloguer et retrouver les données, - ce programme permettant l'ordonnancement d'une structure de catalogage hiérarchisée ayant un répertoire formant racine (17), une pluralité de répertoires (18-20) rattachés en branches et disposés sur plusieurs niveaux consécutifs à partir du répertoire formant racine, certains des répertoires rattachés en branches étant rattachés en branches à d'autres desdits répertoires rattachés en branches, lesdits répertoires rattachés en branches étant interconnectés de sorte que, pour chacun des répertoires rattaché en branches, il existe seulement un trajet unique allant de celui-ci au répertoire formant racine, - ce programme permettant l'affectation d'une valeur de clef propre à chacun des répertoires, de manière à distinguer ces répertoires, - ce programme permettant la structuration d'une pluralité de fichiers (21-24) dans la structure hiérarchisée, chacun des fichiers étant rattaché en branche à son répertoire associé, chacun des fichiers ayant un nom d'identification propre et étant associé à un groupe particulier de données mémorisées sur le support de mémoire, - ce programme permettant la mise en place, dans le fichier
respectif, d'informations de description de position pour
chacun des groupes particuliers de données,
2606182
- ce programme permettant la mise en place dans chaque répertoire et dans chaque fichier de la valeur de clef de son répertoire apparenté, de sorte que ledit trajet unique soit déterminé en faisant référence à cette valeur de clef du répertoire apparenté, - ce programme permettant la recherche du groupe particulier de données en parcourant la structure hiérarchisée vers le bas, à partir de n'importe quel répertoire le long du trajet correspondant et jusqu'au fichier correspondant, le fichier
fournissant les informations de description de position,
de manière à pouvoir rechercher et retrouver les données
mémorisées par une technique systématisée et hiérarchisée.
15. Le système de classement hiérarchisé de la revendication 14, dans lequel le programme est mémorisé dans une mémoire
morte ROM.
FR8714435A 1986-10-30 1987-10-20 Procede de memorisation et de catalogage d'informations, et ordinateur comprenant un systeme de classement mettant en oeuvre ce procede Expired - Fee Related FR2606182B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US92480286A 1986-10-30 1986-10-30

Publications (2)

Publication Number Publication Date
FR2606182A1 true FR2606182A1 (fr) 1988-05-06
FR2606182B1 FR2606182B1 (fr) 1993-12-17

Family

ID=25450754

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8714435A Expired - Fee Related FR2606182B1 (fr) 1986-10-30 1987-10-20 Procede de memorisation et de catalogage d'informations, et ordinateur comprenant un systeme de classement mettant en oeuvre ce procede

Country Status (6)

Country Link
JP (1) JPS63116232A (fr)
AU (1) AU610092B2 (fr)
CA (1) CA1285656C (fr)
DE (1) DE3736455A1 (fr)
FR (1) FR2606182B1 (fr)
GB (1) GB2196764A (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0410210A3 (en) * 1989-07-24 1993-03-17 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US5261088A (en) * 1990-04-26 1993-11-09 International Business Machines Corporation Managing locality in space reuse in a shadow written B-tree via interior node free space list
EP0558505B1 (fr) * 1990-10-05 2000-01-26 Microsoft Corporation Systeme et procede pour la recherche d'informations
JPH0786880B2 (ja) * 1991-04-26 1995-09-20 株式会社椿本チエイン データ記憶方法
DE4331949A1 (de) * 1993-09-21 1995-03-30 Frank Dipl Ing Mueller Datenverarbeitungsanlage und Verfahren zur Organisation von Daten in Datenverarbeitungsanlagen
CA2117846C (fr) * 1993-10-20 2001-02-20 Allen Reiter Methode informatique et structure pour le stockage et l'extraction de donnees multidimensionnelles
GB2283591B (en) * 1993-11-04 1998-04-15 Northern Telecom Ltd Database management
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
GB2336008B (en) 1998-04-03 2000-11-08 Schlumberger Holdings Simulation system including a simulator and a case manager adapted for organizing data files
US6813611B1 (en) * 1999-06-08 2004-11-02 International Business Machines Corporation Controlling, configuring, storing, monitoring and maintaining accounting of bookkeeping information employing trees with nodes having embedded information
AU2001293509A1 (en) * 2000-10-04 2002-04-15 Bullant Technology Pty Ltd Data processing structure
GB2369465B (en) * 2000-11-28 2003-04-02 3Com Corp A method of sorting and retrieving data files
KR100834760B1 (ko) 2006-11-23 2008-06-05 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치
CN111054082B (zh) * 2019-11-29 2023-10-13 珠海金山数字网络科技有限公司 Unity资源数据集编码的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4318184A (en) * 1978-09-05 1982-03-02 Millett Ronald P Information storage and retrieval system and method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2217500A1 (de) * 1971-04-23 1972-10-26 International Business Machines Corp., Armonk, N.Y. (V.StA.) Verfahren und Einrichtung zum Suchen von Schlüsselwörtern in einer elektronischen Datenverarbeitungsanlage
JPS6051732B2 (ja) * 1978-08-31 1985-11-15 富士通株式会社 デ−タ・ベ−スを有するデ−タ処理システム
US4611298A (en) * 1983-06-03 1986-09-09 Harding And Harris Behavioral Research, Inc. Information storage and retrieval system and method
JPS60129873A (ja) * 1983-12-19 1985-07-11 Nippon Telegr & Teleph Corp <Ntt> 文書保管検索システム
JPS61220027A (ja) * 1985-03-27 1986-09-30 Hitachi Ltd 文書ファイリングシステム及び情報記憶検索システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4318184A (en) * 1978-09-05 1982-03-02 Millett Ronald P Information storage and retrieval system and method

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
COMPUTING SURVEYS, vol. 11, no. 2, juin 1979, pages 121-137; D. COMER: "The Ubiquitous B-tree" *
H.M. DEITEL: "An introduction to operating systems", premier edition revisé, 1984, Addision-Wesley Publishing Co., Reading, MA, US; chapitres 8.4,13.8-13.10,18.7 *
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 26, no. 5, octobre 1983, pages 2560-2563, New York, US; D.A. GILES et al.: "Universal database manager" *
THE COMPUTER JOURNAL, vol. 29, no. 3, juin 1986, pages 269-276, Cambridge, GB; D.J. TAYLOR et al.: "A locally correctable B-tree implementation" *

Also Published As

Publication number Publication date
JPS63116232A (ja) 1988-05-20
GB8715199D0 (en) 1987-08-05
GB2196764A (en) 1988-05-05
AU8048587A (en) 1988-05-05
CA1285656C (fr) 1991-07-02
FR2606182B1 (fr) 1993-12-17
AU610092B2 (en) 1991-05-16
DE3736455A1 (de) 1988-05-05

Similar Documents

Publication Publication Date Title
US4945475A (en) Hierarchical file system to provide cataloging and retrieval of data
FR2606182A1 (fr) Procede de memorisation et de catalogage d&#39;informations, et ordinateur comprenant un systeme de classement mettant en oeuvre ce procede
BE1001068A4 (fr) Methode d&#39;ouverture rapide de fichiers a disques identifies par la denomination de chemins.
EP2069979B1 (fr) Cartographie dynamique de fragments
CN102184211B (zh) 文件系统和检索、写入、修改或删除文件的方法与装置
NO331459B1 (no) System og fremgangsmate for filtrering og organisering av elementer basert pa felles egenskaper og trekk
US6330567B1 (en) Searching system for searching files stored in a hard disk of a personal computer
WO2003098477A1 (fr) Moteur de recherche et de presentation
WO2006042257A2 (fr) Procede de sauvegarde et de restauration d&#39;un magasin de donnees a structure arborescente interconnecte
MXPA04006413A (es) Sistema de archivo para desplegar articulos de distintos tipos y desde diversos sitios fisicos.
CA2252087A1 (fr) Procede et dispositif pour architecture de stockage physique destinee a un environnement a dossiers partages
EP0263014B1 (fr) Procédé de gestion de fichiers sur un support d&#39;information non-effacable
AU2004225060B2 (en) A computer implemented compact 0-complete tree dynamic storage structure and method of processing stored data
US7483906B2 (en) Method and system for renaming consecutive keys in a B-tree
JP2000090103A (ja) 情報検索装置及び情報検索プログラムを記録したコンピュータ読み取り可能な記録媒体
EP1845461A1 (fr) Recherche rapide d&#39;attributs de fichiers
US7441097B2 (en) Data storage system and method for adaptive reconstruction of a directory structure
US20070050396A1 (en) Fast algorithm for building multimedia library database
CN1235313A (zh) 电脑文件名称搜寻系统
US20060129588A1 (en) System and method for organizing data with a write-once index
KR100295392B1 (ko) 동적 파일 시스템 구성 방법
JPS62186361A (ja) 情報検索装置
CA2539691C (fr) Procede d&#39;organisation d&#39;une base de donnees
JP3260706B2 (ja) パーソナルコンピュータのハードディスクに記憶されたファイルを検索する検索システム
JP2006252421A (ja) 適応マッピング

Legal Events

Date Code Title Description
ST Notification of lapse
ST Notification of lapse