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 RollfensterdateiInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- 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
Die vorliegende Erfindung betrifft die Dateiverwaltung und
insbesondere die Datenspeicherung in Dateien.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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 |
-
1999
- 1999-08-16 US US09/375,071 patent/US6910054B1/en not_active Expired - Fee Related
-
2000
- 2000-08-12 DE DE10039505A patent/DE10039505A1/de not_active Ceased
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 |