DE60112257T2 - Virtuelles Dateisystem für dynamisch erzeugte Webseiten - Google Patents

Virtuelles Dateisystem für dynamisch erzeugte Webseiten Download PDF

Info

Publication number
DE60112257T2
DE60112257T2 DE60112257T DE60112257T DE60112257T2 DE 60112257 T2 DE60112257 T2 DE 60112257T2 DE 60112257 T DE60112257 T DE 60112257T DE 60112257 T DE60112257 T DE 60112257T DE 60112257 T2 DE60112257 T2 DE 60112257T2
Authority
DE
Germany
Prior art keywords
file
data
block
directory
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.)
Expired - Lifetime
Application number
DE60112257T
Other languages
English (en)
Other versions
DE60112257D1 (de
Inventor
David Marshall Holcomb
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE60112257D1 publication Critical patent/DE60112257D1/de
Application granted granted Critical
Publication of DE60112257T2 publication Critical patent/DE60112257T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Description

  • Verweis auf verwandte Anmeldungen
  • Diese Anmeldung betrifft einen Gegenstand, der in der parallelen US-Anmeldung 09/686,553 "Dynamically-Generated Web Pages" von Holcomb et al., eingereicht am 11. Oktober 2000, beschrieben wird. Diese Anmeldung hat den gleichen Inhaber wie die vorliegende Erfindung.
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im allgemeinen Dateisysteme für Massenspeichereinrichtungen und insbesondere ein virtuelles Dateisystem für eine Peripherieeinrichtung, die eine große blockorientierte Massenspeichereinrichtungs-Schnittstelle für ein Host-System vorsieht, während eine wesentlich geringere Speichergröße in der Peripherieeinrichtung verwendet wird und die von dem Host gelesenen Datenblöcke dynamisch erzeugt werden.
  • Hintergrund der Erfindung
  • Massenspeicher-Peripherieeinrichtungen, beispielsweise Plattenlaufwerke, werden heutzutage allgemein in Computersystemen zum Speichern und Abrufen von Daten verwendet. Diese Daten werden in Blöcken gespeichert. Es können in der Peripherieeinrichtung viele verschiedene logische Datengruppen gespeichert werden, die im allgemeinen als "Dateien" bezeichnet werden. Während Datenblöcke typischerweise eine feste Größe haben, kann eine Datei mehr Daten enthalten, als in einen einzelnen Datenblock paßt, und dadurch kann eine Datei aus einer Anzahl von Datenblöcken bestehen. Ferner müssen zahlreiche Datenblöcke, die eine Datei bilden, nicht zusammen angeordnet sein, sondern können an verschiedenen Stellen der Peripherieeinrichtung gespeichert sein. Um den Zugriff auf die Datendateien durch das Computersystem zu vereinfachen, sehen Massenspeicher-Peripherieeinrichtungen typischerweise ein Dateisystem vor, das die Organisation der Datenblöcke für jede Datei in der Peripherieeinrichtung beschreibt.
  • Bei üblichen Massenspeicher-Peripherieeinrichtungen werden Datenblöcke nur unter der ausschließlichen Steuerung des Computersystems gelesen und geschrieben. Mit anderen Worten kann das Computersystem eine eigene, unabhängige Aufzeichnung aufbewahren, die angibt, wo bestimmte Datenblöcke und Dateien auf der Peripherieeinrichtung gespeichert sind, und es kann davon ausgehen, daß diese Datenblöcke und Dateien dort auch tatsächlich vorliegen. Um die Speicherung und die Abfrage von häufig verwendeten Datenblöcken zu beschleunigen, verwenden Computersysteme ferner häufig einen Datenblock-Cache innerhalb des Computersystems selbst, welcher die Datenblöcke speichert, auf die oft zugegriffen wird. Das Computersystem kann einen Datenblock aus dem Cache wesentlich schneller als aus der Peripherieeinrichtung lesen, und daher durchsuchen Computersysteme ihren Cache hinsichtlich eines erwünschten Datenblocks und fordern diesen von der Peripherie nur an, wenn dieser nicht im Cache zu finden ist.
  • Der oben beschriebene Cache-Mechanismus arbeitet zufriedenstellend bei traditionellen Massenspeicher-Peripherieeinrichtungen, beispielsweise Plattenlaufwerke, in denen Datenblöcke nur unter der ausschließlichen Steuerung des Computersystems gelesen und geschrieben werden. Solche Plattenlaufwerke haben üblicherweise ausreichend große Speicherkapazitäten, um die Tabellen, welche das Dateisystem implementieren, sowie die Datenblöcke für alle diese Dateien zu speichern. Jedoch können bestimmte adaptive Massenspeicher-Peripherieeinrichtungen, beispielsweise diejenigen, die in der oben genannten parallelen Anmeldung von Holcomb et al. beschrieben sind, Datenblöcke unabhängig von der ausschließlichen Steuerung durch das Computersystem dynamisch erzeugen, löschen oder neu anordnen. Als Folge kann das Computersystem nicht mehr davon ausgehen, daß die Datenblöcke in seinem Cache zu den Datenblöcken in der Peripherieeinrichtung passen, wodurch sich eine fehlerhafte Operation ergeben kann, wenn das Computersystem statt der von der Peripherieeinrichtung stammenden Dateien die im Cache gespeicherten Dateien liest. Um einen korrekten Betrieb zu gewährleisten, muß die Peripherieeinrichtung das Computersystem jedesmal informieren, wenn es Datenblöcke dynamisch erzeugt, löscht oder neu anordnet, und das Computersystem muß den Cache und andere Dateisystemtabellen löschen und neu aufbauen. Einige Computersysteme sehen Mechanismen für die Peripherieeinrichtung vor, um das Computersystem dahingehend zu informieren; jedoch können die Schritte des Löschens und Neuaufbauens des Caches und anderer Dateisystemtabellen zeitaufwendig und ineffizient sein. Andere Computersysteme unterstützen keinerlei solcher Mechanismen.
  • Eine ähnliche Beschränkung nicht traditioneller Peripherieeinrichtungen ist, daß diese möglicherweise nicht ausreichend Speicher umfassen, um alle Datenblöcke zu speichern, die zum Vorsehen eines großen Dateisystems benötigt werden. Als Folge können die Anzahl und Größe von in der Peripherieeinrichtung gespeicherten Dateien ungünstig beschränkt sein, wodurch die Peripherieeinrichtung bestimmte Dateien dynamisch löschen und andere erzeugen muß und dies zu dem oben betrachteten Synchronisierungsproblem zwischen dem Computersystem und der Peripherieeinrichtung führt.
  • Die folgenden Dokumente des Stands der Technik können hinsichtlich der vorliegenden Erfindung relevant sein. Die Druckschrift US-A-6,081,883 offenbart ein skalierbares Computersystem mit einem Verbindungsbus, einem Host-Prozessor, der mit dem Verbindungsbus gekoppelt ist, und einem oder mehreren funktionsspezifischen Prozessoren einschließlich eines Netzwerk-Prozessors, eines Datei-Prozessors und eines Speicher-Prozessors, wobei der eine oder die mehreren funktionsspezifischen Prozessoren mit dem Verbindungsbus verbunden sind, um mit anderen Prozessoren zu kommunizieren, wobei jeder funktionsspezifische Prozessor einen damit verbundenen Pufferspeicher aufweist, und der Pufferspeicher ein oder mehrere Segmente hat, die als funktionsspezifische Caches dienen, um funktionsspezifische Daten zwischenzuspeichern, einschließlich Netz-Verarbeitungsdaten, Datei-Verarbeitungsdaten und Speicher-Verarbeitungsdaten, wobei die Segmente dynamisch verschiedenen Prozessoren zugeordnet sind. Ferner kann das Computersystem einen mit dem Verbindungsbus verbundenen Dateispeicher-Prozessor (file storage processor, FSP), einen oder mehrere mit dem FSP verbundene Datenspeichereinrichtungen, wobei jede Dateneinrichtung Dateien und zugeordnete Metadaten aufweist, einen mit dem FSP verbundenen Metadaten-Cache zum Puffern der Metadaten sowie einen Schreib-Cache umfassen, der mit dem FSP verbunden ist, um die von dem FSP stammenden Dateischreibeoperationen zwischenzuspeichern.
  • Die Druckschrift WO 00/57315 A offenbart ein System zum Unterhalten von Dateiobjektdaten mit einer Serverkomponente, wobei die Serverkomponente einem Mechanismus zur entfernten (Remote-) Speicherung, der zumindest einige der Dateiobjektdaten unterhält, sowie einer Client-Komponente zugeordnet ist, wobei die Client-Komponente mit dem Mechanismus zur lokalen Speicherung verknüpft ist, die zumindest einige der Dateiobjektdaten unterhält, wobei die Client-Komponente eingerichtet ist, eine Anfrage hinsichtlich Dateiobjektdaten zu empfangen, und zu ermitteln, ob die Dateiobjektdaten lokal oder entfernt gelegen un terhalten werden, um Zugriff auf die lokalen unterhaltenen Dateidaten vorzusehen, wenn diese lokal unterhalten werden, und um mit der Serverkomponente zu kommunizieren, um Zugriff auf die entfernt unterhaltenen Dateidaten vorzusehen, wenn diese entfernt gelegen bzw. remote unterhalten werden.
  • Die Druckschrift EP-A-1,041,572 offenbart einen nicht-flüchtigen Speicher und eine Wiedergabevorrichtung für einen nicht-flüchtigen Speicher zum Segmentieren einer Signaldatendatei in Blöcken, die jeweils eine vorbestimmte Länge haben und eine Attributdatei jeder einzelnen Datendatei zur Verwaltung hinzufügen, wobei der nicht-flüchtige Speicher einen Datenbereich für eine Wiedergabeverwaltungsdatei zum Verwalten einer Vielzahl von Dateien, die jeweils aus Blöcken bestehen, sowie einen Dateiverwaltungsbereich für Dateiverwaltungsinformation aufweist, um die Vielzahl von Datendateien und die Wiedergabeverwaltungsdatei zu verwalten. Gemäß einer Ausführung ist die Dateiverwaltungsinformation eine Dateibelegungstabelle, und die jeder einzelnen Datendatei hinzugefügte Attributdatei enthält eine Anzahl von Blöcken, die jede einzelne Datendatei bilden, wobei die Wiederherstellungsverwaltungsdatei Daten enthält, welche die Wiedergabereihenfolge einer Vielzahl von Datendateien darstellt, welche in dem Datenbereich aufgezeichnet wurden.
  • Es ist ein Ziel der vorliegenden Erfindung, ein neues und verbessertes Dateisystem sowie ein Verfahren vorzusehen, um auf eine große Anzahl von Datendateien zuzugreifen, wodurch Dateien erzeugt, gelöscht und neu angeordnet werden können, ohne daß das Host-Computersystem seinen Cache und andere Dateisystemtabellen löschen und neu aufbauen muß, ohne einen großen Speicherumfang zu erfordern.
  • Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 und durch eine Vorrichtung nach Anspruch 9 gelöst.
  • Abriß der Erfindung
  • In einer bevorzugten Ausführung sieht die Erfindung ein virtuelles Dateisystem vor, das eine große Anzahl von Datendateien umfassen kann. Das virtuelle Dateisystem hat eine vorbestimmte Verzeichnis- und Dateistruktur sowie einen linearen Dateibereich. Der lineare Dateibereich umfaßt einen Verzeichnisbereich und einen Dateibelegungstabellen-Bereich, wobei durch das vorbestimmte Wesen der Verzeichnisstruktur die Datenblöcke bei einer Leseanfra ge berechenbar sind und nicht in dem Dateisystem gespeichert werden müssen. Der lineare Dateibereich umfaßt ferner einen Dateibereich mit einer vorbestimmten Anzahl von Dateien mit vorbestimmter Größe. Jedes Verzeichnis aus einer Gruppe von Verzeichnissen der untersten Ebene der Verzeichnisstruktur enthält eine einzelne Datei. Die bestimmte einzelne Datei in dem Dateibereich, der einem bestimmten Verzeichnis der untersten Ebene zugeordnet ist, wird vorzugsweise zu dem Zeitpunkt vorbestimmt, an dem auf das Verzeichnis der untersten Ebene zum erstenmal zugegriffen wird, wodurch eine bislang nicht verwendete oder am längsten unbenutzt gebliebene (least-recently-used, LRU) Datei zugeordnet werden kann, um zu vermeiden, daß der Cache bzw. Zwischenspeicher des Hosts gelöscht und neu aufgebaut werden muß. Die Dateiblöcke der Datei werden vorzugsweise dynamisch erzeugt und dem Dateisystem bei Anfrage geliefert oder einer Datei als Alias zugeordnet, die in einem Neben-Dateisystem gespeichert ist, das über das virtuelle Dateisystem ausgelesen wird.
  • Kurzbeschreibung der Zeichnungen
  • Die oben genannten Merkmale der vorliegenden Erfindung, deren sich ergebende Vorteile und die Erfindung selbst sind am besten unter Bezugnahme auf die folgende detaillierte Beschreibung der bevorzugten Ausführung der Erfindung nachzuvollziehen, wenn diese in Verbindung mit den beigefügten Zeichnungen herangezogen wird, wobei die Zeichnungen im einzelnen darstellen:
  • 1 ist eine schematische Darstellung einer beispielhaften vorbestimmten Dateistruktur für ein virtuelles Dateisystem gemäß der vorliegenden Erfindung;
  • 2 ist eine schematische Darstellung des Dateibereichs des virtuellen Dateisystems der 1;
  • 3 ist eine detailliertere schematische Darstellung eines beispielhaften Verzeichnisbereichs des Dateibereichs von 2;
  • 4 ist eine detailliertere schematische Darstellung eines beispielhaften Dateizuordnungstabellenbereichs des Dateibereichs von 2;
  • 5 ist ein Flußdiagramm eines Verfahrens zum Lesen von Daten aus dem virtuellen Dateisystem von 1;
  • 6 ist ein detaillierteres Flußdiagramm eines Datenblock-Berechnungsabschnitts des Flußdiagramms von 5; und
  • 7 ist ein Blockdiagramm einer Vorrichtung zum Vorsehen des virtuellen Dateisystems von 1,
  • Beschreibung der bevorzugten Ausführung
  • Bezugnehmend auf die Zeichnungen ist ein virtuelles Dateisystem 10 (auch als virtual filesystem, "VFS", bezeichnet) dargestellt, das gemäß einem neuen Verfahren 100 zum Lesen von Daten aus einer Vorrichtung 50 ausgebildet ist, in der das Dateisystem 10 implementiert ist. Das virtuelle Dateisystem 10 sieht vorzugsweise einen großen virtuellen Dateibereich vor, der mit nur relativ kleinen Speicherplatz implementiert ist, indem eine Verzeichnishierarchie definiert wird, so daß Datenblöcke, welche den Verzeichnissen entsprechen (und einer zugeordneten Dateizuordnungstabelle, die hier auch als "FAT" bezeichnet wird), algorithmisch berechnet werden können und indem die Datendateien mit der Verzeichnishierarchie genau oder ungefähr zum Zeitpunkt der Benutzung verknüpft werden, so daß die Datenblöcke, welche den Datendateien entsprechen, genau oder ungefähr zum Zugriffszeitpunkt dynamisch erzeugt werden können. Die vorliegende Erfindung wird vorzugsweise auf ein FAT-basierendes Dateisystem angewandt, beispielsweise das weitverbreitete MS-DOS-Dateisystem, das einem Fachmann weitgehend bekannt ist.
  • Es ist für den Fachmann ersichtlich, daß ein Dateisystem eine Struktur von Verzeichnissen, Dateien und anderer interner Information ist, das ein Betriebssystem dazu verwendet, diese Verzeichnisse und Dateien zu lokalisieren und auf diese zuzugreifen. Die Verzeichnisse sind typischerweise in einer Verzeichnishierarchie organisiert, in der einige Verzeichnisse mit anderen Verzeichnissen in einer Vorgänger-Nachfolger(parent-and-child)-Baumstruktur zusammenhängen. Die Dateien sind innerhalb von Verzeichnissen angeordnet. Die Datenstrukturen, die das Dateisystem bilden, belegen vorzugsweise im Speicher einen linearen Dateibereich. Ein virtuelles Dateisystem ist ein System, in dem die Verzeichnisse und Dateien in einem linearen Dateibereich zu existieren scheinen, wenn diese von einem Host-Computer oder von einer anderen Einrichtung außerhalb des Dateisystems aus betrachtet werden, wobei diese jedoch möglicherweise in einem linearen Dateibereich nicht tatsächlich vorliegen oder sogar möglicherweise nicht einmal in dem physikalischen Speicher vorliegen, solange der Host-Computer nicht auf das Dateisystem zugreift, um eine Operation bezüglich eines Verzeichnisses oder einer Datei auszuführen.
  • Unter Bezugnahme auf die beispielhafte vordefinierte Dateistruktur 15 der 1 ist am besten ersichtlich, daß das virtuelle Dateisystem 10 der vorliegenden Erfindung eine vorbestimmte und festgelegte Verzeichnishierarchie 20 hat, die mit einem Root-Verzeichnis bzw. Ausgangsverzeichnis "\" 21 beginnt. Unterhalb des Root-Verzeichnisses 21 ist ein Satz 22 Verzeichnisse der ersten Ebene vorgesehen, die Unterverzeichnisse des Root-Verzeichnisses sind. Die beispielhafte Verzeichnishierarchie 20 enthält vier Verzeichnisse der ersten Ebene, die mit D1 bis D4 bezeichnet sind. Die Anzahl von Unterverzeichnissen, die unterhalb einem Verzeichnis höherer Ebene enthalten sind, wird als "Verzweigung" bzw. "fanout" bezeichnet; die beispielhafte Verzeichnisstruktur verwendet in allen Ebenen eine Verzweigung bzw. einen Verzweigungsgrad von insgesamt vier, wobei jedoch in der 1 aus Klarheitsgründen nur ein Satz von vier Unterverzeichnissen für jede Ebene dargestellt ist. Das Verzeichnis erster Ebene D2 23 umfaßt vier Verzeichnisse zweiter Ebene, die mit D9 bis D12 bezeichnet sind. Das Verzeichnis zweiter Ebene D11 24 enthält vier Verzeichnisse dritter Ebene, die mit D45 bis D48 bezeichnet sind. Die Verzeichnisse erster Ebene und die Verzeichnisse zweiter Ebene werden als Zwischenebeneverzeichnisse dahingehend betrachtet, als daß sie beide Verzeichnisse höherer Ebene ("Vorgänger", "Parent") und Verzeichnisse niedrigerer Ebene ("Nachfolger", "Child") aufweisen. Die Verzeichnisse Y-ter Ebene (in dieser beispielhaften Hierarchie 20 die Verzeichnisse dritter Ebene) sind in der Verzeichnishierarchie 20 die Verzeichnisse unterster Ebene. Jedes Verzeichnis Y-ter Ebene gemäß der vorliegenden Erfindung enthält einen aus einem Satz 18 vorbestimmter Datei-Platzhalter; beispielsweise enthält das Verzeichnis D48 25 den Datei-Platzhalter F88 26; die Verzeichnisse unterster Ebene weisen ein Nachfolger-Verzeichnis, jedoch keine Vorgänger-Verzeichnisse auf. Die Bedeutung der in 1 verwendeten Bezeichnung für die Verzeichnisse und Dateien ergibt sich aus der folgenden Betrachtung der 3.
  • Die Verzeichnisverzweigung N und die Hierarchietiefe Y kann vorzugsweise gewählt werden, um ein virtuelles Dateisystem mit einer gewünschten Anzahl von Dateien vorzusehen. Die Anzahl von Dateien ist gemäß der Formel NY zu berechnen. Die beispielhafte Hierarchie 20 mit einer Verzweigung bzw. Verzweigungsgrad von 4 und einer Hierarchietiefe von 3 sieht daher 43 = 64 Dateien vor. Die bevorzugte Ausführung hat eine Verzweigung von 32 und eine Hierarchietiefe von 4, wodurch 324 = 1048576 Dateien vorgesehen werden. Während die Verzweigung N und die Hierarchietiefe bzw. Tiefe Y in jeder Ebene und jedem Zweig der Verzweigungshierarchie eine andere sein kann, sind diese in der bevorzugten Ausführung in allen Ebenen und Zweigen gleich, wobei dies aus der folgenden Betrachtung des Verfahrens der vorliegenden Erfindung ersichtlich ist.
  • Das virtuelle Dateisystem belegt einen Dateibereich 30, der B logische Datenblöcke, beispielsweise Datenblock 2, enthält, wobei dies am besten unter Bezugnahme auf 2 ersichtlich ist. Jeder Datenblock enthält b Bytes. In dem weit verbreiteten FAT-32-Dateisystem, welches dem Fachmann bekannt ist, enthält typischerweise jeder Block 4 Kilobyte Daten. Ein Datenblock kann weiter unterteilt sein, typischerweise gemäß dem Typ des physikalischen Mediums, auf dem das Dateisystem implementiert ist. Jedoch wird hier von derartigen Betrachtungen abgesehen, da sie dem Fachmann ausreichend bekannt und für die vorliegende Erfindung nicht relevant sind.
  • Die Datenblöcke des virtuellen Dateisystems 10 sind vorzugsweise sequentiell organisiert. Die Datenblöcke können durch einen Host-Computer (nicht dargestellt) oder eine andere Einrichtung von dem virtuellen Dateisystem 10 typischerweise mittels Blocknummer abgefragt werden. Der Datenbereich 30 ist in zahlreiche zusammenhängende Bereiche logisch unterteilt. Ein Verzeichnisbereich 32 mit der Größe von D Blöcken definiert die Verzeichnishierarchie des virtuellen Dateisystems 10 vorab, wie diesbezüglich erläutert wurde.
  • Der Dateibereich 30 enthält ferner eine Anzahl von Dateibereichen 34a, b, c, die zusammen F Blöcke des Dateibereichs 30 belegen. Jeder Dateibereich 34a, b, c definiert die Menge an Datendateien vorab, die hinsichtlich ihrer Größe eine vorbestimmte Anzahl an Datenblöcken aufweisen. Der Datenbereich 34a definiert eine Menge Q1 an Datendateien, die jeweils einen Block groß sind. Der Datenbereich 34b deffiniert eine Menge von Q2 von Datendateien, die jeweils zwei Blöcke groß sind. Der Datenbereich 34c definiert eine Menge QM von Datendateien, die jeweils M Blöcke groß sind. Die Größe jedes Datenbereichs ist durch die Anzahl von Dateien und durch die Blockgröße jeder Datei bestimmt. Die Anzahl von Dateibereichen, die Anzahl von Dateien in jedem Bereich, und die Blockgröße der Dateien in jedem Bereich sind durch die vorliegende Erfindung nicht beschränkt, sondern stellen eine Auswahl hinsichtlich der Ausgestaltung dar, die dem Entwickler des Dateisystems 10 freisteht.
  • Der Datenbereich 30 enthält ferner einen oder mehrere FAT-Bereiche 36. Jeder FAT-Bereich 36 definiert vorab eine Dateizuweisungstabelle in der Größe von T Blöcken zum Lokalisieren aller Datenblöcke der Verzeichnisse und der Datendateien in dem Dateibereich 30. Gemäß der vorliegenden Erfindung, und wie im weiteren detaillierter dargelegt ist, sind diese Bereiche derart organisiert, daß die Datenblöcke in dem Verzeichnisbereich 32 und in dem FAT-Bereich 36 algorithmisch berechnet werden können, wenn das Dateisystem 10 gelesen wird, um somit die Größe an physikalischem Speicher zu verringern, die notwendig ist, um das Dateisystem 10 unterzubringen.
  • Unter näherer Betrachtung des Verzeichnisbereichs (32) und unter Bezugnahme auf die 3 sind Verzeichniseinträge in dem Verzeichnisbereich 32 enthalten. Jeder Verzeichniseintrag enthält verschiedene Felder, die (zumindest) die Namen, die Startblocknummer, die Attribute des Eintrags (insbesondere, ob es ein Nachfolger-Verzeichnis oder eine Datei darstellt), sowie die Größe jeder Datei oder jedes Nachfolger-Verzeichnisses angeben. Die Verzeichniseinträge beschreiben die Inhalte jedes einzelnen Verzeichnisses der Verzeichnishierarchie 20. In der bevorzugten Ausführung sind die Verzeichniseinträge für jedes Verzeichnis der Hierarchie 20 in einem separaten Datenblock enthalten, dessen Position in dem Dateibereich 30 ausgehend von der Verzeichnishierarchie 20 berechenbar ist. Um dies mittels der Verzeichnishierarchie 20 der 1 darzustellen, sind die Verzeichniseinträge für das Wurzelverzeichnis 21 dem Block 0 des Verzeichnisbereichs 32 zugeordnet. Der Block 0 enthält vier Verzeichniseinträge, die den Verzeichniseinträgen der vier Verzeichnisse erster Ebene (D1 bis D4) der Hierarchie 20 entsprechen. Die innerhalb jedes Blocks dargestellten Zahlen des Verzeichnisbereichs 32 der 3 geben den Wert des Startblockfeldes des betreffenden Verzeichniseintrags in dem Block wieder und entsprechend den Verzeichnisnummern, die in der Verzeichnishierarchie 20 verwendet werden. Beispielsweise entspricht der zweite Eintrag 38a des Blocks 0 dem Verzeichnis erster Ebene D2 und gibt an, daß die Verzeichniseinträge für das Verzeichnis D2 im Block 2 wiederzufinden sind. Der dritte Eintrag 38b von Block 2 entspricht dem Verzeichnis zweiter Ebene D11 und gibt an, daß die Verzeichniseinträge für das Verzeichnis D11 in dem Block 11 zu finden sind. Der vierte Eintrag 38c des Blocks 11 entspricht dem Verzeichnis Y-ter Ebene D48 und gibt an, daß die Verzeichniseinträge für das Verzeichnis D48 in dem Block 48 zu finden sind. Der erste (und nur dieser) Eintrag 38d des Blocks 48 entspricht ei nem Datei-Platzhalter. Dem Datei-Platzhalter kann zu jedem einzelnen Zeitpunkt eine tatsächliche Datei zugeordnet sein, oder nicht. Der Wert des Startblockfeldes für den Dateieintrag gibt den Status der Existenz der Datei an. Ein vorbestimmter Wert gibt an, daß in dem Verzeichnis D48 noch nie eine Datei erzeugt wurde, während ein anderer vorbestimmter Wert angibt, daß in dem Verzeichnis D48 bereits eine Datei erzeugt wurde, wobei jedoch diese Datei nicht mehr existiert. Wenn das Startblockfeld einen Wert zwischen 0 und F-1 enthält, gibt dieses an, daß momentan eine zugeordnete Datei existiert und daß der Wert des Startblockfeldes die Blocknummer in dem Dateibereich 34 ist, in der sich die zwei Daten befinden. Wie im weiteren näher beschrieben ist, ist ein Datei-Platzhalter für ein Verzeichnis Y-ter Ebene nur dann mit einer bestimmten Datendatei verbunden, wenn auf ein Verzeichnis der Y-ten Ebene zum erstenmal zugegriffen wird.
  • Die oben beschriebene Art und Weise, N-äre (beispielsweise binäre, trinäre usw.) Bäume, beispielsweise die Verzeichnishierarchie 20, in einem Feld zu speichern, ist einem Fachmann weitreichend bekannt. Da die Verzeichnishierarchie 20 feststeht und die Positionen in dem Dateibereich 30 der Datenblöcke für jedes einzelne Verzeichnis berechenbar sind, wie im weiteren genauer beschrieben ist, muß ein VFS 10 gemäß der vorliegenden Erfindung nicht die Daten für den Verzeichnisbereich 32 speichern, sondern kann die Daten für jeden einzelnen Block algorithmisch berechnen, wenn dies von dem Host-Computer angefordert wird.
  • Unter detaillierter Betrachtung des FAT-Bereichs 36 und unter Bezugnahme auf die 4 sind in vielen Dateisystemen die Datenblöcke einer Datei oder eines Verzeichnisses, die mehr als einen Block überspannen, nicht zusammenhängend in dem Dateibereich 30 angeordnet. Während ein Verzeichniseintrag, wie bereits beschrieben wurde, den Startblock angibt, an dem die Daten für ein Verzeichnis oder für eine Datei zu finden sind, gibt dieser keinerlei Orte weiterer Datenblöcke an. Die FAT-Tabelle sieht diese Verknüpfung zwischen dem Startblock und jeglichen weiteren Blöcken vor. Da die Verzeichnishierarchie und die Anzahl und Größe der Dateien in dem VFS 10 der vorliegenden Erfindung vordefiniert sind, sind die Inhalte des FAT-Bereichs dementsprechend algorithmisch berechnet werden können.
  • Die Größe des FAT-Bereichs 36 ergibt sich durch die Anzahl von Datenblöcken, die in dem VFS 10 enthalten sind. Die FAT 36 enthält für jeden Block in dem System einen FAT-Eintrag 42. Jeder FAT-Eintrag 42 muß groß genug sein, um einen Wert zu enthalten, der die größte Blocknummer in den kombinierten Verzeichnis Bereichen 32 und Datei Bereichen 34 wie dergibt (d.h. der Wert von D + F). Beispielsweise verwendet das FAT-32-Dateisystem einen FAT-Eintrag 42 mit vier Byte, der ausreicht, bis zu 232 = 4294967296 Blöcke zu adressieren.
  • Der FAT-Bereich 36 umfaßt einen Verzeichnis-FAT-Teilbereich 36a und einen Datei-FAT-Teilbereich 36b. Da, wie oben bemerkt, jedes Verzeichnis einen einzelnen Datenblock in dem Verzeichnisbereich 32 belegt, ist die Anzahl der FAT-Einträge 42 in dem Verzeichnis-FAT-Teilbereich 36a gleich der Anzahl von Verzeichnissen in der Verzeichnishierarchie 20. Beispielsweise in der beispielhaften Verzeichnishierarchie 20 der 1, in der N = 4 und Y = 3 ist, bestehen ein Root-Verzeichnis, N1 = 4 Verzeichnisse erster Ebene, N2 = 16 Verzeichnisse zweiter Ebene und N3 = 64 Verzeichnisse Y-ter (dritter) Ebene, wobei diese eine Gesamtsumme von 85 Verzeichnissen bilden; daher sind in dem Verzeichnis-FAT-Teilbereich 36a 85 FAT-Einträge vorgesehen.
  • Im Hinblick auf den Datei-FAT-Teilbereich 36b können verschiedene Dateien verschiedene Anzahlen an Datenblöcken in dem Dateibereich 34 belegen. Jedoch ist gemäß dem Dateisystem 10 der vorliegenden Erfindung, und wie bereits beschrieben, die Anzahl von Dateien und die Größe jeder Datei vordefiniert, so daß die Anzahl von FAT-Einträgen 42, die für den FAT-Teilbereich 36b erforderlich sind, algorithmisch berechenbar ist. Beispielsweise soll für die beispielhafte Verzeichnishierarchie 20 der 1, die NY = 43 = 64 Dateien enthält, angenommen werden, daß 32 (Q1) der Dateien Dateien mit einem Block sind, 16 (Q2) Dateien mit zwei Blöcken vorliegen, 10 (Q3) Dateien mit vier Blöcken vorliegen, und 6 (Q4) Dateien mit acht Blöcken vorliegen. Daher sind für die Dateien mit einem Block 32 × 1 = 32 Blöcke notwendig, für Dateien mit zwei Blöcken sind 16 × 2 = 32 Blöcke notwendig, für die Dateien mit vier Blöcken sind 10 × 4 = 40 Blöcke notwendig, und für die Dateien mit M Blöcken (wobei M gleich 8 ist) sind 6 × 8 = 48 Blöcke erforderlich, um eine Gesamtsumme von 32 + 32 + 40 + 48 = 152 Blöcke zu bilden. Daher enthält der Datei-FAT-Teilbereich 36b 152 FAT-Einträge 42.
  • Der für einen bestimmten Datenblock vorgesehene Inhalt eines FAT-Eintrags 42 in dem Verzeichnisbereich 32 oder in dem Dateibereich 34 spezifiziert, ob die Daten für dieses Verzeichnis oder diese Datei in einem anderen Block fortgesetzt werden, und, falls dies der Fall ist, mit welchem Block diese Daten fortgesetzt werden. Wenn der FAT-Eintrag 42 einen Wert enthält, der eine andere Blocknummer indem Dateisystem 10 entspricht, werden die Daten an dieser Blocknummer fortgesetzt. Wenn der FAT-Eintrag 42 einen vorbestimmten "Kettenen de"-Wert enthält, der nicht einer Blocknummer in dem Dateisystem 10 entspricht, dann werden die Daten in keinem weiteren Block fortgesetzt. Unter Bezugnahme auf die beispielhafte FAT-Tabelle 36 der 4 ist der Startblock eine Datendatei mit vier Blöcken in einem datendateibezogenen FAT-Eintrag #64 42' angeordnet. In dem beispielhaften Datei-FAT-Teilbereich 36b der 4 enthält der FAT-Eintrag #62 42' den Wert 65, der angibt, daß die Datendatei mit vier Blöcken mit dem Datenblock #65 fortgesetzt wird. In gleicher Weise enthält der FAT-Eintrag #65 den Wert 66, der angibt, daß die Datendatei mit vier Blöcken mit dem Datenblock #66 fortgesetzt wird, und der FAT-Eintrag #66 enthält den Wert 67, der angibt, daß die Datendatei mit vier Blöcken mit dem Datenblock #67 fortgesetzt wird. Da der Datenblock #67 der letzte von vier Blöcken in der Kette ist, enthält der FAT-Eintrag #67 die "Kettenende"-Markierung.
  • Unter Betrachtung eines neuen Verfahrens 100 zum Lesen von Daten aus einem virtuellen Dateisystem und bezugnehmend auf die 5 beginnt 102 das Verfahren 100 mit dem Definieren eines virtuellen Dateisystems 10 mit einem Dateibereich 30, der eine logische lineare Anordnung von Datenblöcken für eine vorbestimmte Dateistruktur 45 enthält, die eine Verzeichnishierarchie 20 und einen Satz Platzhalter für eine vorbestimmte Datei 18 umfaßt. Mit dem Schritt 104 wird eine Anfrage hinsichtlich eines Datenblocks 2 mit einer spezifizierten Position in dem VFS 10 empfangen, typischerweise ausgehend von dem Host-Computer, der mit dem VFS 10 verbunden ist. Mit dem Schritt 106 wird der Abschnitt des VFS 10 ermittelt, in dem sich der Datenblock 2 befindet. Wenn der Datenblock 2 in dem FAT-Bereich 36 oder dem Verzeichnisbereich 32 ("FAT oder Verzeichnis"-Abzweigung von 106) vorgesehen ist, dann fährt das Verfahren mit Schritt 108 fort.
  • Wenn der Datenblock 2 in dem FAT-Bereich 36 vorliegt oder wenn der Datenblock 2 in dem Verzeichnisbereich 32 vorliegt, jedoch dem Root-Verzeichnis oder einem der Zwischenebene-Verzeichnisse in der Verzeichnishierarchie 20 entspricht ("Nein"-Verzweigung von Schritt 108), dann wird mit dem Schritt 114 der Inhalt des Datenblocks 2 basierend auf der vordefinierten Verzeichnishierarchie 20 und der spezifizierten Blockposition berechnet, und mit dem Schritt 116 wird der Inhalt an den Host-Computer als Reaktion auf dessen Anforderung geliefert. Im weiteren ist der Algorithmus beschrieben, mit dem der Datenblockinhalt berechnet wird; die Berechnung des Datenblockinhaltes wird durch die neue vordefinierte Organisation der Datenstruktur 14 und des Datenbereichs 30 des VFS 10 in vorteilhafter Weise ermöglicht.
  • Wenn der Datenblock 2 in dem Verzeichnisbereich 32 vorliegt und einem der Verzeichnisse unterster Ebene in der Verzeichnishierarchie 20 entspricht ("Ja"-Verzweigung von Schritt 108), dann wird mit dem Schritt 110 die momentane Datenmenge ermittelt, die in der Datei enthalten ist, welche dem Verzeichnis unterster Ebene entspricht. Dies wird vorzugsweise durch einen Prozeß ausgeführt, der außerhalb des virtuellen Dateisystems 10 ist und der den Datei-Platzhalter mit den Daten vorab verknüpft, wie im weiteren unter Bezugnahme auf die virtuelle Datensystemvorrichtung 50 beschrieben ist. Sobald die momentane Dateigröße in Bytes bekannt ist, wird mit dem Schritt 112 das Verzeichnis unterster Ebene mit einer nicht verwendeten (oder am längsten unverwendeten) vorbestimmten Datei verbunden, die eine maximale Dateigröße aufweist, die größer oder gleich der Datenmenge ist, und das Verfahren fährt mit dem Schritt 114 fort. Typischerweise wird die kleinste vorbestimmte Datei mit einer zum Speichern der Daten ausreichenden Größe mit dem bestimmten Verzeichnis unterster Ebene verbunden.
  • Durch die vorliegende Erfindung wird vorteilhafterweise der Platz physikalischen Speichers minimiert, der für das virtuelle Dateisystem 10 erforderlich ist, insbesondere da eine große Anzahl von Dateien und Dateien erheblicher Größe von dem Dateisystem 10 umfaßt werden, indem die Datenblöcke 2 innerhalb des FAT-Bereichs 36 und des Verzeichnisbereichs 32 berechnet werden.
  • Wenn der Datenblock 2 in dem Dateibereich 34 ("Datei"-Verzweigung von Schritt 106) vorliegt, dann wird bei Schritt 116 die Datenquelle für die Datei ermittelt. Wenn die Daten dynamisch erzeugt werden sollen ("Dynamisch"-Verzweigung von Schritt 116), dann wird mit Schritt 118 der Inhalt des Datenblocks 2 dynamisch erzeugt, vorzugsweise von einem Prozeß außerhalb des virtuellen Dateisystems 10, und mit Schritt 122 wird der Inhalt als Reaktion auf die Anforderung des Host-Computers diesem geliefert. Wenn die Daten als Alias von einem anderen Datenspeicher vorgesehen werden sollen, beispielsweise von einem Neben-Dateisystem 70, das extern zu dem VFS 10 vorgesehen ist, dann wird mit dem Schritt 120 der Inhalt des Datenblocks 2 von dem Neben-Dateisystem 70 erlangt, und mit dem Schritt 122 wird der Inhalt als Reaktion auf die Anfrage des Host-Computers diesem geliefert.
  • Durch dynamisches Erzeugen von Datenblöcken 2, wenn diese angefordert werden oder durch Erhalten der Datenblöcke 2 aus einem Neben-Dateisystem 70, die bereits in einer Vorrichtung vorliegen, in der das virtuelle Dateisystem 10 vorgesehen ist, minimiert die vorlie gende Erfindung vorteilhafterweise die Größe an physikalischem Speicher, der für das virtuelle Dateisystem 10 erforderlich ist, insbesondere bei einer großen Anzahl von Dateien und erheblichen Dateigrößen, die in dem Dateisystem 10 enthalten sind.
  • Das Verfahren 100 wird vorzugsweise aus Firmware und/oder als Software in Form eines Programms mit Befehlen implementiert, die in einem Programmspeichermedium vorliegen, beispielsweise einem ROM, einer CD-ROM, einer Diskette und ähnliches, und von einer Computervorrichtung (nicht dargestellt) ausführbar ist, die mit dem virtuellen Dateisystem 10 integriert ist. Eine derartige Implementierung ist für den Fachmann ersichtlich. Das Programm mit Befehlen kann in einer Anzahl logischer Segmente organisiert sein, um die Schritte des hier beschriebenen Verfahrens 100 auszuführen, um die Dateistruktur 15 und den Dateibereich 30 zu implementieren, die ebenfalls beschrieben wurden.
  • Im weiteren wird das Berechnen 114 der Inhalte eines Datenblocks 2 in dem FAT-Bereich 36 oder dem Verzeichnisbereich 32 basierend auf der vordefinierten Verzeichnishierarchie 20 betrachtet, wobei dies mit Bezug auf die 2, 3, 4 und 6 nachzuvollziehen ist und wobei mit dem Schritt 130 die Stelle des angeforderten Datenblocks innerhalb des FAT-Bereichs 36 oder des Verzeichnisbereichs 32 des Dateibereichs 30 ermittelt wird. Wenn der angeforderte Block in dem Verzeichnisbereich 32 liegt und einem beliebigen Verzeichnis entspricht, das kein Verzeichnis unterster Ebene (Y-te Ebene) ist, dann wird mit dem Schritt 132 die Blocknummer des angeforderten Datenblocks in eine verzeichnisbezogene Blocknummer für das angeforderte Verzeichnis umgewandelt. Mit dem Schritt 134 werden die verzeichnisbezogenen Blocknummern aller Nachfolger-Unterverzeichnisse des angeforderten Verzeichnisses ermittelt, vorzugsweise durch Berechnen der Blocknummer der Nachfolger-Unterverzeichnisse basierend auf der Hierarchietiefe und Verzweigung der vorbestimmten Verzeichnshierarchie 20 gemäß einem üblichen Algorithmus zum Durchlaufen eines N-ären Baums, der in einem Feld gespeichert ist, wobei dieser Algorithmus dem Fachmann bekannt ist. Wenn beispielsweise der angeforderte Block einem verzeichnisbezogenen Block #6 entspricht, werden die Nachfolger-Unterverzeichnisse #25, #26, #27 und #28 identifiziert. Sobald die geeigneten Nachfolger-Unterverzeichnisse ermittelt wurden, dann werden mit dem Schritt 136 Verzeichniseingangsdaten für diese Nachfolger-Unterverzeichnisse des angeforderten Verzeichnisses erzeugt.
  • Wenn der angeforderte Datenblock in dem Verzeichnisbereich 32 liegt und einem Verzeichnis unterster Ebene (Y-te Ebene) entspricht, dann werden mit dem Schritt 138 die Verzeichniseintragsdaten erzeugt, welche eine Datei wiedergeben. Diese Daten werden von Information abgeleitet, die in einem Eintrag 62 in der Dateispeigelung-Tabelle (file shadow table) 60 enthalten ist, die dem Verzeichnis der untersten Ebene entspricht (Spiegelung-Tabelle 60 und ihre Einträge 62 werden im weiteren detaillierter unter Bezugnahme auf die 7 beschrieben). Wenn beispielsweise der angeforderte Block einem verzeichnisbezogenen Block #48 entspricht, dann werden Verzeichniseintrag-Daten 38d erzeugt, welche die Datei wiedergeben, die in dem Verzeichnis unterster Ebene enthalten ist, die mit dem Block #48 verknüpft ist.
  • Wenn der angeforderte Datenblock in dem FAT-Bereich 36 liegt, dann werden mit dem Schritt 140 die in dem angeforderten Datenblock enthaltenen FAT-Einträge identifiziert. In der bevorzugten Ausführung sind diese Einträge basierend auf der Größe der Datenblöcke und der Größe jedes FAT-Eintrags einfach zu berechnen. Jeder FAT-Eintrag 42 bezieht sich auf einen Datenblock 2 in dem Verzeichnisbereich 32 oder dem Dateibereich 34. Mit dem Schritt 142 wird ermittelt, welche dieser FAT-Einträge Blöcken entsprechen, die der letzte (oder der einzige) Block in einer Blockkette sind, und welche FAT-Einträge Blöcken entsprechen, die nicht der letzte (oder der einzige) Block in einer Blockkette sind. In der bevorzugten Ausführung kann dies einfach basierend auf der Organisation des Dateibereichs 30 berechnet werden, da alle Verzeichnisse einen Datenblock belegen und da die Anzahl von Datendateien, welche jeweils die Größe M haben, vorbestimmt ist. Mit dem Schritt 144 werden für alle FAT-Einträge, die dem letzten (oder dem einzigen) Block in einer Blockkette entsprechen, FAT-Eintragsdaten erzeugt, die eine Kettenende-Markierung erhalten, während bei dem Schritt 146 für alle FAT-Einträge, die nicht dem letzten (oder dem einzigen) Block in einer Blockkette entsprechen, FAT-Eintragsdaten erzeugt werden, die auf den nächsten Block in der Kette zeigen. Wenn beispielsweise der angeforderte Datenblock FAT-Einträge für die datendateibezogenen Blöcke #64 bis #67 umfaßt, zeigt der für den Block 64 erzeugte FAT-Eintrag auf den Block #65, während der für den Block 67 erzeugte FAT-Eintrag die Kettenende-Markierung enthält.
  • Die vorliegende Erfindung kann ferner als eine Vorrichtung 50 ausgeführt werden, die ein virtuelles Dateisystem (VFS) 10 umfaßt, um eine blockorientierte Datenquelle vorzusehen, auf die von einem Host-Computer (nicht dargestellt) zugegriffen werden kann, wie unter Be zugnahme auf die 7 ersichtlich ist. Das VFS 10 umfaßt ferner einen Bereichsbezeichner 52, der "Lese Block <B>"-Anfragen von dem Host-Computer empfängt, wobei <B> die absolute Datenblocknummer B in dem VFS 10 ist. Der Bereichsbezeichner 52 bestimmt, ob der Block B einem Block in dem FAT-Bereich 36 oder in dem Verzeichnisbereich 32 entspricht, und kann daher wie oben beschrieben berechnet werden, oder ob Block B einem Block in dem Dateibereich 34 entspricht und daher Dateidaten wie oben beschrieben vorgesehen werden müssen. In der bevorzugten Ausführung wandelt der Bereichsbezeichner 52 die absolute Blocknummer B in eine auf den Bereich 32, 34, 36 bezogene Blocknummer um, dem der Block angehört. Wenn der Block in dem FAT-Bereich 36 oder dem Verzeichnisbereich 32 liegt, berechnet ein Blockberechner 54, der über die vorbestimmte Dateistruktur, d.h. über die Verzweigung N, die Tiefe Y, der Dateieinheiten Q und die Blockanzahl, die mit jeder Dateieinheit Q verknüpft ist, informiert ist, die Inhalte des angeforderten Datenblocks. Wenn die Blocknummer einem Verzeichnis Y-ter Ebene entspricht, sendet ein Dateibinder 56 für Verzeichnisse Y-ter Ebene eine Anfrage an einen dynamischen Datenerzeuger 58, um eine Dateispiegelung 62 in einer Dateispiegelung-Tabelle 60 mit einer bestimmten vorbestimmten Datei einer vorgegebenen Größe in dem Dateisystem 10 zu verbinden.
  • Die Dateispiegelung 62 wurde typischerweise durch eine asynchrone Anfrage erzeugt, die von einem anderen Modul (nicht gezeigt) der Vorrichtung 50 an den dynamischen Datengenerator 58 gerichtet wurde. Beispiele für solche Anfragen sind in der oben genannten parallelen US-Patentanmeldung von Holcomb et al. beschrieben. Während des Zeitpunkts, zu dem die Dateispiegelung 62 erzeugt wird, ist die mit der Spiegelung 62 verknüpfte Datenmenge nicht bekannt, und daher ist es nicht möglich, daß die Dateigröße (und damit wiederum die Dateistartblockstelle in dem Dateibereich 34) für die Datei nicht bekannt ist; wobei zu dem Zeitpunkt, an dem der Spiegel 62 erzeugt wird, die Dateispiegelung 62 daher typischerweise nur die Blocknummer des Y-ten Verzeichnisses und eine Datenquellenadresse oder -bezeichnung enthält. Wenn jedoch das Verzeichnis Y-ter Ebene gelesen wird, ergeht eine Vorab-Meldung, daß eine darauffolgende Anforderung bezüglich der einzelnen Datei, die in dem Verzeichnis Y-ter Ebene vorliegt, aller Wahrscheinlichkeit nach bevorsteht. Ferner muß in der bevorzugten Ausführung die Größe der Datei ebenfalls in dem Datenblock 2 enthalten sein, der für das Verzeichnis Y-ter Ebene zurückgegeben wird. Sobald der dynamische Datengenerator 58 die Dateigröße ermittelt hat, kann eine bestimmte vordefinierte Datei, welche zumindest so groß wie die Dateigröße ist, gewählt werden, und daher werden die Felder der Dateistartblock nummer und Dateigröße in der Spiegelung 62 ausgefüllt, und die bestimmte Datei wird zu diesem Zeitpunkt mit dem Verzeichnis Y-ter Ebene verbunden.
  • Um die Möglichkeit auszuschließen oder zu minimieren, daß der Host-Computer zu dem Schluß kommt, daß er bereits einen bestimmten Datenblock in seinem Cache-Speicher (nicht dargestellt) enthält und diesen daher nicht von der Vorrichtung 50 anfordert, erfüllt die Vorrichtung 50 vorzugsweise zwei Aufgaben. Als erstes generiert der dynamische Datengenerator 58, wenn dieser eine Anfrage zum Erzeugen einer Datenspiegelung 52 verarbeitet, einen Pfadnamen, der bislang nicht verwendet wurde (indem ein Verzeichnisblock Y-ter Ebene verwendet wird, der bislang nicht verwendet wurde). Zweitens wählt der dynamische Datengenerator 58 eine Datei, die bislang nicht verwendet wurde, wenn dieser eine Anfrage zum Binden einer Dateispiegelung 62 mit einer Datei verarbeitet. Da die physikalische Speichergröße des virtuellen Dateisystems 10 weitgehend unempfindlich gegenüber der Anzahl und Größe der Dateien ist, die das Dateisystem 10 enthält, kann das virtuelle Dateisystem 10 für eine bestimmte Vorrichtung 50 so gewählt werden, daß jegliche Möglichkeit, ein Verzeichnis Y-ter Ebene oder eine Datei jemals zweimal verwendet werden muß, minimiert wird. Jedoch umfaßt die bevorzugte Ausführung der Vorrichtung ferner einen Blockmanager 64, der Verzeichnisse Y-ter Ebene und Dateien auf Anfrage zuordnet. Der Blockmanager 64 verfolgt die Verwendung von Verzeichnissen Y-ter Ebene und von Dateien durch Empfangen von Meldungen von dem Dateibinder 56 für Verzeichnisse Y-ter Ebene und von dem Dateigenerator 66, wenn Blöcke von dem Host-Computer angefordert werden. Wenn die Vorrichtung 50 über keine bislang nicht verwendeten Verzeichnisse oder Dateien mehr verfügt, gewährleistet der Blockmanager 64, daß ein bislang am längsten unbenutztes (least recently used, LRU) Verzeichnis oder Datei zugeordnet wird, in der Erwartung, daß jegliche Information hinsichtlich des Verzeichnisses oder der Datei bereits in dem Cache der Host-Computers abgelaufen ist. Die von dem Blockmanager 54 verwendeten Algorithmen gleichen denen, die bei dem Speichermanagement und der Neuorganissierung des Speichers (garbage collection) verwendet werden und dem Fachmann gut bekannt sind.
  • Wenn der angeforderte Block B in dem Dateibereich 34 liegt, durchsucht ein Datengenerator 66 die Dateispiegelung-Tabelle 60, um die Dateispiegelung 62 zu lokalisieren, die mit dem Block verknüpft ist. Das Datenquellenfeld der Dateispiegelung 62 wird daraufhin von dem Dateigenerator 66 verwendet, um die Quelle der Daten zu ermitteln. Wenn die Quelle der dynamische Datengenerator 58 ist, wird der Block von dem dynamischen Datengenerator 58 angefordert. Wenn die Quelle eine Datei in einem Neben-Dateisystem 70 ist, übersetzt eine Datei-Aliasing-Vermittlung (file aliasing bridge) 58 den angeforderten Block in den entsprechenden Block der Datei in dem Neben-Dateisystem 70. Ein Beispiel eines Neben-Dateisystems 70 ist das Dateisystem, das von einer Compactflash-Karte oder einer PCMCIA-Flash-Karte verwendet wird, beispielsweise um photographische Bilddateien zu speichern, die von einer Digitalkamera aufgenommen werden.
  • Aus dem Obenstehenden ist ersichtlich, daß das von der vorliegenden Erfindung vorgesehene virtuelle Dateisystem einen wesentlichen Fortschritt gegenüber dem Stand der Technik bietet. Obwohl zahlreiche einzelne Ausführungen der Erfindung beschrieben und dargestellt wurden, ist die Erfindung nicht auf diese speziellen Verfahren, Ausbildungen oder Anordnungen von Teilen beschränkt, die oben beschrieben und dargestellt sind. Insbesondere kann das Dateisystem weitere Bereiche enthalten, beispielsweise Boot-Sektoren und kann eine redundante Kopie des FAT-Bereichs enthalten. Es ist ferner ersichtlich, daß das Root-Verzeichnis und Zwischenverzeichnisse weitere vordefinierte Verzeichnisse oder Dateien enthalten können, die aus Gründen der Klarheit ausgelassen wurden, einschließlich, jedoch nicht darauf beschränkt, eines auf sich selbst bezogenen Verzeichnisses (das üblicherweise als das "."-Verzeichnis bezeichnet wird) und eines Vorgänger-Verzeichnisses (das üblicherweise als ".."-Verzeichnis bezeichnet wird). Während ferner in der bevorzugten Ausführung die Dateigröße feststehend ist, wenn auf ein Verzeichnis Y-ter Ebene zugegriffen wird, kann in einigen Ausführungen das Binden hinausgezögert werden, bis auf die Datei selbst zugegriffen wird, abhängig von der Verhaltensweise des Betriebssystems des Host-Computers. Die vorliegende Erfindung wird vorzugsweise in einem breiten Bereich üblicher und eingebetteter Computersysteme verwendet. Die Erfindung ist lediglich durch die Ansprüche beschränkt.

Claims (12)

  1. Verfahren (100) zum Lesen aus einem virtuellen Dateisystems (10), mit einem virtuellen Dateisystem (10), umfassend: einem Dateibereich (30) mit einer Vielzahl logischer Datenblöcke (2), mit: einen ersten zusammenhängenden Bereich (32) in dem Dateibereich (30), welcher eine Verzeichnishierarchie (20) des Dateisystems (10) vordefiniert, wobei die Hierarchie (20) eine in sich verknüpfte Hierarchie von Verzeichnissen vordefiniert; einer Vielzahl zweiter zusammenhängender Bereiche (34) in dem Dateibereich (30), die jeweils einen Satz Datendateien (18) mit einer vorbestimmten Anzahl von Datenblöcken (2) vordefinieren; und einem dritten zusammenhängenden Bereich (36) in dem Dateibereich (30), der eine Dateizuordnungstabelle vordefiniert, um in dem Dateibereich (30) alle diese Datenblöcke (2) hinsichtlich der Verzeichnisse (20) und der Datendateien (18) anzuordnen; wobei die Bereiche so organisiert sind, daß die Struktur der Datenblöcke (2) in dem ersten und dem dritten Bereich (32, 36) algorithmisch berechnet werden kann, wenn das Dateisystem (10) gelesen wird, um die Größe des physikalischen Speichers zu reduzieren, der zur Aufnahme des Dateisystems (10) notwendig ist, wobei das Verfahren die Schritte umfaßt: Empfangen einer Blocklese-Anfrage bezüglich eines spezifizierten Datenblocks (2); Ermitteln, ob der spezifizierte Datenblock (2) der Verzeichnishierarchie (20) oder dem Satz Datendateien (18) entspricht; algorithmisches Berechnen von Daten für den bestimmten Block (2), wenn der Block (2) der Verzeichnishierarchie (20) entspricht; und Vorsehen der Daten für den bestimmten Block (2), wenn der Block (2) dem Satz Datendateien (18) entspricht.
  2. Verfahren nach Anspruch 1, wobei die vorbestimmte Hierarchie von Verzeichnissen (20) ferner einen Satz Verzeichnisse der untersten Ebene umfaßt, wobei jedes Verzeichnis der untersten Ebene einen vorbestimmten Datei-Platzhalter aufweist, wobei der nicht in einem physikalischen Speicher gespeicherte Datenblock (2) einem aus den Verzeichnissen der untersten Ebene ausgewählten Verzeichnis entspricht, und die Dateistruktur (15) einen vorbestimmten Satz von Dateien umfaßt, der einen oder mehrere Datenblöcke umfaßt, die in dem virtuellen Dateisystem vorgesehen sind, und das Verfahren ferner umfaßt: Binden (112) des Datei-Platzhalters, der für das ausgewählte Verzeichnis der Verzeichnisse der untersten Ebene steht, an eine entsprechende Datei des vorbestimmten Satzes von Dateien, die in dem virtuellen Dateisystem vorgesehen sind.
  3. Verfahren nach Anspruch 2, wobei jede Datei des vorbestimmten Satzes von Dateien, der ein oder mehrere Datenblöcke umfaßt, eine maximale Dateigröße aufweist, wobei das Verfahren ferner umfaßt: Ermitteln (110) einer Datenmenge, die mit dem Dateiplatzhalter verknüpft ist, und Auswählen (112) der entsprechenden Datei aus dem vorbestimmten Satz von Dateien, so daß dieser eine maximale Dateigröße mindestens gleich der Datenmenge aufweist.
  4. Verfahren nach Anspruch 2 oder 3, daß ferner umfaßt: Empfangen (104) einer weiteren Anfrage, den Inhalt eines weiteren, nicht gespeicherten Datenblocks (2) vorzusehen, der mit der entsprechenden Datei des vorbestimmten Satzes von Dateien verknüpft ist; und Erzeugen des Inhalts des zusätzlichen, nicht gespeicherten Datenblocks (2).
  5. Verfahren nach Anspruch 4, wobei das Erzeugen umfaßt: Dynamisches Erzeugen (118) des Inhalts als Reaktion auf die zusätzliche Anfrage mittels eines Prozesses außerhalb des virtuellen Dateisystems.
  6. Verfahren nach Anspruch 4 oder 5, wobei das Erzeugen umfaßt: Erhalten (120) des Inhalts aus einem Neben-Dateisystem (70) außerhalb des virtuellen Dateisystems.
  7. Verfahren nach einem der vorangegangenen Ansprüche, wobei die virtuelle Dateistruktur (15) eine lineare logische Anordnung (30) der Datenblöcke (2) umfaßt, ein schließlich einer Verzeichnshierarchie und eines Satzes von Platzhaltern für vorbestimmte Dateien (18).
  8. Verfahren nach Anspruch 3, wobei das Binden (112) ferner umfaßt: Ermitteln (110) der aktuellen Dateigröße; Lokalisieren von zumindest einem zuletzt verwendeten Dateiplatzhalters, der mindestens so groß wie die aktuellen Dateigröße ist; und Bestimmen des am längsten unbenutzten Dateiplatzhalters als den ausgewählten Platzhalter der vorbestimmten Dateiplatzhalter.
  9. Vorrichtung (50) zum Vorsehen eines virtuellen Dateisystems (10), umfassend: einen Dateibereich (30) mit einer Vielzahl logischer Datenblöcke (2), umfassend: einen ersten zusammenhängenden Bereich (32) in dem Dateibereich (30), welcher eine Verzeichnishierarchie (20) des Dateisystems (10) vordefiniert, wobei die Hierarchie (20) eine in sich verknüpfte Hierarchie von Verzeichnissen vordefiniert; eine Vielzahl zweiter zusammenhängender Bereiche (34) in dem Dateibereich (30), die jeweils einen Satz Datendateien (18) mit einer vorbestimmten Anzahl von Datenblöcken (2) vordefinieren; und einen dritten zusammenhängenden Bereich (36) in dem Dateibereich (30), der eine Dateizuordnungstabelle vordefiniert, um in dem Dateibereich (30) alle diese Datumsblöcke (2) hinsichtlich der Verzeichnisse (20) und der Datendateien (18) anzuordnen; wobei die Bereiche so organisiert sind, daß die Struktur der Datenblöcke (2) in dem ersten und dem dritten Bereich (32, 36) algorithmisch berechnet werden kann, wenn das Dateisystem (10) gelesen wird, um die Größe des physikalischen Speichers zu reduzieren, der zur Aufnahme des Dateisystems (10) notwendig ist; einen Bereichsbezeichner (52), der vorgesehen ist, eine Blocklese-Anfrage bezüglich eines bestimmten Datenblocks (2) zu empfangen und zu ermitteln, ob der bestimmte Datenblock (2) der Verzeichnishierarchie (20) oder dem Satz von Datendateien (18) entspricht; einen Blockberechner (54), der mit dem Bereichsbezeichner (52) verbunden ist, um Daten für den spezifizierten Block algorithmisch zu berechnen, wenn der Block (2), der Verzeichnishierarchie (20) entspricht; und einen Dateigenerator (66), der mit dem Bereichsbezeichner (52) verbunden ist, um die Daten für den bestimmten Block (2) vorzusehen, wenn der Block (2) dem Satz von Datendateien (18) entspricht.
  10. Vorrichtung nach Anspruch 9, wobei die Verzeichnisse ein Root-Ebene-Verzeichnis, eine Vielzahl von Zwischenebene-Verzeichnissen unterhalb des Root-Ebene-Verzeichnisses sowie eine Vielzahl von Verzeichnissen der untersten Ebene unterhalb der Zwischenebene-Verzeichnisse umfaßt.
  11. Vorrichtung nach Anspruch 9 oder 10, wobei der Blockberechner (54) ferner ermittelt, ob der bestimmte Block (2) einem Verzeichnis eines Satzes von Verzeichnissen der untersten Ebene entspricht, wobei die Vorrichtung (50) ferner umfaßt: einen dynamischen Datengenerator (58) zum Einrichten einer Dateispiegelung (62), die einem ausgewählten Verzeichnis der Verzeichnisse der untersten Ebene entspricht und eine Dateigröße für die Daten ermittelt; und einen Dateibinder (56), der mit dem Blockberechner (54) und dem dynamischen Datengenerator (58) verbunden ist um zu ermitteln, ob der bestimmte Block (2) der Dateispiegelung (62) entspricht, und für diesen Fall die Dateigröße von dem dynamischen Datengenerator (58) erhält und das ausgewählte Verzeichnis der Verzeichnisse der untersten Ebene an eine geeignet bemessene Datendatei des Satzes von Datendateien (18) bindet, die mindestens so groß wie die Dateigröße ist.
  12. Vorrichtung nach einem der Ansprüche 9 bis 11, wobei eine ausgewählte Datendatei des Satzes von Datendateien (18) mit einem bestimmten Verzeichnis der untersten Ebene verknüpft ist, wenn auf die bestimmte Datendatei zuerst zugegriffen wird.
DE60112257T 2001-06-04 2001-11-22 Virtuelles Dateisystem für dynamisch erzeugte Webseiten Expired - Lifetime DE60112257T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US873878 2001-06-04
US09/873,878 US6697795B2 (en) 2001-06-04 2001-06-04 Virtual file system for dynamically-generated web pages

Publications (2)

Publication Number Publication Date
DE60112257D1 DE60112257D1 (de) 2005-09-01
DE60112257T2 true DE60112257T2 (de) 2006-03-30

Family

ID=25362511

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60112257T Expired - Lifetime DE60112257T2 (de) 2001-06-04 2001-11-22 Virtuelles Dateisystem für dynamisch erzeugte Webseiten

Country Status (4)

Country Link
US (1) US6697795B2 (de)
EP (1) EP1265152B1 (de)
JP (1) JP2003030025A (de)
DE (1) DE60112257T2 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751635B1 (en) * 2000-08-18 2004-06-15 Network Appliance, Inc. File deletion and truncation using a zombie file space
US8271530B2 (en) * 2002-04-08 2012-09-18 Oracale International Corporation Method and mechanism for managing and accessing static and dynamic data
US7620956B2 (en) * 2003-06-11 2009-11-17 Symantec Corporation Portable memory storage devices with application layers
US7185020B2 (en) 2003-10-01 2007-02-27 Hewlett-Packard Development Company, L.P. Generating one or more block addresses based on an identifier of a hierarchical data structure
US7480699B2 (en) * 2004-01-20 2009-01-20 International Business Machines Corporation System and method for replacing an application on a server
US7921419B2 (en) * 2004-05-12 2011-04-05 Oracle International Corporation Method and mechanism for managing incompatible changes in a distributed system
US20060041527A1 (en) * 2004-08-03 2006-02-23 Aaron Fessler Virtual file system
US7647359B1 (en) 2005-04-20 2010-01-12 Novell, Inc. Techniques for file system translation
US7860908B2 (en) * 2005-10-20 2010-12-28 International Business Machines Corporation Computer method for handling private process state in a stacking file system
US20070106685A1 (en) * 2005-11-09 2007-05-10 Podzinger Corp. Method and apparatus for updating speech recognition databases and reindexing audio and video content using the same
US8255420B2 (en) * 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage
KR100851306B1 (ko) * 2007-02-28 2008-08-08 삼성전자주식회사 파일 목록을 생성하는 휴대단말기 및 방법
US7680844B2 (en) * 2007-05-18 2010-03-16 International Business Machines Corporation Method for preserving virtual filesystem information across high availability takeover
JP2009037361A (ja) * 2007-07-31 2009-02-19 Brother Ind Ltd サーバ装置、サーバ装置制御プログラム、及びファイル転送システム
CN101908043B (zh) * 2009-06-03 2012-09-12 慧国(上海)软件科技有限公司 电子装置及档案系统的操作方法
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) * 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8285749B2 (en) * 2010-03-05 2012-10-09 Hitachi, Ltd. Computer system and recording medium
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
CN101882153A (zh) * 2010-06-10 2010-11-10 北京中星微电子有限公司 一种文件指针定位的方法及装置
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
US9552201B2 (en) * 2011-08-31 2017-01-24 Avaya Inc. System and method for incremental software installation
TWI524180B (zh) * 2014-08-15 2016-03-01 財團法人資訊工業策進會 位元組定址儲存系統
CN105897935A (zh) * 2016-06-23 2016-08-24 北京小米移动软件有限公司 缓存文件的处理推荐方法、装置、终端及服务器
CN116070596B (zh) * 2023-03-29 2023-06-09 深圳市奥思网络科技有限公司 基于动态数据的pdf文件生成方法、装置及相关介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
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
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5774715A (en) * 1996-03-27 1998-06-30 Sun Microsystems, Inc. File system level compression using holes
US6081883A (en) 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
AU3304699A (en) 1998-02-20 1999-09-06 Storm Systems Llc File system performance enhancement
MY122279A (en) 1999-03-03 2006-04-29 Sony Corp Nonvolatile memory and nonvolatile memory reproducing apparatus
DE60042484D1 (de) 1999-03-25 2009-08-13 Microsoft Corp Erweitertes dateiensystem

Also Published As

Publication number Publication date
DE60112257D1 (de) 2005-09-01
EP1265152A1 (de) 2002-12-11
US6697795B2 (en) 2004-02-24
US20020184184A1 (en) 2002-12-05
EP1265152B1 (de) 2005-07-27
JP2003030025A (ja) 2003-01-31

Similar Documents

Publication Publication Date Title
DE60112257T2 (de) Virtuelles Dateisystem für dynamisch erzeugte Webseiten
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE112013001284B4 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112008003826B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE69333906T2 (de) Verfahren und System für die Dateienverwaltung mit einem schnell löschbaren, programmierbaren ROM
EP3084638A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE602005001041T2 (de) Speicherauszugssystem
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE112012005271B4 (de) Bandlaufwerksystem-Server
DE69535330T2 (de) Caching-System mit Explitzer Folgeliste
DE69722962T2 (de) Strukturiertes datenspeichersystem mit global adressierbarem speicher
DE102007037646B4 (de) Computerspeichersystem und Verfahren zum Indizieren, Durchsuchen und zur Datenwiedergewinnung von Datenbanken
DE3151745C2 (de)
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE3390323T1 (de) Ermittlung eines sequentiellen Datenstroms
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE102004033104A1 (de) Organisieren von Datenobjekten in einem Speicherungsgerät
DE10000124A1 (de) Verfahren zum Übertragen und Indexieren von Daten von alten Medien zu neuen Medien
DE102005019842A1 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
DE102013200032A1 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1265152

Country of ref document: EP

Representative=s name: BOEHMERT & BOEHMERT, DE