DE69431499T2 - Meta-data-Struktur und Handhabung - Google Patents
Meta-data-Struktur und HandhabungInfo
- Publication number
- DE69431499T2 DE69431499T2 DE69431499T DE69431499T DE69431499T2 DE 69431499 T2 DE69431499 T2 DE 69431499T2 DE 69431499 T DE69431499 T DE 69431499T DE 69431499 T DE69431499 T DE 69431499T DE 69431499 T2 DE69431499 T2 DE 69431499T2
- Authority
- DE
- Germany
- Prior art keywords
- stream
- data
- storing
- data structure
- stream data
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 18
- 239000011159 matrix material Substances 0.000 description 17
- 238000003491 array Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere das Speichern von Daten auf einer Platte mittels eines Dateisystems.
- Herkömmliche Dateisysteme haben Schwierigkeiten mit der effizienten Speicherung von Dateidaten auf einer Platte. Viele herkömmliche Systeme verwenden einen Ansatz, in dem alle Daten auf einer Speichereinheit gleicher Größe auf einer Platte gespeichert werden. Dieser Ansatz speichert die Dateidaten jedoch nicht effizient auf der Platte. Insbesondere können Dateidaten in ihrer Größe variieren, so dass sie nicht gut für die vorbestimmte Größe der Speichereinheiten geeignet sind. Andere herkömmliche Systeme bieten einem Benutzer eine Option zum Übernehmen von einem aus zahlreichen verschiedenen Formaten. Die Entscheidung über das zu verwendende Format muss getroffen werden, bevor die Dateidaten für den Benutzer verfügbar sind. Daraus resultiert, dass die Wahl des Formats durch den Benutzer rein spekulativ ist und häufig nicht den tatsächlichen Dateidaten entspricht. Daraus resultiert wiederum, dass die Dateidaten häufig ineffizient gespeichert werden.
- Bei herkömmlichen Betriebssystemen wird jede Datei zu einer fixen Anzahl von Blöcken des Plattenraums zugeordnet, um Dateidaten und Steuerinformationen zu der Datei zu speichern. Die Blöcke weisen eine feste Größe auf, so dass die Einheiten schnell zugeordnet und freigegeben werden können. Die Steuerinformationen für die Dateien und die Dateidaten weisen häufig variable Größen auf, was zumindest zwei Probleme verursacht. Wenn erstens die Dateidaten und/oder Steuerinformationen nicht groß genug sind, um einen Block zu füllen, wird Plattenraum innerhalb der Zuordnungseinheit verschwendet. Wenn zweitens die Dateidaten und/oder Steuerinformationen zu groß sind, um in einem einzigen Block gespeichert zu werden, müssen sie in mehreren Blöcken gespeichert werden, wobei mehrere Zeiger verwendet werden, um zu spezifizieren, wo die Daten gespeichert sind.
- EP-A 0 347 032 gibt ein Verfahren und ein System an, in dem CKD (Count, Key, Data)- Daten auf Festblock (FBA)-Plattenaufzeichungseinrichtungen (DASD) gespeichert werden. Eine virtuelle Spur wird erzeugt, die eine physikalische CKD-Spur derart emuliert, dass die Byteverschiebung jeder CKD-Aufzeichnung auf der virtuellen CKD-Spur gleich der Byteverschiebung ist, die auf einer physikalischen CKD-Spur vorhanden ist. Dadurch können Computerprogramme, die CKD-formatierte Daten verwenden, in einem Emulationsmodus auf der FBA-Aufzeichnungseinrichtung aufzeichnen. Jeder FBA-Block umfasst einen Header außerhalb der Adressierung der virtuellen CKD-Spur, der einen Byteverschiebungs-Zeiger zum Anfang einer ersten im FBA-Block gespeicherten CKD-Aufzeichnung umfasst, wenn eine CKD-Aufzeichnung im FBA-Block beginnt; andernfalls gibt der Header an, dass keine CKD-Aufzeichnung im Block beginnt. Ein Indikator für die letzte Aufzeichnung ist in der Zählfeld-Emulation vorgesehen, um das Ende der virtuellen Spur zu finden.
- Bei herkömmlichen Dateisystemen werden Daten und Meta-Daten (d. h. Daten, die die Speicherung von anderen Daten beschreiben) als distinkte Einheiten behandelt. Insbesondere werden Daten und Meta-Daten in verschiedenen Formaten in herkömmlichen Dateisystemen gespeichert. Außerdem werden separate Tools für die Daten und Meta-Daten vorgesehen. Diese fragmentierte Behandlung von Daten und Meta-Daten führt zu größeren Rechenlasten und erhöht die Komplexität.
- Es ist deshalb eine Aufgabe der Erfindung, ein Verfahren und ein System zum Vereinfachen der Handhabung von Daten und Meta-Daten in einem Dateisystem anzugeben.
- Diese Aufgabe wird durch das Verfahren gemäß dem unabhängigen Anspruch 1, das System gemäß dem unabhängigen Anspruch 23 und das Speichermedium gemäß dem unabhängigen Anspruch 24 gelöst. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der unabhängigen Ansprüche.
- Gemäß dem ersten Aspekt der vorliegenden Erfindung ist ein Verfahren in einem Datenverarbeitungssystem mit einem Plattenspeicher sowie einer Verarbeitungseinrichtung zum Betreiben eines Betriebssystems angegeben. In diesem Verfahren werden die Daten in dem Plattenspeicher in einer ersten Strom-Datenstruktur mit variabler Größe gespeichert. Meta-Daten werden in dem Plattenspeicher in einer zweiten Strom-Datenstruktur mit variabler Größe gespeichert. Ein Strom-Beschreiber wird jede der Strom-Datenstrukturen gespeichert. Der Strom-Beschreiber enthält eine Typenkennung, die identifiziert, wie die Strom-Datenstruktur auf der Platte im Plattenspeicher gespeichert wird.
- Gemäß einem anderen Aspekt der vorliegenden Erfindung werden Datenströme in Strom- Datenstrukturen in dem Plattenspeicher gespeichert. Die Datenströme werden aus logisch beieinanderliegenden Datenbytes gebildet. Ein Strom-Beschreiber wird für jede Strom- Datenstruktur in dem Plattenspeicher gespeichert. Jeder Strom-Beschreiber enthält eine Typenkennung, die beschreibt, wie die Strom-Datenstruktur in dem Plattenspeicher gespeichert wird. Die Strom-Datenstrukturen, die verwandte Daten speichern, werden in einer ersten Datenstruktur variabler Größe zusammen mit den assoziierten Strom-Beschreibern gespeichert.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung werden Datenströme in dem Plattenspeicher in Strom-Datenstrukturen gespeichert. Ein Strom-Beschreiber wird für jede Strom-Datenstruktur in dem Plattenspeicher gespeichert. Jeder Strom-Beschreiber umfasst einen identifizierten Typ, der beschreibt, wie die Strom-Datenstrukturen in dem Plattenspeicher gespeichert werden. Strom-Datenstrukturen, die verwandte Daten speichern, werden in dem Plattenspeicher zusammen mit den assoziierten Strom-Beschreibern in einer Datenstruktur variabler Größe gespeichert. Gruppen von Datenstrukturen variabler Größe, die verwandte Daten speichern, werden in einer Katalog-Datenstruktur gespeichert.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren in einem Datenverarbeitungssystem mit einem Plattenspeicher praktiziert. In diesem Verfahren werden Datenströme in dem Plattenspeicher in Strom-Datenstrukturen gespeichert. Die Ströme werden durch logisch beieinanderliegende Datenbytes gebildet. Ein Strom- Beschreiber wird für jede Strom-Datenstruktur in dem Plattenspeicher gespeichert. Die Strom-Datenstrukturen, die verwandte Daten speichern, werden zusammen mit den assoziierten Strom-Beschreibern in entsprechenden Datenstrukturen variabler Größe in dem Plattenspeicher gespeichert. Jede Datenstruktur variabler Größe weist eine assoziierte Kennung auf. Die Datenstrukturen variabler Größe werden in einer Matrix aus identifzierbaren Speicherbereichen fester Größe des Plattenraums in dem Plattenspeicher gespeichert. Eine Abbildungsstruktur mit Einträgen, die eine Speicherbereich-Kennung für einen Speicherbereich in der Matrix spezifizieren, ist in dem Plattenspeicher gespeichert. Die Einträge werden durch die Kennungen der Datenstrukturen variabler Größe indiziert. Die Abbildungsstruktur wird verwendet, um eine der Datenstrukturen variabler Größe in der Matrix anhand ihrer Kennung zu identifizieren.
- Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems zum Praktizieren einer bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 2 ist ein Diagramm des Formats für einen Strom-Beschreiber, der in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird.
- Fig. 3 ist ein Diagramm eines Strom-Beschreibers für einen sehr kleinen Strom gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 4 ist ein Diagramm eines Strom-Beschreibers für einen kleinen Strom gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 5 ist ein Diagramm eines Strom-Beschreibers für einen großen Strom gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 6 ist ein Diagramm eines Strom-Beschreibers für einen komprimierten Strom gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 7 ist ein Diagramm eines Strom-Beschreibers für einen verschlüsselten Strom gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 8 ist ein Diagramm eines Strom-Beschreibers für eine kleine Transaktion gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 9 ist ein Diagramm eines Strom-Beschreibers für replizierte Daten gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 10 ist ein Diagramm eines Feld-Beschreibers gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 11 ist ein Diagramm eines O-Knotens gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 12 ist ein Diagramm von Strömen, die Eigenschaftsinformationen zu dem O-Knoten von Fig. 12 enthalten.
- Fig. 13 ist ein Diagramm einer Speicherbereichsmatrix gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 14 ist ein Diagramm einer Arbeits-ID-Abbildungsmatrix und einer O-Knoten-Speicherbereichmatrix gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Fig. 15 ist ein Diagramm eines Objektspeicherkatalogs gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
- Die bevorzugte Ausführungsform der vorliegenden Erfindung gibt ein Dateisystem an, das sowohl Daten als auch Meta-Daten als Gruppen von "Strömen" auf Platte speichert. Ein "Strom" ist eine logisch beieinanderliegende, frei zugreifbare Datenbytematrix variabler Größe, die als logische Einheit für das Speichern auf der Platte dient. Die meisten Programmzugriffe auf Daten in Dateien werden über Ströme vorgenommen. Jeder Strom kann auf der Platte in einer aus einer Vielzahl von Repräsentationen gespeichert werden. Jede der verschiedenen Repräsentationen ist gut für eine bestimmte Größe und Verwendung des Stroms geeignet. Dementsprechend wird jeder Strom in einer Repräsentation auf Platte gespeichert, der am besten für die Größe geeignet ist.
- Jeder Strom weist einen assoziierten Strom-Beschreiber auf, der in einer Dateisystem- Steuerstruktur gespeichert ist. Der Strom-Beschreiber wird verwendet, um auf den Strom zuzugreifen und Informationen zu dem Strom zu erhalten. Der Strom-Beschreiber sieht eine Beschreibung der Repräsentation vor, in der die Daten des Stroms gespeichert sind. Datenströme, die verwandte Daten enthalten, sind in Datenstrukturen verkapselt, die als O- Knoten bezeichnet werden. Ein O-Knoten ist eine Struktur variabler Größe, die ungefähr einer Datei, einem Verzeichnis oder einem Unterverzeichnis entspricht. Gruppen von verwandten O-Knoten werden wiederum in Datenstrukturen gespeichert, die als Objektspeicherkataloge oder Objektspeicher bezeichnet werden. Daten und Meta-Daten (wie etwa Objektspeicherkataloge) werden also auf gleiche Weise in einer Hierarchie beschrieben, die im Folgenden ausführlicher erläutert wird.
- Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems 10 zur Realisierung der bevorzugten Ausführungsform der vorliegenden Erfindung. Obwohl das System 10 von Fig. 1 ein Einprozessorsystem ist, sollte dem Fachmann deutlich sein, dass die vorliegende Erfindung auch in einem Mehrprozessorsystem wie etwa einem verteilten System realisiert werden kann. Das Datenverarbeitungssystem 10 umfasst eine zentrale Verarbeitungseinheit (CPU) 12, einen Speicher 14, einen Plattenspeicher 16, eine Tastatur 18, eine Maus 20 und eine Anzeigeeinrichtung 22. Der Plattenspeicher 16 kann Festplatten und andere Typen von Plattenspeichereinrichtungen umfassen. Die Tastatur 18, die Maus 20 und die Anzeigeeinrichtung 22 sind herkömmliche Ein-/Ausgabegeräte.
- Der Speicher 14 speichert eine Kopie eines Betriebssystems 24 einschließlich eines Dateisystemverwalters 26 zum Verwalten von im System gespeicherten Dateien. Das Betriebssystem 24 kann ein Objekt-orientiertes Betriebssystem sein. Die hier beschriebene bevorzugte Ausführungsform der vorliegenden Erfindung ist als Teil des Betriebssystems 24 implementiert. Obwohl die bevorzugte Ausführungsform der vorliegenden Erfindung als Teil des Betriebssystems 24 beschrieben ist, sollte dem Fachmann deutlich sein, dass die vorliegende Erfindung alternativ hierzu auch in anderen Typen von Code implementiert werden kann, die separat zum Betriebssystem vorgesehen sind.
- Wie zuvor genannt, sind Ströme in einer Anzahl von verschiedenen Repräsentationen in der bevorzugten Ausführungsform der vorliegenden Erfindung verfügbar. Um die verschiedenen Repräsentationen der Ströme zu verstehen, ist es nützlich, das Format der Strom- Beschreiber zu betrachten, die für die Ströme vorgesehen sind. Fig. 2 ist ein Diagramm des Formats eines Strom-Beschreibers 28. Der Strom-Beschreiber 28 kann jede der verschiedenen Repräsentationen von Strömen beschreiben, die in der bevorzugten Ausführungsform der vorliegenden Erfindung verfügbar sind. Der Strom-Beschreiber 28 umfasst drei Felder: ein Größe-Feld 30, ein Typ-Feld 32 und ein Beschreibungs-Feld 34. Das Größe-Feld 30 speichert einen Wert, der die Größe des Stroms in Bytes angibt. Das Typ-Feld 32 gibt den Typ des Stroms an, und das Beschreibungs-Feld 34 speichert eine Beschreibung des Stroms (d. h. die Form des Beschreibungs-Fels 34). Die in den Feldern 30, 32 und 34 gespeicherten Werte variieren mit der Repräsentation des assoziierten Stroms (was weiter unten ausführlicher beschrieben wird).
- Ein "sehr kleiner Strom" ist eine erste Wiedergabe eines Stroms, der in der bevorzugten Ausführungsform der vorliegenden Erfindung verfügbar ist. Der sehr kleine Strom wird verwendet, um Daten zu speichern, die relativ zu der Zuordnungseinheit des Speichermediums (d. h. zu einer Platte in dem Plattenspeicher 16) eine sehr kleine Größe aufweisen. Die "Zuordnungseinheit" des Speichermediums nimmt auf die Grundeinheit des Plattenspeicherplatzes in dem Plattenspeicher 16 Bezug, der für die Speicherung von Dateien vorgesehen ist. Zum Beispiel ist in FAT-basierten Dateisystemen die minimale Zuordnungseinheit ein Sektor. Leider ist ein Sektor häufig viel größer als die in dem System 10 erzeugten Stromdaten. Fig. 3 stellt das Format des Strom-Beschreibers 23 für den sehr kleinen Strom dar. Das Größe-Feld 30 speichert einen Wert, der die Größe des Stroms spezifiziert, und das Typ-Feld 32 spezifiziert, dass der Strom ein sehr kleiner Strom ist. Das Beschreibungs-Feld 34 speichert die Daten des Stroms und sieht somit eine unmittelbare Repräsentation der Daten des Stroms vor. Diese unmittelbare Repräsentation bietet eine sehr effiziente Möglichkeit zum Speichern von kleinen Datenmengen. Insbesondere sind die Daten direkt in den Strom-Beschreiber integriert, so dass einfach und schnell auf sie zugegriffen werden kann.
- Eine weitere Repräsentation, die in der bevorzugten Ausführungsform der vorliegenden Erfindung verfügbar ist, ist ein kleiner Strom. Der "kleine Strom" ist ein Strom, der in einer einzigen Datenausdehnung gespeichert ist. Eine Ausdehnung ist ein kontinuierlicher Lauf von Zuordnungseinheiten, der eine variable Größe aufweist. Die Stromdaten sind in einer Ausdehnung gespeichert, weil sie zu groß sind, um direkt in dem Strom-Beschreiber 28 gespeichert zu werden. Das Format des Strom-Beschreibers 28 für den kleinen Strom ist in Fig. 4 gezeigt. Das Typ-Feld 32 spezifiziert, dass der assoziierte Strom ein kleiner Strom ist, und das Beschreibungs-Feld 34 speichert einen Ausdehnungs-Beschreiber 36, der eine Ausdehnung 42 beschreibt, in welcher die Daten des Stroms gespeichert sind. Die Ausdehnung 42 wird auf einer Platte in dem Plattenspeicher 16 gespeichert. Der Ausdehnungs- Beschreiber 36 umfasst zwei Teilfelder 38 und 40. Das Teilfeld 38 speichert einen Wert, der die Länge der Ausdehnung 42 angibt, und das Teilfeld 40 speichert die Plattenadresse der Ausdehnung (d. h. wo die Ausdehnung in dem logischen Adressraum der Platte lokalisiert ist).
- Eine dritte Ausführungsform, die in der bevorzugten Ausführungsform der vorliegenden Erfindung verfügbar ist, ist ein "großer Strom". Ein großer Strom ist ein Strom, der in mehreren Ausdehnungen gespeichert wird. Der große Strom ist für das Speichern eines Stroms mit einer großen Datenmenge geeignet. Fig. 5 stellt das Format des Strom- Beschreibers 28 für einen derartigen großen Strom dar. Das Typ-Feld 32 spezifiziert, dass der Strom ein großer Strom ist. Das Beschreibungs-Feld 34 speichert einen zweiten Strom- Beschreiber 43, der einen Strom 44 mit Ausdehungs-Beschreibern beschreibt. Dieser zweite Strom-Beschreiber 43 beschreibt einen sehr kleinen Strom und umfasst ein Beschreibungs- Feld 34', das den Strom 44 der Ausdehnungs-Beschreiber speichert. Die Ausdehungs- Beschreiber 36', 36" und 36''' weisen dasselbe Format wie der Ausdehnungs-Beschreiber 36 auf, der mit Bezug auf Fig. 4 beschrieben wurde. Daraus resultiert, dass mehrere Ausdehnungen 42', 42" und 42" durch einen einzigen Strom 34' beschrieben werden. Wenn die Anzahl der Ausdehnungs-Beschreiber zu groß wird, kann der zweiten Strom-Beschreiber 43 einen kleinen Strom anstelle eines sehr kleinen Stroms beschreiben. Wenn weiterhin die Anzahl der Ausdehnungs-Beschreiber zu groß für einen kleinen Strom wird, kann der zweite Strom-Beschreiber 43 einen großen Strom beschreiben. Große Ströme werden allgemein verwendet, wenn keine großen kontinuierlichen Blöcke des Plattenraums verfügbar sind. Der große Strom erleichtert die Speicherung von großen Datenmengen als einzelnen Strom in Ausdehnungen, die über die Platte verteilt sein können. Daraus resultiert, dass große Ströme gut skaliert werden, wenn die Platten stärker fragmentiert werden und der Strom anwächst.
- Wenn die Größe des Stroms wächst, wird die Repräsentation des Stroms in einer Hierarchie von Strom-Repräsentationen nach oben befördert, um die effiziente Speicherung des Stroms zu unterstützen. Die Hierarchie umfasst den sehr kleinen Strom, den kleinen Strom und den großen Strom. Ein Strom kann von einem sehr kleinen Strom zu einem kleinen Strom und dann zu einem großen Strom befördert werden. Allgemein wird wie oben erläutet die passendste Repräsentation für einen Strom auf der Basis der Datenmenge und des Fragmentationsgrads des Stroms gewählt.
- Die vorstehende Beschreibung beschreibt die vier Grundtypen von Strömen, die in der bevorzugten Ausführungsform der vorliegenden Erfindung verfügbar sind. Das Typ-Feld 34 des Strom-Beschreibers 28 kann auch verwendet werden, um spezielle Beschreibungen der innerhalb eines Stroms gespeicherten Daten zu spezifizieren. Fig. 6 ist ein Beispiel für das Format des Strom-Beschreibers 28, wenn ein Strom komprimierte Daten speichert. Das Typ- Feld 32 speichert einen Wert, der spezifiziert, dass die Daten des Stroms komprimiert sind, während das Beschreibungs-Feld 34 einen Strom-Beschreiber für die komprimierten Daten speichert. Der indem Beschreibungs-Feld 34 gespeicherte Strom-Beschreiber kann je nach der im Strom enthaltenden Datenmenge ein sehr kleiner Strom, ein kleiner Strom oder ein großer Strom sein.
- Fig. 7 stellt das Format eines Strom-Beschreibers 28 dar, wenn der Strom-Beschreiber einen Strom von verschlüsselten Daten beschreibt. Das Typ-Feld 32 speichert einen Wert, der spezifiziert, dass der Strom verschlüsselte Daten speichert. Das Beschreibungs-Feld 34 speichert einen Strom-Beschreiber für die verschlüsselten Daten. Der Strom-Beschreiber umfasst auch einen Verschlüsselungs-Schlüsselwert 50. Der Verschlüsselungs-Schlüsselwert 50 kann verwendet werden, um die in dem Strom gespeicherten Daten zu entschlüsseln. Der Strom-Beschreiber für die verschlüsselten Daten, die in dem Beschreibungs- Feld 34 gespeichert sind, können ein sehr kleiner Strom, ein kleiner Strom oder ein großer Strom sein.
- Ein weiteres Beispiel für die Verwendung des Typ-Felds 32 für die Spezifikation von speziellen Beschreibungen von Daten ist in Fig. 8 gezeigt. Fig. 8 zeigt den Strom- Beschreiber 28 für eine kleine Transaktion. Eine kleine Transaktion nimmt auf eine Instanz Bezug, wobei Änderungen an Daten in einer Datenbank aufgezeichnet werden, ohne die Daten direkt zu ändern, bis eine ausreichende Anzahl von anderen Änderungen aufgetreten sind, um die mit einer Änderung aller betroffenen Daten assoziierte Rechenlast zu rechtfertigen. Das Typ-Feld 32 spezifiziert, dass das Beschreibungs-Feld 34 Daten für eine kleine Transaktion speichert. Das Beschreibungs-Feld 34 speichert einen ersten Strom-Beschreiber 52 und einen zweiten Strom-Beschreiber 54. Der erste Strom-Beschreiber 52 beschreibt einen Originaldatenstrom. Der zweite Strom-Beschreiber 54 beschreibt einen Strom, der die Änderungen spezifiziert, die an dem Originalstrom vorgenommen wurden. Der Originalstrom der Daten wird aktualisiert, indem die im zweiten Strom gespeicherten Änderungen implementiert werden.
- Fig. 9 zeigt ein Beispiel des Strom-Beschreibers 28 für einen Strom, der replizierte Daten speichert. Daten müssen häufig repliziert werden, so dass ein Datenverlust keine verheerenden Folgen hat. Insbesondere gibt es ausgewählte Datenstrukturen, für die das System mehrere Kopien auf einer Platte aufrechterhält. In derartigen Fällen werden die Strukturen zu zwei unterschiedlichen Positionen auf der Platte kopiert. Der Strom- Beschreiber 28 umfasst einen ersten Strom-Beschreiber 56 und einen zweiten Strom- Beschreiber 58 in seinem Beschreibungs-Feld 34. Der erste Strom-Beschreiber 56 beschreibt einen ersten Strom, der eine erste Kopie der Daten speichert, und der zweite Strom-Beschreiber 48 beschreibt einen zweiten Strom, der eine andere Kopie der Daten speichert. Das Typ-Feld 32 speichert einen Wert, der spezifiziert, dass der Strom replizierte Daten umfasst.
- Die bevorzugte Ausführungsform der vorliegenden Erfindung speichert Informationen zu Strömen in einem Feld-Beschreiber 60 wie etwa dem in Fig. 10 gezeigten. Der Feld- Beschreiber 60 umfasst ein Strom-ID-Feld 62, das eine Strom-ID speichert. Die Strom-ID ist eine vier Byte lange Identifikationsnummer, die den Strom eindeutig in einem O-Knoten identifiziert (die O-Knoten werden weiter unten ausführlicher beschrieben). Der Feld- Beschreiber 60 umfasst weiterhin ein Flags-Feld 64, das Flagbits enthält. Das letzte Feld des Feld-Beschreibers 60 ist der Strom-Beschreiber 28 für den Strom.
- Ströme werden in Übereinstimmung mit der assoziierten Funktionalität in "O-Knoten" gruppiert. Ein O-Knoten entspricht dem logischen Konzept eines Objekts und speichert gewöhnlich alle Ströme, die eine Datei, ein Verzeichnis oder ein Unterverzeichnis bilden. Jeder O-Knoten umfasst Informationen, die erforderlich sind, um die enthaltene Sammlung von Strömen variabler Größe zu beschreiben.
- Fig. 11 ist ein Diagramm, welches das Format eines O-Knotens 66 darstellt. Jeder O-Knoten 66 speichert funktionell verwandte Ströme. Jeder O-Knoten 66 enthält die folgenden Felder: ein Länge-Feld 68, ein Arbeits-ID-Feld 70, ein Flags-Feld 72, ein Klassen-ID-Feld 73 und ein Feld 76, das eine Matrix von Feld-Beschreibern 60 (wie in Fig. 10 gezeigt) speichert. Das Länge-Feld 68 speichert einen Wert, der die Länge des O-Knotens spezifiziert, während das Arbeits-ID-Feld 70 einen Index in eine Arbeits-ID-Abbildungsmatrix 104 (Fig. 14) speichert, was weiter unten ausführlicher beschrieben wird. Die Arbeits-ID ist vier Byte lang. Das Flags- Feld 72 (Fig. 11) speichert Flag-Bits, und das Klassen-ID-Feld 73 speichert eine Klassen-ID für den O-Knoten. Das Feld 76 speichert eine gepackte Matrix von Feld-Beschreibern 60 für jeden der Ströme, die mit dem O-Knoten 66 gespeichert sind. Die Anzahl der Ströme, die in der Matrix der Feld-Beschreibern von Feld 76 enthalten sind, kann variieren. Weiterhin kann die Länge jedes Stroms in der Matrix der Feld-Beschreiber von Feld 76 variieren. Dementsprechend ist der O-Knoten 66 eine Struktur variabler Größe. Die variable Größe der O- Knoten 66 unterstützt eine Minimierung der internen Fragmentierung in Zuordnungseinheiten auf der Platte im Plattenspeicher 16.
- Bestimmte Daten zu O-Knoten 66 sind nicht direkt in den O-Knoten integriert. Statt dessen werden diese Daten in separaten Strömen wie in Fig. 12 gezeigt gespeichert. Der Strom 78 speichert eine Anzahl von verschiedenen Typen von Statusinformationen zu dem assoziierten O-Knoten 66 (Fig. 11). Die Statusinformationen umfassen einen Zeitstempel, der in dem Feld 86 gespeichert wird und die Zeit angibt, zu dem der O-Knoten 66 erstellt wurde. Das Feld 88 speichert einen Zeitstempel, der den Zeitpunkt der letzten Änderung des O- Knotens 66 spezifiziert. Entsprechend speichert das Feld 90 einen Zeitstempel, der den letzten Zeitpunkt des letzten Zugriffs auf den O-Knoten 66 spezifiziert. Das Feld 92 speichert einen Wert, der die Größe des O-Knotens 66 spezifiziert, und das Feld 94 speichert einen Sicherheits-Beschreiber für den Eigentümer des O-Knotens. Alle in dem Strom 78 gespeicherten Informationen sind für die Verwaltung von im assoziierten O-Knoten 66 gespeicherten Dateidaten nützlich.
- Ein zweiter Strom 80 mit Statusinformationen ist ebenfalls in Fig. 12 gezeigt. Dieser Strom 80 umfasst drei Felder 96, 98 und 100. Jeder O-Knoten 66 ist in dem globalen Namensraum des Datenverarbeitungssystems 10 sichtbar, und der globale Namensraum ist eine logische Baumstruktur, in der jeder O-Knoten neben dem Stammknoten einen Elterknoten aufweist. Das Feld 96 speichert die Arbeits-ID des Elterknotens. Das Feld 98 speichert eine universelle, eindeutige fD (UUID) für den O-Knoten 66. Schließlich speichert das Feld 100 eine Klassen-ID, welche die Klasse des O-Knotens 66 spezifiziert. Jeder O-Knoten 66 ist eindeutig mit einer Klasse assoziiert. Insbesondere ist jeder O-Knoten 66 eine Instanz eines Objekts einer bestimmten Klasse.
- Es werden weiterhin zwei zusätzliche Ströme 82 und 84 mit Statusinformationen gespeichert. Der Strom 82 speichert den Namen des O-Knotens 66 relativ zu seinem Elter, und der Strom 84 speichert Zugriffskontrolllisten (für die Sicherheit verwendet) für den O-Knoten.
- Die Ströme 78, 80, 82 und 84 werden aus wenigstens zwei Gründen separat gespeichert. Erstens reduziert das separate Speichern die durchschnittliche Größe der O-Knoten 66. Die Ströme 78, 80, 82 und 84 werden nicht für jeden O-Knoten gespeichert. Daraus resultiert, dass die durchschnittliche Größe der O-Knoten abnimmt. Zweitens erlaubt das separate Speichern dieser Informationen den Programmzugriff auf verwandte Gruppen von Informationen, ohne dass ein komplexer Code für das Abrufen des Codes aus jedem O-Knoten 66 erforderlich ist.
- Die O-Knoten 66 (Fig. 11) werden in O-Knoten-Speicherbereichmatrizen 102 (Fig. 13) gespeichert. Die O-Knoten-Speicherbereichmatrix 102 ist eine Datenstruktur variabler Größe, die sich aus Matrizen mit Speicherbereichen fester Größe zusammensetzt. Die Größe der Speicherbereich (z. B. 4K) hängt von der Architektur des Datenverarbeitungssystems 10 ab, kann aber der Seitengröße des Systems 10 angepasst sein. Die Speicherbereiche sind in dem Beispiel von Fig. 13 mit 1 bis N nummeriert. Jeder Speicherbereich in der Matrix 102 enthält einen gepackten Satz von O-Knoten 66. In dem Beispiel von Fig. 13 ist deutlich, dass der Speicherbereich 2 nur einen einzigen Knoten enthält, während der Speicherbereich 1 zwei O-Knoten enthält und der Speicherbereich 3 drei O-Knoten enthält.
- Die O-Knoten-Speicherbereichmatrix 102 wird verwendet, um die Datenmenge, die beim Verschieben, Löschen oder Einfügen von Dateidaten verschoben werden muss. Die Granularität bei der Zuordnung und Freigabe von Blöcken des Plattenraumist ist fest. Mit anderen Worten werden Speicherblöcke in Speicherbereichen fester Größe zugeordnet und freigegeben. Wenn stattdessen eine Struktur variabler Größe zum Speichern von Dateidaten verwendet wird, ist die Granularität der Zuordnung nicht fest, wobei die Granularität für die Zuordnung übermäßig groß werden kann.
- Der Effizienz halber speichert das Betriebssystem 24 (Fig. 1) verwandte O-Knoten 66 (Fig. 11) in den gleichen Speicherbereichen in der Matrix 102 (Fig. 14) oder in Speicherbereichen, die nahe zueinander auf der Platte im Plattenspeicher 16 liegen. Diese Speicherstrategie minimiert die Suchzeit beim Suchen von O-Knoten 66 auf der Platte. Allgemein werden Dateien, auf die gewöhnlich gemeinsam zugegriffen wird, in denselben Speicherbereich platziert. Beispiele für Dateien, auf die gemeinsam zugegriffen wird, sind Dateien in einem gemeinsamen Unterverzeichnis oder Verzeichnis.
- Auf die O-Knoten-Speichermatrix 102 (Fig. 13) wird als Strom zugegriffen. Das System 10 speichert gewöhnlich mehrere O-Knoten-Speicherbereichmatrizen 102 und speichert damit mehrere Ströme, die O-Knoten-Speicherbereichmatrizen enthalten. Intern basieren alle Referenzen zwischen O-Knoten auf Arbeits-IDs. Die Lokalisierung eines O-Knotens 66 (Fig. 11) innerhalb eines Speicherbereichs einer Matrix 102 erfordert das Suchen nach einer Arbeits-ID für den O-Knoten. Die Arbeits-ID-Abbildungsmatrix 104 (Fig. 14) bildet von einer Arbeits-ID auf eine Speicherbereichnummer der O-Knoten-Speicherbereichmatrix 102 ab. Der nummerierte Speicherbereich wird dann nach einem O-Knoten mit einer entsprechenden Arbeits-ID durchsucht. Insbesondere dient die Arbeits-ID eines bestimmten O-Knotens 66 als Index für die Arbeits-ID-Abbildungsmatrix 104. Der Eintrag an dem spezifizierten Index identifiziert die Speicherbereichnummer, die den O-Knoten 66 speichert. Zum Beispiel speichert wie in Fig. 14 gezeigt die Einträge 106 und 108 der Arbeits-ID-Abbildungsmatrix 104 Werte, die angeben, dass die O-Knoten 66 mit den assoziierten Arbeits-IDs im Speicherbereich 1 gespeichert werden.
- Jeder O-Knoten 66 (Fig. 1) enthält einen Namensindexstrom, der unter den Strömen in der Matrix des Feld-Beschreibers 76 gespeichert wird. Der Namensindexstrom speichert einen B-Baum-Index für die in dem O-Knoten 66 enthaltenen Strom-Beschreiber. Der Namensindexstrom verwendet die Strom-ID eines Stroms als Schlüssel zum Lokalisieren des im O- Knoten 66 gespeicherten Strom-Beschreibers. Der B-Baum-Index wird ausführlicher in der gleichzeitig anhängigen europäischen Patenanmeldung mit dem Titel "Efficient Storage of Objects in a File System" mit der Nummer 0 632 364, die am gleichen Tag wie die vorliegende Patentanmeldung vom gleichen Anmelder eingereicht wurde.
- Wie verwandte Sammlungen von Strömen in O-Knoten 66 gesammelt werden (Fig. 11), so werden verwandte Sammlungen von O-Knoten in Datenstrukturen gesammelt, die als Objektspeicherkataloge bezeichnet werden. Die Arbeits-ID eines O-Knotens 66 dient als Basis für die Identifizierung eines O-Knotens in einem Objektspeicherkatalog. Ein Objektspeicherkatalog wird durch einen Objektspeicherkatalog-O-Knoten 110 wie in Fig. 15 gezeigt beschrieben. Der Objektspeicherkatalog-O-Knoten 110 umfasst das Länge-Feld 68, das Arbeits-ID-Feld 70, das Flags-Feld 72 und eine Matrix von Feld-Beschreibern 76, wie sie in anderen O-Knoten 66 gefunden werden. Die Matrix der Feld-Beschreiber 76 umfasst Feld- Beschreiber, in denen Strom-Beschreiber 112, 114 und 116 gespeichert werden.
- Der Strom-Beschreiber 112 beschreibt den Arbeits-ID-Abbildungsmatrixstrom 104, der Strom-Beschreiber 114 beschreibt den O-Knoten-Speicherbereichmatrixstrom 102 und der Strom-Beschreiber 116 beschreibt den Namensindexstrom 117. Weil der Arbeits-ID- Abbildungsmatrixstrom 104 und der O-Knoten-Speicherbereichmatrixstrom 102 verwandte Daten sind, werden sie in einem gemeinsamen O-Knoten gespeichert. (d. h. indem Objektspeicherkatalog-O-Knoten 110). Als solches bietet der Objektspeicherkatalog-O-Knoten 110 eine Möglichkeit zum Aufeinanderbeziehen des Arbeits-ID-Abbildungsmatrixstroms 104, des O-Knoten-Speicherbereichmatrixstroms 102 und des Namensindexstroms 117. Der Objektspeicherkatalog-O-Knoten 110 wird in der Gruppe von O-Knoten gespeichert, die den Katalog mit der Arbeits-ID 0 bilden. Die Arbeits-ID 0 ist per Definition immer in dem ersten Element des O-Knoten-Speicherbereichmatrixstroms 102 lokalisiert. Der erste Speicherbereich an der Arbeits-ID 0 ist ein hervorgehobener Speicherbereich mit einer bekannten Position. Auf die innerhalb des Speicherbereichs gespeicherten Datenstrukturen kann also einfach zugegriffen werden.
- Während die vorliegende Erfindung mit Bezug auf eine bevorzugte Ausführungsform beschrieben wurde, sollte dem Fachmann deutlich sein, dass verschiedene Änderungen an den Details und der Form vorgenommen werden können, ohne dass dadurch der in den beigefügten Ansprüchen definierte Erfindungsumfang verlassen wird.
Claims (24)
1. Verfahren zum Einsatz in einem Datenverarbeitungssystem (10) mit
Plattenspeicher (16) und einer Verarbeitungseinrichtung (12) zum Ausführen eines
Betriebssystems (24), zum Speichern von Daten in dem Plattenspeicher (16), wobei das
Verfahren dadurch gekennzeichnet ist, dass es umfasst:
a) Speichern der Daten in dem Plattenspeicher (16) in einer ersten Strom-
Datenstruktur (60) variabler Größe zur Aufnahme logisch
beieinanderliegender Daten-Bytes, wobei die erste Strom-Datenstruktur (60) eine erste
Kennung (62) hat;
b) Speichern von Meta-Daten (68, 70, 72, 73, 102, 104, 112, 114, 1·16, 117) in
dem Plattenspeicher (16) in einer zweiten Strom-Datenstruktur (66, 110)
variabler Größe zur Aufnahme logisch beieinanderliegender Daten-Bytes,
wobei die Meta-Daten (68, 70, 72, 73, 102, 104, 112, 114, 116, 117)
Speicherung der Daten beschreiben und einen Eintrag (117) zum Lokalisieren der
Daten über die erste Kennung (62) umfassen, wobei die zweite
Strom-Datenstruktur (66, 110) eine zweite Kennung (70, WorkID 0) hat, die zum
Lokalisieren der Meta-Daten (68, 70, 72, 73, 102, 104, 112, 114, 116, 117) über die
zweite Kennung (70, WorkID 0) vorgegeben ist; und
c) Speichern eines Strom-Beschreibers (28) eines vorgegebenen Formats, der
eine Beschreibungs-Kennung (34) enthält, die eine Beschreibung der
entsprechenden Strom-Datenstruktur (60, 66, 110) aufnimmt, so dass unter
Verwendung der Beschreibungs-Kennung (34) auf Daten und Meta-Daten
zugegriffen werden kann, sowie einer Typ-Kennung (32), die einen Typ der
Darstellung der Strom-Datenstruktur (60, 66, 110) in dem Plattenspeicher
(16) angibt, so dass Daten und Meta-Daten in gleicher Weise beschrieben
werden, für jede der Strom-Datenstrukturen (60, 66, 110).
2. Verfahren nach Anspruch 1, wobei der Schritt des Speicherns der Meta-Daten (68,
70, 72, 73, 102, 104, 112, 114, 116, 117) des Weiteren umfasst:
Speichern eines Hinweises (117) auf eine drille Strom-Datenstruktur (60; 78, 80,
82, 84), die verbundene Daten (86, 88, 90, 92, 94, 96, 98, 100) aufnimmt.
3. Verfahren nach Anspruch 2, wobei der Schritt des Speicherns des Hinweises (117)
des Weiteren umfasst:
Speichern eines B-Baum-Hinweises auf die dritte Strom-Datenstruktur (60; 78, 80,
82, 84).
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Schritt des Speicherns
des Strom-Beschreibers (28) für jede der Strom-Datenstrukturen (60, 66, 110) des
Weiteren umfasst:
Speichern eines Strom-Beschreibers (28) für jede der Strom-Datenstrukturen (60,
66, 110) in der jeweiligen ersten und zweiten Strom-Datenstruktur (60, 66, 110)
variabler Größe.
5. Verfahren nach einem der Ansprüche 1 bis 4, wobei der Schritt des Speicherns
der Daten in der ersten Strom-Datenstruktur (60) variabler Größe des Weiteren
umfasst:
Speichern eines Stroms von Daten in dem Plattenspeicher (16) in einer vierten
Strom-Datenstruktur (34; 36, 42), die logisch beieinanderliegende Bytes von Daten
umfasst; und
Speichern eines Strom-Beschreibers (28) für die vierte Strom-Datenstruktur (34;
36, 42) in dem Plattenspeicher (16).
6. Verfahren nach Anspruch 5, wobei der Schritt des Speicherns des Strom-
Beschreibers (28) für die vierte Strom-Datenstruktur (34; 36, 42) des Weiteren
umfasst:
Speichern des Strom-Beschreibers für die vierte Strom-Datenstruktur (34; 36, 42)
in einer anderen Strom-Datenstruktur (60).
7. Verfahren nach einem der Ansprüche 1 bis 6, das des Weiteren umfasst:
Speichern von Strom-Datenstrukturen (34; 36, 42), die Daten einer Datei
speichern, und ihrer dazugehörigen Strom-Beschreiber (28) in der zweiten Strom-
Datenstruktur (66, 110) variabler Größe in dem Plattenspeicher (16).
8. Verfahren nach einem der Ansprüche 1 bis 6, das des Weiteren umfasst:
Speichern von Strom-Datenstrukturen (34; 36, 42), die Daten eines Verzeichnisses
speichern, und ihrer dazugehörigen Strom-Beschreiber (28) in der zweiten Strom-
Datenstruktur (66, 110) variabler Größe in dem Plattenspeicher (16).
9. Verfahren nach einem der Ansprüche 1 bis 6, das des Weiteren umfasst:
Speichern von Strom-Datenstrukturen (34; 36, 42), die Daten eines
Unterverzeichnisses speichern, und ihrer dazugehörigen Strom-Beschreiber (28) in der zweiten
Strom-Datenstruktur (66, 110) variabler Größe in dem Plattenspeicher (16).
10. Verfahren nach einem der Ansprüche 1 bis 9, das des Weiteren umfasst:
Speichern von Gruppen der Strom-Datenstrukturen (66, 110) variabler Größe, die
verbundene Daten in einer Katalog-Datenstruktur (110) speichern.
11. Verfahren nach einem der Ansprüche 1 bis 10, das des Weiteren umfasst:
Speichern einer Strom-Datenstruktur (78, 80, 82, 84), die nicht in der zweiten
Datenstruktur (66, 110) variabler Größe gespeichert ist und die verbundene Daten
(86, 88, 90, 92, 94, 96, 98, 100) speichert, und ihres dazugehörigen Strom-
Beschreibers (28) in einer fünften Strom-Datenstruktur (66) variabler Größe in dem
Plattenspeicher (16).
12. Verfahren nach Anspruch 1, das des Weiteren umfasst:
Speichern der zweiten Strom-Datenstruktur (66, 110) variabler Größe und der
fünften Strom-Datenstruktur (66) variabler Größe in einer Anordnung (102) von
Speicherbereichen (Speicherbereiche 1 bis N) fester Plattenplatz-Größe in dem
Plattenspeicher (16).
13. Verfahren nach Anspruch 12, das des Weiteren den folgenden Schritt umfasst:
Speichern der Anordnung (102) von Speicherbereichen (Speicherbereiche 1 bis N)
fester Größe in einer sechsten Strom-Datenstruktur (110).
14. Verfahren nach Anspruch 13, das des Weiteren umfasst:
Speichern eines Strom-Beschreibers (28) für die sechste Strom-Datenstruktur
(110) in einer der Datenstrukturen variabler Größe, die verbundene Daten
speichert.
15. Verfahren nach Anspruch 14, das des Weiteren umfasst:
Speichern der Katalog-Datenstruktur (110) in einem vorgegebenen
Speicherbereich fester Größe der Anordnung (102) von Speicherbereichen (Speicherbereiche
1 bis N) fester Größe.
16. Verfahren nach einem der Ansprüche 1 bis 15, das des Weiteren umfasst:
Speichern von Strom-Datenstrukturen (66, 110) variabler Größe in einer
Anordnung (102) von Speicherbereichen (Speicherbereiche 1 bis N) fester Plattenplatz-
Größe in dem Plattenspeicher (16), wobei jeder der Speicherbereiche
(Speicherbereiche 1 bis N) eine dazugehörige Kennung hat;
Speichern einer Abbildungsstruktur (104), die Einträge (106, 108) aufnimmt, die
eine Speicherbereich-Kennung für einen Speicherbereich (Speicherbereiche 1 bis
N) in der Anordnung (102) angeben, wobei auf die Einträge (106, 108) durch die
Kennungen (70) der Datenstrukturen (66, 110) variabler Größe hingewiesen wird;
und
Verwendung der Abbildungsstruktur (104), um eine der Datenstrukturen (66, 110)
variabler Größe in der Anordnung (102) zu lokalisieren, wenn ihre Kennung (70)
gegeben ist.
17. Verfahren nach Anspruch 16, wobei die Anordnung (102) in dem Plattenspeicher
(16) in einer der Strom-Datenstrukturen (110) gespeichert wird und ein Strom-
Beschreiber (28) für den Strom, der die Anordnung (102) speichert, in dem
Plattenspeicher (16) gespeichert wird.
18. Verfahren nach Anspruch 16 oder 17, wobei die Abbildungsstruktur (104) in dem
Plattenspeicher (16) in einer der Strom-Datenstrukturen (110) gespeichert wird
und ein Strom-Beschreiber (28) für den Strom, der die Abbildungsstruktur (104)
speichert, in dem Plattenspeicher (16) gespeichert wird.
19. Verfahren nach Anspruch 18, wobei der Strom-Beschreiber (28) für den Strom, der
die Anordnung (102) speichert, und der Strom-Beschreiber (28) für den Strom, der
die Abbildungsstruktur (104) speichert, in einer ausgewählten der Datenstrukturen
(66, 110) variabler Größe gespeichert werden.
20. Verfahren nach Anspruch 19, wobei die ausgewählte Datenstruktur (66, 110)
variabler Größe in einem der Speicherbereiche (Speicherbereiche 1 bis N) der
Anordnung (102) gespeichert wird.
21. Verfahren nach einem der Ansprüche 1 bis 20, wobei das Beschreibungs-Feld (34)
eines bestimmten Strom-Beschreibers (28) eine dazugehörige
Strom-Datenstruktur speichert, wenn die Typ-Kennung (32) eine unmittelbare Darstellung der
Strom-Datenstruktur anzeigt.
22. Verfahren nach einem der Ansprüche 1 bis 21, wobei das Beschreibungs-Feld (34)
eines bestimmten Strom-Beschreibers (28) einen Verweis (36) auf einen Bereich
(42) speichert, der eine dazugehörige Strom-Datenstruktur speichert, wenn die
Typ-Kennung (32) eine Bereichs-Darstellung der Strom-Datenstruktur anzeigt.
23. Datenverarbeitungssystem (10), das umfasst:
Plattenspeicher (16);
eine Verarbeitungseinrichtung (12) zum Ausführen eines Betriebssystems (24),
gekennzeichnet durch
eine Einrichtung (12) zum Speichern der Daten in dem Plattenspeicher (16) in
einer ersten Strom-Datenstruktur (60) variabler Größe zur Aufnahme logisch
beieinanderliegender Daten-Bytes, wobei die erste Strom-Datenstruktur (60) eine erste
Kennung (62) hat;
eine Einrichtung (12) zum Speichern von Meta-Daten (68, 70, 72, 73, 102, 104,
112, 114, 116, 117) in dem Plattenspeicher (16) in einer zweiten
Strom-Datenstruktur (66, 110) variabler Größe zur Aufnahme logisch beieinanderliegender
Daten-Bytes, wobei die Meta-Daten (68, 70, 72, 73, 102, 104, 112, 114, 116, 117)
Speicherung der Daten beschreiben und einen Eintrag (117) zum Lokalisieren der
Daten über die erste Kennung (62) umfassen, wobei die zweite
Strom-Datenstruktur (66, 110) eine zweite Kennung (70, WorkID 0) hat, die zum Lokalisieren
der Meta-Daten (68, 70, 72, 73, 102, 104, 112, 114, 116, 117) über die zweite
Kennung (70, WorkID 0) vorgegeben ist; und
eine Einrichtung (12), die für jede der Strom-Datenstrukturen (60, 66, 110) einen
Strom-Beschreiber (28) eines vorgegebenen Formates, der eine Beschreibungs-
Kennung (34) enthält, die eine Beschreibung der entsprechenden
Strom-Datenstruktur (60, 66, 110) aufnimmt, so dass unter Verwendung der Beschreibungs-
Kennung (34) auf Daten und Meta-Daten zugegriffen werden kann; sowie eine
Typ-Kennung (32) speichert, die einen Typ der Darstellung der Strom-Datenstruktur
(60, 66, 110) in dem Plattenspeicher (16) angibt, so dass Daten und Meta-
Daten in gleicher Weise beschrieben werden.
24. Computerlesbares Medium, das durch Computer ausführbare Befehle umfasst, die
so ausgeführt sind, dass sie das Datenverarbeitungssystem (10) in die Lage
versetzen, das Verfahren nach einem der Ansprüche 1 bis 22 auszuführen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8548393A | 1993-06-30 | 1993-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69431499D1 DE69431499D1 (de) | 2002-11-14 |
DE69431499T2 true DE69431499T2 (de) | 2003-02-27 |
Family
ID=22191905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69431499T Expired - Lifetime DE69431499T2 (de) | 1993-06-30 | 1994-06-28 | Meta-data-Struktur und Handhabung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5758360A (de) |
EP (1) | EP0632367B1 (de) |
JP (2) | JP3926857B2 (de) |
CA (1) | CA2124752C (de) |
DE (1) | DE69431499T2 (de) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023744A (en) * | 1997-03-07 | 2000-02-08 | Microsoft Corporation | Method and mechanism for freeing disk space in a file system |
US5895470A (en) * | 1997-04-09 | 1999-04-20 | Xerox Corporation | System for categorizing documents in a linked collection of documents |
US7331058B1 (en) * | 1999-12-16 | 2008-02-12 | International Business Machines Corporation | Distributed data structures for authorization and access control for computing resources |
US7177940B1 (en) * | 2000-04-24 | 2007-02-13 | Microsoft Corporation | Representing a service discovery stream as an N-ary tree |
WO2001095331A2 (en) * | 2000-06-09 | 2001-12-13 | Koninklijke Philips Electronics N.V. | Method of implicit partitioning the storage space available on a storage medium |
JP4273636B2 (ja) | 2000-06-30 | 2009-06-03 | ソニー株式会社 | 情報記録装置及び方法、情報記録システム |
US6947947B2 (en) * | 2001-08-17 | 2005-09-20 | Universal Business Matrix Llc | Method for adding metadata to data |
US6636942B2 (en) | 2001-10-05 | 2003-10-21 | International Business Machines Corporation | Storage structure for storing formatted data on a random access medium |
US7146564B2 (en) * | 2001-12-21 | 2006-12-05 | Xmlcities, Inc. | Extensible stylesheet designs using meta-tag and/or associated meta-tag information |
US20050138011A1 (en) * | 2003-12-23 | 2005-06-23 | Royer Robert J.Jr. | Meta-data storage and access techniques |
US7633886B2 (en) * | 2003-12-31 | 2009-12-15 | University Of Florida Research Foundation, Inc. | System and methods for packet filtering |
WO2005069783A2 (en) * | 2004-01-09 | 2005-08-04 | T.W. Storage, Inc. | Methods and apparatus for searching backup data based on content and attributes |
US7627617B2 (en) | 2004-02-11 | 2009-12-01 | Storage Technology Corporation | Clustered hierarchical file services |
US7917480B2 (en) | 2004-08-13 | 2011-03-29 | Google Inc. | Document compression system and method for use with tokenspace repository |
US7068192B1 (en) * | 2004-08-13 | 2006-06-27 | Google Inc. | System and method for encoding and decoding variable-length data |
US8407239B2 (en) | 2004-08-13 | 2013-03-26 | Google Inc. | Multi-stage query processing system and method for use with tokenspace repository |
WO2006069228A2 (en) * | 2004-12-22 | 2006-06-29 | Musicgiants, Inc. | Unified media collection system |
US20070203874A1 (en) * | 2006-02-24 | 2007-08-30 | Intervoice Limited Partnership | System and method for managing files on a file server using embedded metadata and a search engine |
US20080052284A1 (en) * | 2006-08-05 | 2008-02-28 | Terry Stokes | System and Method for the Capture and Archival of Electronic Communications |
US20080154986A1 (en) * | 2006-12-22 | 2008-06-26 | Storage Technology Corporation | System and Method for Compression of Data Objects in a Data Storage System |
US8683228B2 (en) * | 2007-01-16 | 2014-03-25 | Terry Lee Stokes | System and method for WORM data storage |
US8005790B2 (en) * | 2007-02-07 | 2011-08-23 | Agfa Healthcare N.V. | Object cloning management system and method |
US20100088283A1 (en) * | 2008-10-03 | 2010-04-08 | Microsoft Corporation | System and method for managing database applications |
US9747300B2 (en) | 2011-06-15 | 2017-08-29 | Amazon Technologies, Inc. | Local networked storage linked to remote networked storage system |
US9069707B1 (en) * | 2011-11-03 | 2015-06-30 | Permabit Technology Corp. | Indexing deduplicated data |
US9953042B1 (en) | 2013-03-01 | 2018-04-24 | Red Hat, Inc. | Managing a deduplicated data index |
US9317213B1 (en) * | 2013-05-10 | 2016-04-19 | Amazon Technologies, Inc. | Efficient storage of variably-sized data objects in a data store |
US9557937B2 (en) | 2013-08-21 | 2017-01-31 | Netapp, Inc. | Systems, methods, and computer program products implementing hybrid file structures for data storage |
US9772787B2 (en) * | 2014-03-31 | 2017-09-26 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
US20230034727A1 (en) * | 2021-07-29 | 2023-02-02 | Rakuten Group, Inc. | Blur-robust image segmentation |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4536837A (en) * | 1982-05-25 | 1985-08-20 | Elxsi | Improved disk file allocation and mapping system utilizing cylinder control blocks and file map having unbalanced tree structure |
US4775969A (en) * | 1986-05-15 | 1988-10-04 | Aquidneck Systems International, Inc. | Optical disk storage format, method and apparatus for emulating a magnetic tape drive |
US5119291A (en) * | 1987-03-26 | 1992-06-02 | International Business Machines Corporation | Modular data storage directories for large-capacity data storage units wherein the index to the records in a sector is located in the next adjacent sector |
JPH01306917A (ja) * | 1988-05-20 | 1989-12-11 | Internatl Business Mach Corp <Ibm> | 記憶制御方法及び装置 |
US5301304A (en) * | 1988-05-20 | 1994-04-05 | International Business Machines Corporation | Emulating records in one record format in another record format |
US5200864A (en) * | 1989-06-28 | 1993-04-06 | International Business Machines Corporation | Combining small records into a single record block for recording on a record media |
US5276874A (en) * | 1989-08-11 | 1994-01-04 | Digital Equipment Corporation | Method for creating a directory tree in main memory using an index file in secondary memory |
JP2746734B2 (ja) * | 1990-06-08 | 1998-05-06 | 富士通株式会社 | ストリームファイルに対してのアクセス処理方式 |
US5206939A (en) * | 1990-09-24 | 1993-04-27 | Emc Corporation | System and method for disk mapping and data retrieval |
US5297124A (en) * | 1992-04-24 | 1994-03-22 | Miltope Corporation | Tape drive emulation system for a disk drive |
US5506983A (en) * | 1992-07-06 | 1996-04-09 | Microsoft Corporation | Method and system for transactioning of modifications to a tree structured file |
US5394534A (en) * | 1992-09-11 | 1995-02-28 | International Business Machines Corporation | Data compression/decompression and storage of compressed and uncompressed data on a same removable data storage medium |
US5454103A (en) * | 1993-02-01 | 1995-09-26 | Lsc, Inc. | Method and apparatus for file storage allocation for secondary storage using large and small file blocks |
US5613105A (en) * | 1993-06-30 | 1997-03-18 | Microsoft Corporation | Efficient storage of objects in a file system |
-
1994
- 1994-05-31 CA CA002124752A patent/CA2124752C/en not_active Expired - Lifetime
- 1994-06-23 JP JP14192394A patent/JP3926857B2/ja not_active Expired - Lifetime
- 1994-06-28 EP EP94110018A patent/EP0632367B1/de not_active Expired - Lifetime
- 1994-06-28 DE DE69431499T patent/DE69431499T2/de not_active Expired - Lifetime
-
1996
- 1996-08-02 US US08/693,491 patent/US5758360A/en not_active Expired - Lifetime
-
2006
- 2006-12-21 JP JP2006345022A patent/JP4034331B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0756787A (ja) | 1995-03-03 |
JP4034331B2 (ja) | 2008-01-16 |
EP0632367A1 (de) | 1995-01-04 |
CA2124752C (en) | 2005-04-12 |
DE69431499D1 (de) | 2002-11-14 |
JP3926857B2 (ja) | 2007-06-06 |
US5758360A (en) | 1998-05-26 |
JP2007128543A (ja) | 2007-05-24 |
EP0632367B1 (de) | 2002-10-09 |
CA2124752A1 (en) | 1994-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69431499T2 (de) | Meta-data-Struktur und Handhabung | |
DE69430027T2 (de) | Effiziente Speicherung eines Objektes in einem Dateisystem | |
DE69032517T2 (de) | Verfahren und System zum dynamischen Identifizieren von Datenträgern in einem Gestaltungsdateisystem | |
DE3856090T2 (de) | Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität | |
DE69704085T2 (de) | Optimierung des zugriffes auf multiplexierte datenströme | |
DE3780807T2 (de) | Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien. | |
DE60112257T2 (de) | Virtuelles Dateisystem für dynamisch erzeugte Webseiten | |
DE3784190T2 (de) | Eintragung eines datenbasisindex in das journal zur verbesserten rueckstellung. | |
DE69130312T2 (de) | Dateisystem mit Schreib/Lesespeicher und einmaligen Schreib- und mehrmaligen Lese-speicher | |
DE69431186T2 (de) | Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem | |
DE102013208930B4 (de) | Zusammenfassen von Einträgen in einem Deduplizierungs-lndex | |
DE69031491T2 (de) | Hypertextdatenverarbeitungssystem und Verfahren | |
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
DE69332672T2 (de) | Verfahren und System zum Einbinden von Änderungen in hierarchisch strukturierten Daten | |
DE69623227T2 (de) | Verfahren und System zur Berechnung von Dateinamen mit hoher Wahrscheinlichkeit der Eindeutigkeit | |
DE69803924T2 (de) | Mappedvirtuelsystem(mvs)-vorrichtungssicherung für einen datenprozessor unter verwendung einer datenspeicherungsuntersystemschnappschussmöglichkeit | |
DE69421370T2 (de) | Verfahren und Vorrichtung zur Datenspeicherung | |
DE60025749T2 (de) | Dateisystemabbildübertragung zwischen ungleichen dateisystemen | |
DE112008003826B4 (de) | Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung | |
DE3151745C2 (de) | ||
DE69310908T2 (de) | Verfahren und geraet um nicht loeschbare dateien auf ein speichermedium zu schreiben | |
DE69600754T2 (de) | Aufteilung einer Teilung in einem Plattenspeichersystem | |
DE69603180T2 (de) | Verfahren und vorrichtung zur freispeicherverwaltung und zum datenstrukturintegritätsschutz in nichtflüchtigen speichern | |
DE69024932T2 (de) | Verfahren um Dokumente, die ein bestimmtes Attribut haben, mit Hilfe eines vektorrelationalen charakteristischen Objektes zu identifizieren | |
DE19961499A1 (de) | Caching von Objekten in Platten-gestützten Datenbanken |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |