DE10039505A1 - Verfahren, Systeme und Rechner-Programmprodukte zur Speicherung von Daten mit Hilfe einer Rollfensterdatei - Google Patents

Verfahren, Systeme und Rechner-Programmprodukte zur Speicherung von Daten mit Hilfe einer Rollfensterdatei

Info

Publication number
DE10039505A1
DE10039505A1 DE10039505A DE10039505A DE10039505A1 DE 10039505 A1 DE10039505 A1 DE 10039505A1 DE 10039505 A DE10039505 A DE 10039505A DE 10039505 A DE10039505 A DE 10039505A DE 10039505 A1 DE10039505 A1 DE 10039505A1
Authority
DE
Germany
Prior art keywords
file
area
data
new
storage
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.)
Ceased
Application number
DE10039505A
Other languages
English (en)
Inventor
Joseph Martin Herbst
Joel Mark Yarborough
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10039505A1 publication Critical patent/DE10039505A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • 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/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren, Systeme und Computer-Programmprodukte zur Speicherung von Daten werden bereitgestellt, die eine Rollfensterdatei verwenden, welche eine festgelegte Dateigröße aufrechterhält, während der älteste Teil von zuvor gespeicherten Daten fortlaufend durch neue Daten ersetzt wird. Die Rollfensterdatei arbeitet ohne die Verwendung eines Umlaufpufferspeichers, der durch die Bearbeitung eines aktuellen Relativzeigers realisiert wird, indem sie einen ersten Speicherbereich in eine fortlaufend verkettete Vielzahl von Speicherbereichen schiebt, die der Rollfensterdatei zugeordnet sind, damit er der neue letzte (oder Dateiende-) Speicherbereich wird, welcher der Datei zugeordnet ist. Neu empfangene Daten können dann in dem neu festgelegten Speicherbereich am Dateiende gespeichert werden. Operationen, die den ersten Bereich in der verketteten Folge an die letzte Position schieben, können sich theoretisch unbegrenzt wiederholen, während neue Daten empfangen werden. Folglich kann eine Datei fester Länge bereitgestellt werden, die nur die neuesten Daten speichert, ohne dass die Bereiche je neu zugeordnet werden, wie zum Beispiel Datencluster in Dateisystemen vom Typ Dateizugriffstabelle, die ursprünglich zu der Rollfensterdatei gehören.

Description

Bereich der Erfindung
Die vorliegende Erfindung betrifft die Dateiverwaltung und insbesondere die Datenspeicherung in Dateien.
Der Erfindung zugrunde liegender allgemeiner Stand der Technik
Rechnersysteme enthalten typischerweise eine Zentraleinheit, verschiedene Arten von Speicher und eine Vielzahl von Peripherieeinheiten einschließlich Eingabe-/Ausgabeeinheiten und nichtflüchtige Datenspeichereinheiten wie zum Beispiel austauschbare Datenträger einschließlich Diskettenlaufwerken und Festspeicher einschließlich Platten- und Bandlaufwerken. Die Kommunikation zwischen den verschiedenen Peripherieeinheiten und der Zentraleinheit wird typischerweise von einem Rechnerbetriebssystem gesteuert. Zu bekannten Rechnerbetriebssystemen, die zur Zeit in Personal Computern eingesetzt werden, gehören beispielsweise MS-DOS und Windows, die von der Microsoft Corporation erhältlich sind. Unter Betriebssystemen wie zum Beispiel dem Betriebssystem MS-DOS steuert ein einziges Dateisystem die Organisation von Dateien, die auf den Peripherieeinheiten gespeichert werden.
Damit das Rechnersystem Daten in einem Format lesen oder schreiben kann, das sowohl vom Rechnersystem als auch den jeweiligen Peripherieeinheiten erkannt wird, müssen Daten typischerweise entsprechend dem Dateisystem-Verwaltungsaspekt des Betriebssystems organisiert werden. Ein solches Dateisystem ist als das Dateisystem File Allocation Table (FAT) bekannt. Das Dateisystem FAT, das mit dem Betriebssystem MS-DOS bereitgestellt wird, ist eines der zur Zeit am häufigsten verwendeten Dateisysteme, obgleich andere Dateisysteme anderen Arten von Datenspeichereinheiten oder Betriebssystemen zugeordnet werden können. Ein alternatives Dateisystem ist beispielsweise das High Performance File System (HPFS), das in der US-Patentschrift Nr. 5 371 885 beschrieben wird.
Dateisysteme vereinfachen die Kommunikation zwischen dem Betriebssystemkern und einheitenabhängigen Treibern. Die Dateisysteme sind typischerweise für Operationen wie die Umsetzung von Lese- und Schreibbefehlen, die von einem Betriebssystemkern erzeugt werden, in eine Form, die von den bestimmten einheitenabhängigen Treibern unterstützt werden kann, verantwortlich. Das Dateisystem kann darüber hinaus für die Zuordnung von Plattenspeicherplatz für eine Datei auf einer Einheit wie zum Beispiel einem Festplattenlaufwerk verantwortlich sein.
Die Zuordnung von Plattenspeicherplatz erfolgt typischerweise nur nach Bedarf. Das heißt, der Plattenspeicherplatz wird nicht vorab, sondern vielmehr clusterweise zugeordnet (ein Cluster ist eine Zuordnungseinheit). Typischerweise umfasst ein Cluster in einem Dateisystem vom Typ FAT ein oder mehrere aufeinanderfolgende Plattensektoren. Die Cluster für eine Datei werden miteinander verknüpft (verkettet) und typischerweise durch Einträge in einer Dateizuordnungstabelle überwacht. Zusätzlich zu der Dateizuordnungstabelle wird typischerweise ein Verzeichnis geführt, das für jede Datei einen Verzeichniseintrag enthält. Ein Teil der peripheren Festplatteneinheit, der eine bestimmte Größe hat, wird im Allgemeinen zum Zeitpunkt der Initialisierung der Platte für die Dateizuordnungstabelle und das Verzeichnis festgelegt.
Um alle Daten, die zu einer bestimmten Datei gehören, die auf dem Festplattenlaufwerk gespeichert wird, zu lokalisieren, wird die Nummer des Anfangsclusters der Datei aus dem Verzeichniseintrag der Datei abgerufen, und dann wird auf die Dateizuordnungstabelle Bezug genommen, um das nächstfolgende Cluster zu lokalisieren, das zu der Datei gehört. Anders ausgedrückt, die Dateizuordnungstabelle wird typischerweise als eine verkettete Liste von Clusterzeigern bereitgestellt, so dass jeder Dateizuordnungseintrag für eine Datei auf das nächstfolgende Cluster zeigt, das für diese Datei verwendet wird. Beim Dateisystem MS-DOS FAT ist jeder Eintrag in der Dateizuordnungstabelle typischerweise ein 16-Bit-Wert. Außerdem wird dem letzten Eintrag für eine Datei in der Dateizuordnungstabelle typischerweise eine Nummer zugeordnet, die diesen Eintrag als das Dateiende-Cluster kennzeichnet (d. h., sie zeigt an, dass keine weiteren Cluster folgen). Die Nummer zur Kennzeichnung des Dateiendes reicht typischerweise von FFF8 bis einschließlich FFFF (Basis 16).
Die Größe eines Clusters bei dem Dateisystem wird typischerweise zum Zeitpunkt der Formatierung der Festplatte festgelegt und reicht gewöhnlich von ungefähr einem bis zu ungefähr 128 Sektoren. Bei Verwendung eines 16-Bit-Formats für die Dateizuordnungstabelle kann jeder Sektor einer Dateizuordnungstabelle in Abhängigkeit von der Größe eines Clusters zum Zeitpunkt der Initialisierung auf bis zu 256 Cluster und ein entsprechendes Vielfaches von Sektoren auf dem Plattenlaufwerk zeigen.
Eine besonders problematische Dateiverwaltungsanwendung schließt die Erfassung von Hochgeschwindigkeitsdaten oder variabel bitratigen Daten in einer Datei ein, um eine laufende Aufzeichnung der Daten zu ermöglichen. Beispiele für Anwendungen, die Speicherbedarf für solche Hochgeschwindigkeitsdaten erzeugen können, sind unter anderem Fehlerbehebungsoperationen wie zum Beispiel die Überwachung des Netzwerkbetriebs oder die Überwachung der Ausführung von Softwareprogrammen sowie andere Programme auf Anwendungsebene wie zum Beispiel die Erfassung von Videodaten für ein digitales Sicherheitssystem. Bei diesen Anwendungsarten gibt es typischerweise zwei, manchmal sich widersprechende Überlegungen. Die erste Entscheidung, die angegangen werden muss, betrifft die Frage, wieviel von den Daten gesichert werden muss. In Abhängigkeit von der Datenmenge, die erfasst wird, oder dem Zeitraum, über den die Erfassung stattfindet, ist es möglicherweise nicht immer machbar, alle Daten bis zu einem interessierenden Punkt zu sichern. Eine zweitägige Überwachung des Betriebs eines sehr aktiven Netzwerks könnte beispielsweise Tausende von Megabyte an Speicherkapazität in Anspruch nehmen. Selbst wenn genügend Speicherplatz auf der Festplatte zur Verfügung stünde, um all diese Daten zu speichern, wäre die Auswertung dieses Datenvolumens aller Wahrscheinlichkeit nach nicht durchführbar. Bei der zweiten Frage geht es um die Feststellung, bis zu welchem Grad der Datenerfassungsprozess die Leistungsfähigkeit des Rechnersystems beeinträchtigt. Dateioperationen wie zum Beispiel Sicherungsoperationen beanspruchen Rechnersystem- Ressourcen im Allgemeinen in hohem Maße, während die Anwendung gleichzeitig Hochgeschwindigkeits-Datenströme aus Datenerfassungsoperationen erzeugt. Solche Datenerfassungsanwendungen dulden gewöhnlich keine Unterbrechungen aufgrund von Rechnersystem-Konflikten oder Ressourcenbeschränkungen. Bei verschiedenen zur Zeit praktizierten Vorgehensweisen, die dazu dienen, die Größe einer Datenerfassungsdatei zu begrenzen, werden Operationen bei der Erfassung von Hochgeschwindigkeitsdaten möglicherweise mit unerwünschten Verzögerungen beaufschlagt.
Eine Lösung, die schon früher für das Problem der Erfassung von Hochgeschwindigkeitsdaten vorgeschlagen wurde, bestand darin, eine Ausgabedatei fester Größe anzulegen und sie als Umlaufpufferspeicher zu behandeln, indem der aktuelle Relativzeiger des Dateisystems verwaltet wird. Bei dieser Vorgehensweise kann ein Anwendungsprogramm beispielsweise seinen eigenen Datei-Relativzeiger verwalten, um zu überwachen, wie sich die Ausgabedatei mit der zunehmenden Datenansammlung füllt und umläuft. Das Anwendungsprogramm müßte typischerweise eine kostspielige Suchoperation nach der Datei durchführen, um den Datei-Relativzeiger jedesmal auf den Anfang der Datei zurückzusetzen, wenn aufgrund des Datenüberlaufs ein Dateiumlauf stattfindet. In Abhängigkeit von den Synchronisationsproblemen bei der bestimmten Ausführung muss die Anwendung möglicherweise vor jeder Schreiboperation in eine Datei außerdem eine Suchoperation nach der Datei durchführen, wodurch der problematische Leistungsmehraufwand für die Dateioperationen tatsächlich verdoppelt wird. Schließlich müsste das Anwendungsprogramm im Allgemeinen eine genaue Kopie des aktuellen Datei- Relativzeigers in der Datei selbst aufrechterhalten, so dass Routinen für die Syntaxanalyse den Anfang der Daten zu einem späteren Zeitpunkt finden und syntaktisch analysieren können.
Um sicherzustellen, dass es immer eine genaue Kopie des Datei- Relativzeigers innerhalb der Datei selbst gibt, sollte der Relativzeigerwert bei jeder Schreiboperation ebenfalls aktualisiert werden, was den Mehraufwand für die Dateioperation, die dazu dient, einen Suchlauf nach dem Speicherplatz des Relativzeigers zu starten, den aktuellen Relativzeiger zur späteren Verwendung zu schreiben und einen erneuten Suchlauf zurück zur nächsten Schreibposition zu starten, wieder verdoppelt. Es sei auch erwähnt, dass von jedem Anwendungsprogramm, das die Datei liest oder schreibt, erwartet würde, dass es diese Logik verdoppelt und das Dateiformat allgemein versteht, um zu wissen, wo unter anderem der Relativzeiger der Arbeitsdatei abgerufen/gespeichert werden muss. Diese Vorgehensweise lässt sich möglicherweise nicht ohne weiteres durchführen, da sie zusätzlichen Verarbeitungsaufwand sowohl für die Erfassungsphase als auch für die Nachverarbeitungsphase notwendig macht und darüber hinaus die Speicherung von zusätzlichen Formatierungsinformationen in der Datei erfordert. Außerdem kann der Zeitaufwand für den Suchlauf nach der Datei, damit der aktuelle Relativzeiger bearbeitet werden kann, lästig sein.
Eine andere alternative Vorgehensweise besteht darin, die Datei erneut anzulegen, nachdem sie ihren gesamten zugeordneten Plattenspeicherplatz gefüllt hat. Diese Vorgehensweise schließt ein, dass die Datei um ihren Anfang gekürzt wird, wenn ein Füll-Schwellenwert erreicht wird. Diese Vorgehensweise macht es im Allgemeinen jedoch auch erforderlich, dass eine neue Datei angelegt wird, der später gespeicherte Teil der ursprünglichen Datei in die neue Datei kopiert und die neu angelegte Datei dann in den vorherigen Dateinamen umbenannt wird. Es ist davon auszugehen, dass diese Vorgehensweise sehr umständlich und für leistungsstarke Systeme ungeeignet ist.
Zusammenfassung der Erfindung
Es ist folglich eine Aufgabe der vorliegenden Erfindung, Verfahren, Systeme und Rechner-Programmprodukte bereitzustellen, welche die Speicherung von Daten ermöglichen, während alte Daten gelöscht werden, um eine begrenzte Dateigröße aufrechtzuerhalten.
Es ist eine weitere Aufgabe der vorliegenden Erfindung, solche Verfahren, Systeme und Rechner-Programmprodukte bereitzustellen, welche die Belastung eines Anwendungsprogramms verringern können, das die vorliegende Erfindung zur Speicherung von Daten verwendet.
Diese und andere Aufgaben können gemäß der vorliegenden Erfindung durch Verfahren, Systeme und Rechner- Programmprodukte zur Speicherung von Daten erfüllt werden, die eine Rollfensterdatei verwenden, welche eine festgelegte Dateigröße aufrechterhält, während der älteste Teil von zuvor gespeicherten Daten fortlaufend durch neue Daten ersetzt wird. Die Rollfensterdatei arbeitet ohne die Verwendung eines Umlaufpufferspeichers, der durch die Bearbeitung eines aktuellen Relativzeigers realisiert wird, indem sie einen ersten Speicherbereich in eine fortlaufend verkettete Vielzahl von Speicherbereichen schiebt, die der Rollfensterdatei zugeordnet sind, damit er der neue letzte (oder Dateiende- )Speicherbereich wird, welcher der Datei zugeordnet ist. Neu empfangene Daten können dann in dem neu festgelegten Speicherbereich am Dateiende gespeichert werden. Operationen, die den ersten Bereich in der verketteten Folge an die letzte Position schieben, können sich theoretisch unbegrenzt wiederholen, während neue Daten empfangen werden. Folglich kann eine Datei fester Länge bereitgestellt werden, die nur die neuesten Daten speichert, ohne dass die Bereiche je neu zugeordnet werden, wie zum Beispiel Datencluster in Dateisystemen vom Typ Dateizugriffstabelle, die ursprünglich zu der Rollfensterdatei gehören.
In einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren zur Speicherung von Daten in einer Datei bereitgestellt. Eine festgelegte Anzahl von Speicherbereichen einschließlich eines ersten Bereichs und eines Dateiendebereichs wird der Datei zugeordnet. Daten werden in den zugeordneten Speicherbereichen gespeichert, um ein nichtgenutztes Volumen der Datei bereitzustellen, das einem Teil der zugeordneten Speicherbereiche entspricht, die keine Daten enthalten. Wenn zusätzliche Daten empfangen werden, wird der erste Bereich als neuer Dateiendebereich neu festgelegt, und mindestens ein Teil der zusätzlichen Daten wird in dem neuen Dateiendebereich gespeichert. Die empfangenen zusätzlichen Daten können eine Datenmenge darstellen, welche das nichtgenutzte Volumen der Datei überschreitet. Den vorstehenden Operationen kann die Feststellung vorausgehen, ob die Datei als eine Datei vom Typ Rollfenster gekennzeichnet ist.
In einer anderen Ausführungsform der vorliegenden Erfindung können die Speicherbereiche der Datei zugeordnet werden, indem ein zu der Datei gehörender Verzeichniseintrag erstellt wird, der aktualisiert wird, um anzuzeigen, dass die Datei eine Datei vom Typ Rollfenster ist. Die Daten können in den zugeordneten Speicherbereichen fortlaufend vom ersten Bereich bis zum Dateiendebereich gespeichert werden. Zusätzlich zur Neufestlegung des ersten Bereichs wird außerdem ein zweiter Bereich in den zugeordneten Speicherbereichen als ein neuer erster Bereich neu festgelegt, wobei der zweite Bereich unmittelbar auf den ersten Bereich folgt. In einer Ausführungsform werden die Operationen mit dem Empfang von weiteren zusätzlichen Daten fortgesetzt, nach dem der neue erste Bereich als ein zweiter neuer Dateiendebereich neu festgelegt wird, und ein dritter Bereich in den zugeordneten Speicherbereichen, der unmittelbar auf den neuen ersten Bereich folgt, wird als ein zweiter neuer erster Bereich neu festgelegt. Die weiteren zusätzlichen Daten werden dann in dem zweiten neuen Dateiendebereich gespeichert.
In einer weiteren Ausführungsform der vorliegenden Erfindung schließen Neufestlegungsoperationen für den ersten Bereich die Aktualisierung des Verzeichniseintrags ein, der zu der Datei gehört, um einen Zeiger, der den ersten Bereich kennzeichnet, durch einen Zeiger zu ersetzen, der den neuen ersten Bereich kennzeichnet. Außerdem wird die Dateizuordnungstabelle aktualisiert, um eine Dateiendeanzeige im Dateiendebereich durch einen Zeiger auf den neuen Dateiendebereich zu ersetzen und um eine Dateiendeanzeige in den neuen Dateiendebereich zu stellen.
In einer weiteren Erscheinungsform der vorliegenden Erfindung wird ein Verfahren zur Speicherung von Daten in einer Rollfensterdatei bereitgestellt, die eine festgelegte Anzahl von fortlaufend zugeordneten Speicherbereichen von einem ersten Bereich bis zu einem Dateiendebereich enthält, wobei der Dateiendebereich ein nichtgenutztes Volumen hat. Das Verfahren schließt den Empfang einer Datenmenge zur Speicherung in der Rollfensterdatei ein, welche das nichtgenutzte Volumen des Dateiendebereichs überschreitet. Der erste Bereich wird als ein neuer Dateiendebereich neu festgelegt, und ein zweiter Bereich in den zugeordneten Speicherbereichen, der unmittelbar auf den ersten Bereich folgt, wird als ein neuer erster Bereich neu festgelegt. Die empfangenen Daten werden dann in dem neuen Dateiendebereich gespeichert. Der neue erste Bereich wird durch Operationen erneut verschoben, damit er beim nächsten Empfang von Daten, die gespeichert werden sollen und ein nichtgenutztes Volumen des neuen Dateiendebereichs überschreiten, ein zweiter neuer Dateiendebereich wird. In einer Ausführungsform ist die Rollfensterdatei ein Dateityp, der von einem Dateisystem unterstützt wird, bei dem es sich um ein auf einer Dateizuordnungstabelle basierendes Dateisystem handelt, und die Speicherbereiche sind Cluster, die von dem Dateisystem verwaltet werden.
Während die Erfindung vorstehend hauptsächlich in Bezug auf ihre Verfahrensaspekte beschrieben wurde, werden auch Systeme sowie Rechner-Programmprodukte bereitgestellt.
Kurze Beschreibung der Zeichnungen
Fig. 1 ist eine Prinzipdarstellung eines Rechnersystems, das ein Dateiverwaltungssystem gemäß einer Ausführungsform der vorliegenden Erfindung enthält;
Fig. 2 ist eine Prinzipdarstellung eines Verzeichniseintrags gemäß einer Ausführungsform der vorliegenden Erfindung;
Fig. 3 ist eine Prinzipdarstellung eines Teils einer Dateizuordnungstabelle gemäß einer Ausführungsform der vorliegenden Erfindung;
Fig. 4 ist ein Flussdiagramm, das Operationen zur Datenspeicherung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 5 ist ein Flussdiagramm, das Operationen zur Datenspeicherung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 6 ist eine Prinzipdarstellung, das Datenspeicheroperationen gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
Ausführliche Beschreibung von bevorzugten Ausführungsformen
Die vorliegende Erfindung wird nun nachstehend mit Bezug auf die beigefügten Zeichnungen ausführlicher beschrieben, in denen bevorzugte Ausführungsformen der Erfindung gezeigt sind. Diese Erfindung kann jedoch in vielen verschiedenen Formen ausgeführt werden und sollte nicht als auf die hier dargelegten Ausführungsformen beschränkt ausgelegt werden; vielmehr werden diese Ausführungsformen bereitgestellt, damit diese Offenlegung gründlich und vollständig ist und dem Fachmann den Umfang der Erfindung uneingeschränkt vermittelt. Wie der Fachmann verstehen wird, kann die vorliegende Erfindung in Form von Verfahren, Systemen oder Rechner- Programmprodukten ausgeführt werden. Folglich kann die vorliegende Erfindung die Form einer Hardwareausführung, einer Softwareausführung oder einer Ausführung annehmen, die Software- und Hardwareaspekte verbindet.
Fig. 1 stellt schematisch ein Rechnersystem dar, das ein auf einer Rollfensterdatei basierendes System zur Speicherung von Daten gemäß einer Ausführungsform der vorliegenden Erfindung enthält. Genauer gesagt, bei der in Fig. 1 dargestellten Ausführungsform ist die vorliegende Erfindung im Rahmen eines Dateisystems vom Typ Dateizuordnungstabelle realisiert. Zum besseren Verständnis der Erfindung, wie sie hier beschrieben wird, werden die Beispiele im Allgemeinen im Zusammenhang mit solchen Systemen beschrieben, die auf einer Dateizuordnungstabelle basieren. Es sollte sich jedoch von selbst verstehen, dass die Verfahren, Systeme und Rechner- Programmprodukte der vorliegenden Erfindung zur Verwendung mit anderen Arten von Dateisystemen geeignet sind, die einer Datei schrittweise Speicherbereichsblöcke zuordnen und die zugeordneten Speicherbereichsblöcke nacheinander verketten.
Nochmals Bezug nehmend auf Fig. 1, ist im Betriebssystem 20 ein Dateiverwaltungssystem 10 enthalten, das Rollfensterdateien verwendet. Das Dateiverwaltungssystem 10 empfängt Daten zur Speicherung, wie zum Beispiel die Ergebnisse der Erfassung von Hochgeschwindigkeitsdaten von einem Endbenutzer-Anwendungsprogramm 30. Die Daten vom Anwendungsprogramm 30 werden vom Dateiverwaltungssystem 10 in einer Speichereinheit 40 gespeichert. Während die Speicheroperationen in Fig. 1 als direkt vom Dateiverwaltungssystem 10 verwaltete Operationen dargestellt sind, sollte es sich von selbst verstehen, dass einheitenspezifische Treiber, welche die Speichereinheit 40 unterstützen, in das Betriebssystem 20 integriert werden können, wobei diese Einheitentreiber vom Dateiverwaltungssystem 10 zur Durchführung von Lese- und Schreiboperationen für die Speichereinheit 40 verwendet werden können.
Die Speichereinheit 40 kann eine periphere Speichereinheit wie zum Beispiel ein Festplattenlaufwerk sein. Solche Einheiten, die zur Verwendung mit der vorliegenden Erfindung geeignet sind, werden typischerweise in einem Sektorformat auf einem zylindrischen Speichermedium formatiert. Folglich können verschiedene physische Positionen auf dem Plattenlaufwerk durch eine Adresse angegeben werden, welche die Nummer eines Lese-/Schreibkopfes, die Nummer eines Zylinders und eine Sektornummer auf dem Zylinder bezeichnet. Die Zylinder können wiederum auf einem zylindrischen Speichermedium fortlaufend nummeriert werden, wobei die Nummerierung vom innersten Zylinder zum äußersten Zylinder erfolgt. Jeder Zylinder kann wiederum in eine Vielzahl von Sektoren aufgeteilt werden, von denen jeder durch einen genauen Teil des Zylinders festgelegt wird. Die Nummer des Kopfes wiederum bezeichnet eine bestimmte Oberfläche. Auf einem einzelnen Festplattenlaufwerk könnte beispielsweise der oberste Kopf als der Kopf null und der unterste Kopf als der Kopf eins bezeichnet werden. Festplattenlaufwerke mit mehreren Zylindern sind bekannt, die eine schrittweise Erhöhung der Kopfnummer von Speicherplatte zu Speicherplatte der Einheit ermöglichen.
Dieses System mit physischen Adressen wird vom Dateiverwaltungssystem 10 weiter in logische Speicherinkremente aufgeteilt. Bei einem Dateisystem vom Typ Dateizuordnungstabelle werden die logischen Speicherinkremente typischerweise als Cluster bezeichnet. In der Darstellung von Fig. 1 sind vier verschiedene Bereiche A 42, B 44, C 46 und D 48 gezeigt (die ein oder mehrere Cluster sein können, wie hier näher beschrieben werden wird). Es sollte sich jedoch von selbst verstehen, dass eine Speichereinheit 40, wie zum Beispiel ein Festplattenlaufwerk, typischerweise eine viel höhere Anzahl von Bereichen als die in Fig. 1 gezeigte Anzahl enthält. Die in Fig. 1 gezeigte Anzahl von Bereichen wurde gewählt, damit sich die Operationen des Dateiverwaltungssystems 10 gemäß der vorliegenden Erfindung leichter verstehen lassen, wie hier näher erklärt werden wird. Es sollte sich ebenfalls von selbst verstehen, dass die logischen Speicherbereiche oder Cluster in Fig. 1 zwar zu einer Einheit zusammengefasst dargestellt sind, sie jedoch tatsächlich Gruppierungen von physischen Sektorpositionen auf der Speichereinheit 40 sein können, die nicht zusammenhängend angeordnet sind. Außerdem sollte es sich von selbst verstehen, dass die vorliegende Erfindung in einer Netzwerkumgebung realisiert werden kann, in der die Speichereinheit 40 aus einer oder mehreren physischen Einheiten bestehen kann, die kommunikativ mit einem Netzwerk verbunden sind, damit ein Anwendungsprogramm 30 über ein Betriebssystem 20 auf sie zugreifen kann.
Das Dateiverwaltungssystem 10 kommuniziert darüber hinaus interaktiv mit dem Dateiverzeichnis 50 und der Dateizuordnungstabelle 60. Das Dateiverzeichnis 50 und die Dateizuordnungstabelle 60 können sich tatsächlich auf bestimmten Sektoren der Speichereinheit 40 befinden, die zum Zeitpunkt der Initialisierung der Speichereinheit 40 festgelegt werden. Für das Dateiverzeichnis 50 und die Dateizuordnungstabelle 60 wird vorzugsweise ausreichend Speicherplatz zur Verfügung gestellt, damit die ganze Palette von Dateigrößen und -mengen unterstützt werden kann, die das Betriebssystem 20 benötigt. Außerdem kann für Redundanz gesorgt werden, um möglichen Defekten in der Speichereinheit 40 Rechnung zu tragen, indem das Dateiverzeichnis 50 und die Dateizuordnungstabelle 60 jeweils zweifach in der Speichereinheit 40 abgelegt werden.
Nun Bezug nehmend auf Fig. 2, wird jetzt ein beispielhafter Dateiverzeichniseintrag 70 beschrieben, der sich zur Verwendung mit der vorliegenden Erfindung eignet. Es sollte sich von selbst verstehen, dass das Dateiverwaltungssystem 10 zu einem bestimmten Zeitpunkt eine Vielzahl von Rollfensterdateien gemäß den Lehren der vorliegenden Erfindung verwalten kann, um Operationen von einer Vielzahl von Anwendungsprogrammen 30 zu unterstützen, die Datenspeicherströme erzeugen. Folglich kann das Dateiverzeichnis 50 eine Vielzahl von Dateiverzeichniseinträgen 70 enthalten, wobei jeder Dateiverzeichniseintrag 70 einer anderen Datei zugeordnet wird.
Der in Fig. 2 dargestellte Verzeichniseintrag 70 enthält eine Vielzahl von bezeichneten Feldern. Der Verzeichniseintrag 70 hat vorzugsweise eine feste, vorher festgelegte Länge, zum Beispiel eine Länge von 32 Byte, wobei jeder Datei ein Teil der Länge des Eintrags zugeordnet wird. Der Name der Datei und seine Erweiterung werden im Feld 72 "Name/Namenserweiterung" gespeichert. Das Feld 74 "Attribut" legt ein zugehöriges Attribut für die Datei fest. Der dargestellte Verzeichniseintrag 70 enthält darüber hinaus ein Feld 76 "Reserviert". Solche reservierten Felder zur zukünftigen Verwendung werden typischerweise in vorhandenen Dateisystemen vom Typ Dateizuordnungstabelle verwendet.
Auf das Feld 76 "Reserviert" im Verzeichniseintrag 70 von Fig. 2 folgt das Feld 78 "Typ". Gemäß der vorliegenden Erfindung dient das Feld 78 "Typ" zur Kennzeichnung einer bestimmten Datei als Rollfensterdatei. Wie nachstehend beschrieben wird, werden Dateispeicheroperationen für Rollfensterdateien anders als die gewöhnlichen Prozeduren bei Dateisystemen vom Typ Dateizuordnungstabelle verarbeitet.
Das nächste Feld im Verzeichniseintrag 70 von Fig. 2 ist das Feld 80 "Uhrzeit/Datum", das vorgesehen wird, um dem Dateisystem die Speicherung von Uhrzeit- und Datuminformationen zu ermöglichen, die zu Operationen an der dem Verzeichniseintrag 70 zugeordneten Datei gehören. In Fig. 2 ist auch ein Feld 82 "Zeiger" gezeigt, das einen Zeiger enthält, der auf einen Eintrag in der Dateizuordnungstabelle 60 zeigt, welcher dem ersten Bereich (oder Cluster) von Sektoren entspricht, die zur Speicherung von Daten in der Datei verwendet werden, die dem Verzeichniseintrag 70 zugeordnet ist. Schließlich gibt das Feld 84 "Größe" die Größe der Datei an, die dem Verzeichniseintrag 70 zugeordnet ist.
Das Feld 72 "Name/Namenserweiterung", das Feld 74 "Attribut", das Feld 76 "Reserviert", das Feld 80 "Uhrzeit/Datum" und das Feld 84 "Größe" sind dem Fachmann in Verbindung mit vorhandenen, auf einer Dateizuordnungstabelle basierenden Dateisystemen bekannt. Mit Ausnahme von ihrem Bezug zu Operationen gemäß der vorliegenden Erfindung werden die Operationen und das Format dieser Felder folglich hier nicht weiter beschrieben. Ferner sollte es sich von selbst verstehen, dass das Feld 78 "Typ" in vorhandenen Dateisystemen realisiert werden kann, indem ein begrenzter Teil des Feldes 76 "Reserviert" des vorhandenen Systems dem Feld "Typ" zugewiesen wird. Die vorliegende Erfindung kann dadurch in vorhandenen Dateisystemen ausgeführt werden, wobei lediglich ein einziges Bit eines vorhandenen Feldes "Reserviert" verwendet wird, um eine Datei zur Verwendung als Rollfensterdatei zu kennzeichnen. Mit Ausnahme des im Folgenden Erörterten entspricht das Feld 82 "Zeiger" ferner im Allgemeinen dem Feld "Clusterzeiger" von vorhandenen, auf einer Dateizuordnungstabelle basierenden Systemen.
Fig. 3 stellt schematisch einen Teil einer Dateizuordnungstabelle 60 dar, die sich zur Verwendung mit der vorliegenden Erfindung eignet. Die obere Zeile 92 in Fig. 3 enthält die Bereichs- (oder Segment-)Nummer der Dateizuordnungstabelle 60. Die untere Zeile 94 enthält beispielhafte Dateneinträge, die sich zur Verwendung bei der Beschreibung von Operationen gemäß verschiedener Ausführungsformen der vorliegenden Erfindung eignen. In der veranschaulichten Ausführungsform von Fig. 3 enthält jeder Bereich der Dateizuordnungstabelle 60 ein aus zwei Byte bestehendes Datenpaar, wie in der Zeile 94 gezeigt ist.
Die in Fig. 3 für die Dateizuordnungstabelle veranschaulichte grundlegende Struktur ist typisch für die von vorhandenen, auf einer Dateizuordnungstabelle basierenden Dateisystemen verwendete Struktur. Die ersten beiden Bereiche, der Bereich 00 96 und der Bereich 01 98, sind die Anfangsbytes der Dateizuordnungstabelle 60 und werden typischerweise zur Überwachung von Dateiinformationen verwendet. Folglich wird der erste Bereich in der Dateizuordnungstabelle 60, die zu dem Datenspeicher gehört, als der Bereich mit der Nummer 02 100 bezeichnet. Der Bereich 02 100 der Dateizuordnungstabelle 60 entspricht einem ersten Bereich (oder Cluster) des Speichers, wie zum Beispiel den physischen Plattensektoren auf der Speichereinheit 40, die zur Speicherung von Daten verwendet werden. Die Zuordnung eines bestimmten Bereichs wie zum Beispiel des Bereichs 02 100 zu einem physischen Sektor oder einer Gruppe von physischen Sektoren auf der Speichereinheit 40 wird von dem Dateiverwaltungssystem 10 in Zusammenarbeit mit Einheitentreibern verwaltet, die zu der Speichereinheit 40 gehören, und vorzugsweise zum Zeitpunkt der Initialisierung der Speichereinheit 40 festgelegt. Genauso werden die Bereiche 03 bis 07 102 bis 110 anderen physischen Sektoren oder Gruppen von Sektoren der Speichereinheit 40 zugeordnet.
Die Dateizuordnungstabelle 60 ermöglicht die aufeinanderfolgend verkettete Zuordnung einer Vielzahl von Bereichen 100 bis 110 zu einer bestimmten Datei. Eine Datei beispielsweise, die dem Verzeichniseintrag 70 entspricht, kann einen Wert des Zeigerfeldes 84 enthalten, der angibt, dass der erste Bereich in der Dateizuordnungstabelle 60, der dieser Datei zugeordnet ist, der Bereich 02 100 ist. Die Dateizuordnungstabelle 60 kann wiederum zur Feststellung verwendet werden, ob zusätzliche Bereiche oder Cluster verwendet werden, um die Informationen für die Datei zu speichern, die dem Verzeichniseintrag 70 zugeordnet ist. In dem Beispiel von Fig. 3 enthält der Bereich 02 100 ein Clusterfeld 94, das auf den Bereich 04 104 zeigt. Der Bereich 04 104 wiederum enthält ein Clusterfeld 94, das auf den Bereich 07 110 zeigt. Schließlich enthält der Bereich 07 110 ein Clusterfeld 94, das einen Eintrag "FFFF" enthält, der das Dateiende anzeigt. Auf der Basis des in Fig. 3 gezeigten Teils der Dateizuordnungstabelle 60 sind der Datei folglich keine weiteren Bereiche zugeordnet. Anders ausgedrückt, der Bereich 02 100 ist der erste Bereich, welcher der Datei zugeordnet ist, der Bereich 04 104 ist der zweite Bereich, und der Bereich 07 110 ist der Dateiendebereich, welcher der Datei zugeordnet ist, die im Verzeichniseintrag 70 benannt ist und ein Zeigerfeld 84 enthält, das auf den Bereich 02 100 der Dateizuordnungstabelle 60 zeigt.
Operationen gemäß einer Ausführungsform der vorliegenden Erfindung werden nun weiter mit Bezug auf die Flussdiagramme von Fig. 4 und Fig. 5 sowie die Prinzipdarstellung von Fig. 6 beschrieben. Zuerst Bezug nehmend auf Fig. 4, beginnen die Operationen am Block 150 damit, dass das Dateiverwaltungssystem 10 eine Rollfensterdatei anlegt, um einen Datenstrom von einem Anwendungsprogramm 30 zu unterstützen, indem sie der Rollfensterdatei eine festgelegte Anzahl von Plattenbereichen 42, 44, 46, 48 einschließlich eines ersten Bereichs und eines Dateiendebereichs zuordnet. In einer Umgebung eines auf einer Dateizuordnungstabelle basierenden Dateisystems entspricht jeder "Bereich" in der hier verwendeten Weise des Begriffs vorzugsweise einem einzelnen Cluster (oder einem logischen Speicherinkrement) bei der vorhandenen Dateisystemstruktur. Jeder "Bereich" in der hier verwendeten Form kann alternativ dazu einer Gruppe aus zwei oder mehr Clustern entsprechen, die dann entsprechend den hier beschriebenen Operationen als Gruppe verarbeitet werden. Außerdem kann ein "Bereich" ein Speichermaß auf einer Vielzahl von Speichereinheiten einschließlich RAM-Platten, Netzwerklaufwerken und anderen bekannten Arten von Speichereinheiten sein. Der Einfachheit halber und zum besseren Verständnis von verschiedenen Aspekten der vorliegenden Erfindung wird für den Rest der Beschreibung angenommen, dass ein Bereich einem einzelnen Cluster bei dem Dateiverwaltungssystem entspricht. Ferner kann die Anzahl der Bereiche, die anfangs dem Rollfenster zugeordnet werden, eine sehr kleine Anzahl von zwei oder mehr sein, wobei weitere Bereiche später auf Wunsch bis zu beispielsweise einer festgelegten Höchstzahl von Bereichen hinzugefügt werden können. Zum Zweck der folgenden Beschreibung wird davon ausgegangen, dass zum Zeitpunkt der Erstellung der Rollfensterdatei eine feste Anzahl von Bereichen vorgesehen und die Anzahl der Bereiche später nicht verändert wird.
Neben der Zuordnung von einer festgelegten Anzahl von Plattenbereichen zu der Datei erzeugt das Dateiverwaltungssystem 10 einen zu der Datei gehörenden Verzeichniseintrag 70, der in das Dateiverzeichnis 50 aufgenommen wird (Block 155). Der Verzeichniseintrag 70 wird vom Dateiverwaltungssystem 10 aktualisiert, um anzuzeigen, dass die Datei eine Rollfensterdatei ist. Mit Bezug auf die Ausführungsform des Verzeichniseintrags 70 in Fig. 2 ist das Feld 78 "Typ" so gesetzt, dass es eine Datei vom Typ Rollfenster anzeigt.
Nachdem die Rollfensterdatei angelegt wurde, wird eine Datenmenge zur Speicherung in der Rollfensterdatei empfangen (Block 160). Wenn die empfangenen Daten den nichtgenutzten Raum nicht überschreiten, der in den der Datei zugeordneten Bereichen verbleibt (Block 165), schalten die Operationen zum Block 170, und die Daten werden beispielsweise unter Verwendung von bekannten Techniken gespeichert, bei denen die Daten in den nächstfolgenden Bereich gestellt werden, welcher der Datei an der Position des aktuellen Relativzeigers zugeordnet ist. Wenn die zur Speicherung empfangene Datenmenge jedoch das nichtgenutzte Volumen der Bereiche überschreitet, die der Rollfensterdatei zugeordnet sind (Block 165), wird der erste Bereich in der verketteten Folge von Bereichen, die der Rollfensterdatei zugeordnet sind, als ein neuer Dateiendebereich neu festgelegt, wodurch der ursprüngliche erste Bereich in der verketteten Folge an die letzte Position geschoben wird (Block 175). Zu den Operationen am Block 175 gehört darüber hinaus die Neufestlegung eines zweiten Bereichs in den der Rollfensterdatei zugeordneten Plattenbereichen als neuer erster Bereich (der zuvor als der Bereich verkettet wurde, der unmittelbar auf den alten ersten Bereich folgt). Im Allgemeinen überschreitet die neue zur Speicherung empfangene Datenmenge das nichtgenutzte Volumen der Datei, wenn die Datenmenge das nichtgenutzte Volumen des Dateiendebereichs in der fortlaufenden Gruppe der zugeordneten Bereiche überschreitet.
Sobald die Bereiche neu festgelegt wurden, um den alten ersten Bereich zu entfernen, der die ältesten gespeicherten Daten enthielt, und um ihn zum neuen Dateiendebereich zu machen, werden die empfangenen Daten in dem neuen Dateiendebereich gespeichert, der zur Annahme neuer Daten zur Verfügung gestellt wurde (Block 180). Es sollte sich von selbst verstehen, dass die alten Daten in dem neuen Dateiendebereich natürlich nicht mehr behalten werden, sobald der Speicherplatz neu zugeordnet und zur Erfassung neuer Daten freigegeben wurde. Neue Daten können folglich weiterhin gespeichert werden, während eine feste Höchstgröße der Datei aufrechterhalten wird.
Nachdem die empfangenen Daten am Block 180 gespeichert wurden, kehren die Operationen zum Block 160 zurück, wo sie auf den Empfang weiterer Daten zur Speicherung warten. Wenn weitere Daten zur Speicherung empfangen werden, wiederholen sich die Operationen, wie sie für die Blöcke 165 bis 180 beschrieben wurden, wobei der erste Bereich bei jedem Wiederholungslauf verschoben wird, damit er zum Dateiendebereich wird.
Nun Bezug nehmend auf Fig. 5, werden Operationen für eine Ausführungsform der Neufestlegungsoperationen vom Block 175 von Fig. 4 ausführlicher beschrieben. Am Block 200 wird der zur Rollfensterdatei gehörende Verzeichniseintrag 70 aktualisiert, um einen Zeiger, der den ersten Bereich kennzeichnet, durch einen Zeiger zu ersetzen, der den neuen ersten Bereich kennzeichnet. Mit Bezug auf den in Fig. 2 gezeigten Verzeichniseintrag 70 würde das Feld 82 "Zeiger" aktualisiert werden, damit der Zeiger auf die entsprechende Nummer des Bereichs in der Dateizuordnungstabelle 60 zeigt, welcher der erste neue Bereich in der fortlaufend verketteten Gruppe von Bereichen ist, die der Datei zugeordnet sind.
Außerdem wird die Dateiendeanzeige in der Dateizuordnungstabelle 60, die dem Dateiendebereich zugeordnet ist, aktualisiert und durch einen Zeiger auf den neuen Dateiendebereich ersetzt (Block 205). Darüber hinaus wird eine Dateiendeanzeige in den neuen Dateiendebereich gestellt (Block 210). Mit Bezug auf Fig. 2 und Fig. 3 würde beispielsweise das Feld 84 "Zeiger" so geändert werden, dass es den Bereich 04 104 kennzeichnet, der zuvor der zweite Bereich in der fortlaufend verketteten Liste von zugeordneten Bereichen war, wenn das Feld 84 "Zeiger" des Verzeichniseintrags 70 ursprünglich auf den Bereich 02 100 verwiesen hätte. Der Bereich 07 110, der zuvor die Dateiende-Kennzeichnung FFFF enthielt, würde aktualisiert und mit einem Zeiger auf den neuen Dateiendebereich, den Bereich 02 100, versehen werden. Folglich würde eine Kennzeichnung 0002 in die Zeigerzeile 94 des Bereichs 07 110 gestellt werden. Außerdem würde der neue Dateiendebereich 02 100 aktualisiert werden, um den 0004- Zeiger durch eine FFFF-Dateiendekennzeichnung zu ersetzen.
Nochmals Bezug nehmend auf Fig. 5, würden die alten Daten neben der Aktualisierung des Verzeichniseintrags 70 und der Dateizuordnungstabelle 60 aus dem neuen Dateiendebereich gelöscht werden (Block 215). Die Löschoperation kann vorgesehen werden, indem die gespeicherten Daten nach einer Bestätigung überschrieben werden oder indem der Speicherplatz einfach als verfügbar gekennzeichnet wird, wodurch die alten Daten bei der Speicherung der neuen Daten mit neuen Daten überschrieben werden können. Außerdem wird der von dem Dateisystem verwendete aktuelle Relativzeiger aktualisiert, damit er der schrittweisen Verringerung des Relativzeigerwerts Rechnung trägt, die dadurch verursacht wird, dass der Bereich, der zuvor der erste Bereich war, an das Dateiende verschoben wird (Block 220). Diese Verschiebung beim aktuellen Relativzeiger trägt der Veränderung im Feld 84 "Zeiger" des Verzeichniseintrags 70 für nachfolgende Operationen und die Speicherung von Dateien Rechnung. Folglich ermöglichen die Systeme und Verfahren der vorliegenden Erfindung, wie sie für die in Fig. 4 und Fig. 5 dargestellte Ausführungsform beschrieben wurden, eine vereinfachte Ausführung einer Rollfensterdatei, welche die Erfassung von Hochgeschwindigkeits-Datenströmen oder variabel bitratigen Datenströmen unterstützt, als eine Datei fester Größe für Anwendungen wie zum Beispiel die Überwachung des Netzwerkbetriebs oder die Überwachung der Ausführung von Softwareprogrammen. Dieser neue Dateityp kann ein Mittel zur Unterstützung solcher Anwendungen bereitstellen, ohne einen Mehraufwand für das Betriebssystem zu verursachen, der die tatsächliche Datenerfassung stören oder unterbrechen könnte.
Nun Bezug nehmend auf Fig. 6, wird die vorliegende Erfindung durch Bezugnahme auf die schematische Darstellung einer als erläuterndes Beispiel dienenden Ausführungsform der Operationen gemäß der vorliegenden Erfindung näher beschrieben. Wie in Fig. 6 gezeigt ist, werden der Rollfensterdatei ursprünglich vier Bereiche mit der Bezeichnung A, B, C und D 42 bis 48 zugeordnet, die in der veranschaulichten Reihenfolge von A bis D fortlaufend verkettet sind. Die Rollfensterdatei kann in der zum Zeitpunkt T0 veranschaulichten Form unter Anwendung der direkten Kenntnis von Dateizuordnungsstrukturen innerhalb des Dateisystems realisiert werden, beispielsweise im Kern des Betriebssystems. Die Datei kann wie veranschaulicht mit einer vorher festgelegten Höchstgröße angelegt werden, um zu verhindern, dass verfügbare Plattenkapazität aufgebraucht wird. Wie beschrieben werden wird, nutzt die Rollfensterdatei während Dateiüberlaufbedingungen interne Kenntnisse des Dateisystems, um die Größe der Datei auf eine Weise zu verändern, die praktisch keinen Leistungsaufwand verursacht. Die ältesten Daten werden laufend gelöscht, ohne dass ein Eingriff des Daten erfassenden Anwendungsprogramms 30 notwendig ist.
Wie zum Zeitpunkt T0 in Fig. 6 gezeigt ist, wird die Rollfensterdatei ursprünglich unter Verwendung von einer ganzen Zahl von Plattensektoren oder -bereichen erstellt. Vorzugsweise wird die Leistungsfähigkeit der Platte verbessert, indem die physischen Sektoren zum Zeitpunkt der Erstellung mit einem erwünschten Abstand zueinander und mit kleinstmöglicher Fragmentierung innerhalb eines jeden Bereichs 42 bis 48 zugeordnet werden.
Wie nun mit Bezug auf die folgenden Zeiträume T1 bis T4 in Fig. 6 beschrieben wird, rollt eine Rollfensterdatei gemäß der vorliegenden Erfindung den erfassten Datenstrom entlang, indem sie den ältesten Sektor bei jedem Dateiüberlauf an das logische Dateiende schiebt. Zum Zeitpunkt T0 wurde die Rollfensterdatei erstellt, aber nicht benutzt. Die Bereiche A bis D, 44 bis 48, wurden typischerweise entsprechend einem systemabhängigen Schema zur Verbesserung der Leistungsfähigkeit zugeordnet. Der aktuelle Relativzeiger ist gleich der Position 300 mit einem Relativzeigerwert von null, und das Ende des Bereichs D 48 ist die Position des Dateiendezeigers 310.
Zum Zeitpunkt T1 hat die Datei angefangen, sich zu füllen. Der aktuelle Relativzeiger 320 zeigt auf eine Position im Innern des Bereichs C 46. Zum Zeitpunkt T1 sind keine Überlaufbedingungen an der Dateigrenze aufgetreten. Zum Zeitpunkt T2 ist die Datei praktisch ganz voll. Der aktuelle Relativzeiger 320 befindet sich praktisch an derselben Stelle wie der Dateiendezeiger 310. Der nächste Versuch, in die Datei zu schreiben, würde bei den bisher bekannten Dateiverwaltungssystemen und Dateistrukturen ohne die Vorteile der Rollfensterdatei der vorliegenden Erfindung folglich typischerweise dazu führen, dass als Antwort auf die Anforderung, Daten zu schreiben ein Fehlercode zurückgesendet wird.
Zum Zeitpunkt T3 wurde ein zusätzlicher Schreibbefehl, mit dem die Speicherung von Daten in die Datei angefordert wird, übergeben. Gemäß der vorliegenden Erfindung gliedert das Dateiverwaltungssystem 10 jedoch den Bereich A 42 wieder an, um ihn in der verketteten Liste der Bereiche, die der Datei zugeordnet sind, zum Dateiendebereich zu machen, statt eine Fehlerbedingung zurückzusenden. Der aktuelle Relativzeiger 300 wird aktualisiert, damit er der Verringerung um die ältesten Daten Rechnung trägt, die zuvor im Bereich A 42 gespeichert wurden. Die Daten aus dem Bereich A 42, welches die ältesten Daten in der Datei waren, werden gelöscht. Die angeforderte Schreiboperation speichert erfolgreich die jüngsten Daten, die zu der aktuellen Schreiboperation gehören, in dem erneut angegliederten Bereich A 42, der zum Zeitpunkt T3 der Dateiendebereich ist, wie in Fig. 6 gezeigt ist. Durch Verwendung einer Rollfensterdatei gemäß der vorliegenden Erfindung kann die Neuangliederungs-Operation auf eine Weise vorgesehen werden, die für das Anwendungsprogramm 30, das in die Datei schreibt, unsichtbar ist. Im Gegensatz zu herkömmlichen Vorgehensweisen, die keine Rollfensterdatei verwenden, braucht/brauchen das/die Schreib- Anwendungsprogramm(e) 30, welche(s) die vorliegende Erfindung verwendet/verwenden, kein Protokoll über den aktuellen Umlauf- Relativzeigerwert zu führen, wodurch der Anwendungsprogramm- Code einfacher gestaltet und eine große Anzahl von kostspieligen zusätzlichen Such- und Schreiboperationen, um den Relativzeiger zu speichern, vermieden werden kann. Da das Dateisystem gemäß der vorliegenden Erfindung das Rücksetzen des Datei-Relativzeigerwerts auf den Anfang transparent verwaltet, wenn ein Überlauf auftritt, braucht/brauchen das/die Anwendungsprogramm(e) 30 auch nicht zu überwachen, wie voll die Datei wird oder bei einem Überlauf nicht einen Suchlauf zurück zum Anfang zu starten. Außerdem ist es nicht notwendig, dass das/die Lese-Anwendungsprogramm(e) 30 das Format der Datei verstehen, um den Start-Relativzeiger syntaktisch analysieren zu können, da sich die ältesten Daten immer am Anfang der Datei befinden, was es entbehrlich macht, den Relativzeiger in der Datei zu speichern.
Zum Zeitpunkt T4 wird der Prozess wiederholt, während die Datenerfassung fortgesetzt wird, wie durch die erneute Angliederung des Bereichs B 44 gezeigt ist, um einem Überlauf aus dem Bereich A 42 Rechnung zu tragen. Indem zuvor zugeordnete Sektoren erneut verwendet werden, kann die Rollfensterdatei gemäß der vorliegenden Erfindung theoretisch ständig Daten erfassen, ohne je möglicherweise kostspielige Plattenzuordnungsoperationen während Datenspeicherungsereignissen durchführen zu müssen. Wie in der Ausführungsform von Fig. 6 beschrieben wird, besteht der tatsächliche Leistungsaufwand für eine Neuangliederung folglich in der Aktualisierung zweier Zeiger und der Verringerung des aktuellen Relativzeigerwerts.
Operationen der vorliegenden Erfindung wurden vorstehend mit Bezug auf die Flussdiagramme der Fig. 4 und 5 beschrieben. Es versteht sich von selbst, dass jeder Block der dargestellten Flussdiagramme und/oder Blockdiagramme und Kombinationen von Blöcken in den dargestellten Flussdiagrammen und/oder Blockdiagrammen von Befehlen eines Rechnerprogramms durchgeführt werden können. Diese Programmbefehle können an einen Prozessor ausgegeben werden, um eine Maschine zu erzeugen, so dass die Befehle, die auf dem Prozessor ausgeführt werden, ein Mittel zur Durchführung der Funktionen erzeugen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegeben sind. Die Befehle des Rechnerprogramms können von einem Prozessor ausgeführt werden, um zu bewirken, dass der Prozessor eine Reihe von Arbeitsschritten durchführt, um einen von einem Rechner ausgeführten Prozess so zu erzeugen, dass die Befehle, die auf dem Prozessor ausgeführt werden, Schritte zur Durchführung der Funktionen bereitstellen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegeben sind.
Folglich unterstützen Blöcke des dargestellten Flussdiagramms und/oder Blockdiagramms Kombinationen von Mitteln zur Durchführung der angegebenen Funktionen, Kombinationen von Schritten zur Durchführung der angegebenen Funktionen und Programmbefehlsmittel zur Durchführung der angegebenen Funktionen. Es versteht sich ebenfalls von selbst, dass jeder Block des dargestellten Flussdiagramms und/oder Blockdiagramms sowie Kombinationen von Blöcken in dem dargestellten Flussdiagramm und/oder Blockdiagramm von Systemen für spezielle Anwendungen auf Hardwarebasis, welche die angegebenen Funktionen oder Schritte durchführen, oder von Kombinationen von Hardwareprodukten für spezielle Anwendungen und Rechnerbefehlen realisiert werden können.
Wie der Fachmann verstehen wird, können die vorstehend beschriebenen Erscheinungsformen der vorliegenden Erfindung in den Figuren durch Hardware, Software oder eine Kombination von beidem bereitgestellt werden. Verschiedene Komponenten des Datenspeichersystems der vorliegenden Erfindung können in der Praxis durch einen Mikrocontroller, der Eingangs- und Ausgangsanschlüsse hat und Softwarecode ausführt, kundenspezifische integrierte Schaltungen oder integrierte Hybrid-Schaltungen, diskrete Bauelemente oder eine Kombination des Vorgenannten realisiert werden. Allgemeiner ausgedrückt, Operationen gemäß der vorliegenden Erfindung können in der Hardware von vorhandenen Rechnern oder anderen programmierbaren Einheiten realisiert werden, wie vorstehend beschrieben wurde.
In den Zeichnungen und in der Beschreibung wurden typische bevorzugte Ausführungsformen der Erfindung offengelegt, und obwohl spezielle Begriffe verwendet werden, werden sie lediglich in einem allgemeinen und beschreibenden Sinn und nicht mit einschränkendem Charakter gebraucht. Der Umfang der Erfindung ist in den folgenden Ansprüchen dargelegt.

Claims (21)

1. Verfahren zur Speicherung von Daten in einer Datei, das die folgenden Schritte umfasst:
Zuordnen einer festgelegten Anzahl von Speicherbereichen einschließlich eines ersten Bereichs und eines Dateiendebereichs zu der Datei;
Speichern von Daten in den zugeordneten Speicherbereichen, um ein nichtgenutztes Volumen der Datei bereitzustellen, das einem Teil der zugeordneten Speicherbereiche entspricht, die keine Daten enthalten; und anschließend Empfangen von zusätzlichen Daten;
Neufestlegen des ersten Bereichs als ein neuer Dateiendebereich; und
Speichern von mindestens einem Teil der zusätzlichen Daten in dem neuen Dateiendebereich.
2. Verfahren nach Anspruch 1, wobei der Schritt des Empfangens zusätzlicher Daten den Schritt des Empfangens einer zusätzlichen Datenmenge zur Speicherung in der Datei umfasst, wobei die zusätzliche Datenmenge das nichtgenutzte Volumen der Datei überschreitet.
3. Verfahren nach Anspruch 2, wobei der Schritt der Zuordnung einer festgelegten Anzahl von Speicherbereichen des Weiteren die folgenden Schritte umfasst:
Erstellen eines zu der Datei gehörenden Verzeichniseintrags; und
Aktualisieren des Verzeichniseintrags, um anzuzeigen, dass die Datei eine Datei vom Typ Rollfenster ist.
4. Verfahren nach Anspruch 2, wobei dem Schritt der Zuordnung einer festgelegten Anzahl von Bereichen der Schritt der Feststellung vorausgeht, ob die Datei als eine Datei vom Typ Rollfenster gekennzeichnet ist.
5. Verfahren nach Anspruch 3, wobei der Schritt der Speicherung von Daten in den zugeordneten Speicherbereichen den Schritt der Speicherung von Daten in den zugeordneten Speicherbereichen fortlaufend vom ersten Bereich bis zum Dateiendebereich umfasst und wobei der Schritt der Neufestlegung des Weiteren den Schritt der Neufestlegung eines zweiten Bereichs in den zugeordneten Speicherbereichen als einen neuen ersten Bereich umfasst, wobei der zweite Bereich unmittelbar auf den ersten Bereich folgt.
6. Verfahren nach Anspruch 5, wobei auf den Schritt der Speicherung der zusätzlichen Daten in dem neuen Dateiendebereich die nachstehenden Schritte folgen:
Empfangen von weiteren zusätzlichen Daten;
Neufestlegen des neuen ersten Bereichs als ein zweiter neuer Dateiendebereich und eines dritten Bereichs in den zugeordneten Speicherbereichen als ein zweiter neuer erster Bereich, wobei der dritte Bereich unmittelbar auf den neuen ersten Bereich folgt; und
Speichern der weiteren zusätzlichen Daten in dem zweiten neuen Dateiendebereich.
7. Verfahren nach Anspruch 5, wobei der Schritt der Neufestlegung die folgenden Schritte umfasst:
Aktualisieren des Verzeichniseintrags, der zu der Datei gehört, um einen Zeiger, der den ersten Bereich kennzeichnet, durch einen Zeiger zu ersetzen, der den neuen ersten Bereich kennzeichnet; und
Aktualisieren einer Dateizuordnungstabelle, um eine Dateiendeanzeige im Dateiendebereich durch einen Zeiger auf den neuen Dateiendebereich zu ersetzen und um eine Dateiendeanzeige in den neuen Dateiendebereich zu stellen.
8. Verfahren zur Speicherung von Daten in einer Rollfensterdatei, die eine festgelegte Anzahl von fortlaufend zugeordneten Speicherbereichen von einem ersten Bereich bis zu einem Dateiendebereich enthält, wobei der Dateiendebereich ein nichtgenutztes Volumen hat, wobei das Verfahren die folgenden Schritte umfasst:
Empfangen einer Datenmenge zur Speicherung in der Rollfensterdatei, welche das nichtgenutzte Volumen des Dateiendebereichs überschreitet;
Neufestlegen des ersten Bereichs als ein neuer Dateiendebereich;
Neufestlegen eines zweiten Bereichs in den zugeordneten Speicherbereichen als ein neuer erster Bereich, wobei der zweite Bereich unmittelbar auf den ersten Bereich folgt; und
Speichern der empfangenen Daten in dem neuen Dateiendebereich.
9. Verfahren nach Anspruch 8, wobei auf den Schritt der Speicherung der empfangenen Daten die nachstehenden Schritte folgen:
Empfangen von zusätzlichen Daten zur Speicherung in der Rollfensterdatei, die ein nichtgenutztes Volumen des neuen Dateiendebereichs überschreiten;
Neufestlegen des neuen ersten Bereichs als ein zweiter neuer Dateiendebereich und eines dritten Bereichs in den zugeordneten Speicherbereichen als ein zweiter neuer erster Bereich, wobei der dritte Bereich unmittelbar auf den neuen ersten Bereich folgt; und
Speichern der zusätzlichen Daten in dem zweiten neuen Dateiendebereich.
10. Verfahren nach Anspruch 8, wobei die Rollfensterdatei ein Dateityp ist, der von einem Dateisystem unterstützt wird, und wobei das Dateisystem ein auf einer Dateizuordnungstabelle basierendes Dateisystem ist und die Speicherbereiche Cluster sind, die von dem Dateisystem verwaltet werden.
11. Verfahren nach Anspruch 8, wobei die Rollfensterdatei einen zugehörigen Verzeichniseintrag hat und wobei der Schritt der Neufestlegung die folgenden Schritte umfasst:
Aktualisieren des zugehörigen Verzeichniseintrags, um einen Zeiger, der den ersten Bereich kennzeichnet, durch einen Zeiger zu ersetzen, der den neuen ersten Bereich kennzeichnet; und
Aktualisieren einer Dateizuordnungstabelle, um eine Dateiendeanzeige im Dateiendebereich durch einen Zeiger auf den neuen Dateiendebereich zu ersetzen und um eine Dateiendeanzeige in den neuen Dateiendebereich zu stellen.
12. Auf einer Rollfensterdatei basierendes System zur Speicherung von Daten, wobei das System Folgendes umfasst:
Mittel, um einer Rollfensterdatei eine festgelegte Anzahl von Speicherbereichen einschließlich eines ersten Bereichs und eines Dateiendebereichs zuzuordnen;
Mittel, um Daten zur Speicherung zu empfangen;
Mittel, um empfangene Daten in den zugeordneten Speicherbereichen zu speichern, um ein nichtgenutztes Volumen der Datei bereitzustellen, das einem Teil der zugeordneten Speicherbereiche entspricht, die keine Daten enthalten; und
Mittel, die auf den Empfang von zusätzlichen Daten ansprechen, welche das nichtgenutzte Volumen der Datei überschreiten, um den ersten Bereich als einen neuen Dateiendebereich neu festzulegen und um die zusätzlichen Daten in dem neuen Dateiendebereich zu speichern.
13. System nach Anspruch 12, wobei das Mittel zur Zuordnung einer festgelegten Anzahl von Speicherbereichen des Weiteren Folgendes umfasst:
Mittel, um einen zu der Datei gehörenden Verzeichniseintrag zu erstellen; und
Mittel, um den Verzeichniseintrag zu aktualisieren, um anzuzeigen, dass die Datei eine Datei vom Typ Rollfenster ist.
14. System nach Anspruch 12, wobei das Mittel zur Speicherung von empfangenen Daten in den zugeordneten Speicherbereichen Mittel umfasst, um empfangene Daten in den zugeordneten Speicherbereichen fortlaufend vom ersten Bereich bis zum Dateiendebereich zu speichern und wobei das Mittel zur Neufestlegung des Weiteren Mittel umfasst, um einen zweiten Bereich in den zugeordneten Speicherbereichen als einen neuen ersten Bereich neu festzulegen, wobei der zweite Bereich unmittelbar auf den ersten Bereich folgt.
15. System nach Anspruch 14, wobei das Mittel zur Neufestlegung Folgendes umfasst:
Mittel, um einen zu der Datei gehörenden Verzeichniseintrag zu aktualisieren, um einen Zeiger, der den ersten Bereich kennzeichnet, durch einen Zeiger zu ersetzen, der den neuen ersten Bereich kennzeichnet; und
Mittel, um eine Dateizuordnungstabelle zu aktualisieren, um eine Dateiendeanzeige im Dateiendebereich durch einen Zeiger auf den neuen Dateiendebereich zu ersetzen und um eine Dateiendeanzeige in den neuen Dateiendebereich zu stellen.
16. System nach Anspruch 15, wobei die Rollfensterdatei ein Dateityp ist, der von einem Dateisystem unterstützt wird, und wobei das Dateisystem ein auf einer Dateizuordnungstabelle basierendes Dateisystem ist und die Speicherbereiche Cluster sind, die von dem Dateisystem verwaltet werden.
17. System zur Speicherung von Daten, das Folgendes umfasst:
eine Rollfensterdatei, die eine festgelegte Anzahl von fortlaufend zugeordneten Bereichen von einem ersten Bereich bis zu einem Dateiendebereich enthält, wobei der Dateiendebereich ein nichtgenutztes Volumen hat;
Mittel, um eine Datenmenge zur Speicherung in der Rollfensterdatei zu empfangen, welche das nichtgenutzte Volumen des Dateiendebereichs überschreitet;
Mittel, um den ersten Bereich als einen neuen Dateiendebereich neu festzulegen;
Mittel, um einen zweiten Bereich in den zugeordneten Speicherbereichen als einen neuen ersten Bereich neu festzulegen, wobei der zweite Bereich unmittelbar auf den ersten Bereich folgt; und
Mittel, um die empfangenen Daten in dem neuen Dateiendebereich zu speichern.
18. System nach Anspruch 17, wobei die Rollfensterdatei ein Dateityp ist, der von einem Dateisystem unterstützt wird, und wobei das Dateisystem ein auf einer Dateizuordnungstabelle basierendes Dateisystem ist und die Speicherbereiche Cluster sind, die von dem Dateisystem verwaltet werden.
19. System nach Anspruch 18, wobei die Rollfensterdatei einen zugehörigen Verzeichniseintrag hat und wobei das Mittel zur Neufestlegung Folgendes umfasst:
Mittel, um den zugehörigen Verzeichniseintrag zu aktualisieren, um einen Zeiger, der den ersten Bereich kennzeichnet, durch einen Zeiger zu ersetzen, der den neuen ersten Bereich kennzeichnet; und
Mittel, um eine Dateizuordnungstabelle zu aktualisieren, um eine Dateiendeanzeige im Dateiendebereich durch einen Zeiger auf den neuen Dateiendebereich zu ersetzen und um eine Dateiendeanzeige in den neuen Dateiendebereich zu stellen.
20. Ein Computerprogramm Produkt umfassend ein computerlesbares Speichermedium, das ein computerlesbares Programm speichert, welches computerlesbare Programmteile zur Ausführung des Verfahrens nach einem der Ansprüche 1 -11 enthält.
21. Ein Computerprogramm Produkt umfassend ein computerlesbares Speichermedium, das ein computerlesbares Programm speichert, welches computerlesbare Programmteile zur Ausführung des Verfahrens nach einem der Ansprüche 12 -19 enthält.
DE10039505A 1999-08-16 2000-08-12 Verfahren, Systeme und Rechner-Programmprodukte zur Speicherung von Daten mit Hilfe einer Rollfensterdatei Ceased DE10039505A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/375,071 US6910054B1 (en) 1999-08-16 1999-08-16 Methods, systems and computer program products for storing data using a rolling window file

Publications (1)

Publication Number Publication Date
DE10039505A1 true DE10039505A1 (de) 2001-03-15

Family

ID=23479372

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10039505A Ceased DE10039505A1 (de) 1999-08-16 2000-08-12 Verfahren, Systeme und Rechner-Programmprodukte zur Speicherung von Daten mit Hilfe einer Rollfensterdatei

Country Status (2)

Country Link
US (1) US6910054B1 (de)
DE (1) DE10039505A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320103B2 (en) * 2004-08-24 2008-01-15 Kraft Foods Holdings, Inc. Diagnostic data gathering apparatus and method
US8285757B2 (en) * 2007-01-31 2012-10-09 Agency For Science, Technology And Research File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system
US7917479B2 (en) * 2007-03-20 2011-03-29 Micron Technology, Inc. Non-volatile memory devices, systems including same and associated methods
US10635724B2 (en) 2015-01-30 2020-04-28 International Business Machines Corporation Analysis of data utilization
US9612754B1 (en) 2015-06-29 2017-04-04 EMC IP Holding Company LLC Data storage system with window allocation using window cache
US9594513B1 (en) 2015-06-29 2017-03-14 EMC IP Holding Company LLC Data storage system with file system stream detection
US9917913B2 (en) * 2016-05-23 2018-03-13 Microsoft Technology Licensing, Llc Large message support for a publish-subscribe messaging system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371885A (en) 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
JPH0743732B2 (ja) * 1989-09-12 1995-05-15 三菱電機株式会社 収集データの格納方法
US5333311A (en) * 1990-12-10 1994-07-26 Alsoft, Inc. Optimizing a magnetic disk by allocating files by the frequency a file is accessed/updated or by designating a file to a fixed location on a disk
US5649151A (en) * 1992-06-29 1997-07-15 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5422762A (en) 1992-09-30 1995-06-06 Hewlett-Packard Company Method and apparatus for optimizing disk performance by locating a file directory on a middle track and distributing the file allocation tables close to clusters referenced in the tables
US5432928A (en) * 1992-11-10 1995-07-11 Microsoft Corporation Updating objects stored in a permanent container while preserving logical contiguity
EP0681721B1 (de) * 1993-02-01 2005-03-23 Sun Microsystems, Inc. Archivierungsdateiensystem für datenanbieter in einer verteilten netzwerkumgebung
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5675769A (en) 1995-02-23 1997-10-07 Powerquest Corporation Method for manipulating disk partitions
US5710919A (en) * 1995-09-29 1998-01-20 Electronic Data Systems Corporation Record compression
US5832526A (en) * 1996-01-24 1998-11-03 Symantec Corporation Method and apparatus using slack area of file storage structures for file reconstruction
US5960446A (en) * 1997-07-11 1999-09-28 International Business Machines Corporation Parallel file system and method with allocation map
US6216125B1 (en) * 1998-07-02 2001-04-10 At&T Corp. Coarse indexes for a data warehouse
US6298474B1 (en) * 1999-04-30 2001-10-02 Intergral Vision, Inc. Method and system for interactively developing a graphical control-flow structure and associated application software for use in a machine vision system and computer-readable storage medium having a program for executing the method

Also Published As

Publication number Publication date
US6910054B1 (en) 2005-06-21

Similar Documents

Publication Publication Date Title
DE69636192T2 (de) Datenmigrationssystem und -verfahren unter verwendung von undichten dateien
DE4218025C2 (de) Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem
DE602004005050T2 (de) Verfahren, vorrichtung und computerprogramm zum verarbeiten einer warteschlange von nachrichten
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE60038364T2 (de) Computersystem und Speicherauszugsdatenverwaltungsverfahren
DE3743890C2 (de)
DE60129025T2 (de) Speicherbereichszuordnung in einem dateisystem zum beschreiben beliebiger bereiche
DE4435751B4 (de) Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem
DE69831944T2 (de) Vorrichtung und verfahren zur sicherung eines plattenspeichersystem
DE69926227T2 (de) System und verfahren zum verbessern von programmstartzeit
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE3151745C2 (de)
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE602004002674T2 (de) Speichersystem und Verfahren zur Erfassung und Verwendung von Schnappschüssen
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE60112257T2 (de) Virtuelles Dateisystem für dynamisch erzeugte Webseiten
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE112009004503T5 (de) Optimierung der zugriffszeit von auf speichern gespeicherten dateien
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
EP3084638A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE19847133A1 (de) System und Verfahren zum Aktualisieren von Zuordnungen von Partitionen zu logischen Laufwerken in einem Computerspeichergerät
DE19852250A1 (de) System und Verfahren zum Ändern der Zuordnung einer Partition zu einem logischen Laufwerk in einem Computerspeicher
DE102014116031A1 (de) SWAT-Befehl und API für atomare Auslagerung und Trimmen von LBAs
DE10296957T5 (de) Ein Verfahren zum Verwenden nicht-temporaler Streaming-Speicheroperationen zum Verbessern eines Algorithmus zur Sammlung wertloser Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection