-
HINTERGRUND DER ERFINDUNG
-
Daten, die auf einem primären Datenträger gehalten werden, können auch auf einen sekundären Datenträger gesichert (engl. backed-up) werden. Der sekundäre Datenträger kann sich an einem anderen Ort als der primäre Datenträger befinden. Sollte ein auch nur teilweiser Datenverlust auf dem primären Datenträger auftreten, können die Daten mittels des sekundären Datenträgers wiederhergestellt werden. Der sekundäre Datenträger kann auch eine zeitliche Entwicklung der auf dem primären Datenträger gespeicherten Daten über einen Zeitraum enthalten. Auf Anfrage durch einen Benutzer kann der sekundäre Datenträger dem Benutzer die Daten bereitstellen, die auf dem primären Datenträger zu einem bestimmten Zeitpunkt gespeichert waren.
-
Datensicherungsvorgänge können wöchentlich, täglich, stündlich oder in anderen Intervallen ausgeführt werden. Die Daten können inkrementell gesichert werden, wobei nur die Änderungen, die an den Daten auf dem primären Datenträger seit der letzten Sicherung vorgenommen wurden, auf den sekundären Datenträger übertragen werden. Es können auch Vollsicherungen ausgeführt werden, bei denen der gesamte Inhalt des primären Datenträgers auf den sekundären Datenträger kopiert wird. Es existieren viele weitere Sicherungsstrategien.
-
Beim Erstellen von Sicherungskopien von Daten kann ein bestimmter Teil der zu sichernden Daten bereits vorher auf dem primären Datenträger gespeichert sein, was insbesondere dann der Fall sein kann, wenn Vollsicherungen ausgeführt werden. Das mehrfache Speichern derselben Daten stellt eine ineffiziente Nutzung eines Datenträgers dar.
-
US 5,990,810 beschreibt ein Dateisystem zur Vermeidung von redundanter Datenspeicherung. Dieses Dateisystem folgt einer dreistufigen Organisation. Die untere Ebene bilden auf dem Datenträger abgespeicherte Datenblöcke. Diese werden auf der mittleren Ebene bspw. von einer Hash-Tabelle referenziert. Die obere Ebene besteht aus einer Tabelle von Dateien, durch die unter Verwendung der Hash-Tabelleneinträge Dateinamen zu abgespeicherten Datenblöcken zugeordnet werden.
-
US 2006/0168409 beschreibt die Möglichkeit einer der Reduzierung doppelt gespeicherter Daten, die in einem aktiven Dateisystem und einem zu einem bestimmten Zeitpunkt erstellten persistenten Images dieses Dateisystems vorhanden sind. Hierzu werden die Dateiverwaltungsknoten (Inodes) auf dem aktiven Dateisystem und dem Image miteinander verglichen, wobei bei einer festgestellten Übereinstimmung zweier Inodes davon ausgegangen wird, dass auch die jeweils von ihnen referenzierten Datenblöcke übereinstimmen. Bei Verschiedenheit von Inodes werden Datenblöcke des aktiven Dateisystems mit jenen des Images verglichen. Bei festgestellter oder vermuteter Identität eines Datenblocks wird das Dateisystem angewiesen, auf den im Image vorhandenen Datenblock zu verweisen, während bei Verschiedenheit auf den Datenblock des Dateisystems verwiesen wird. Diese Technik wird das ”Dateifaltung” bezeichnet.
-
Demgegenüber stellt sich die Aufgabe, eine einfache, aber gleichwohl speicherplatzeffiziente Organisation zur Sicherung und Wiederherstellung von Daten bereitzustellen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
In einer Ausführungsform stellt die vorliegende Erfindung eine Datenverarbeitungsvorrichtung bereit, die Folgendes umfasst: einen Abschnittspeicher (engt. chunk store), der dafür eingerichtet ist, Musterdatenabschnitte (engl. specimen data chunk) zu enthalten, einen separaten Verzeichnisspeicher, der dafür eingerichtet ist, wenigstens ein Verzeichnis (engl. manifest) zu enthalten, das wenigstens einen Teil eines Datensatzes repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei die Verarbeitungsvorrichtung dafür eingerichtet ist, Eingabedaten in Eingabedatenabschnitte zu verarbeiten und wenigstens ein Verzeichnis im Verzeichnisspeicher zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt enthält, der wenigstens einem der Eingabedatenabschnitte entspricht.
-
In einer Ausführungsform ist die Datenverarbeitungsvorrichtung dafür eingerichtet, das identifizierte wenigstens eine Verzeichnis zu analysieren und wenigstens einen Verweis auf einen Musterdatenabschnitt zu identifizieren, der wenigstens einem weiteren Eingabedatenabschnitt entspricht.
-
In einer Ausführungsform ist die Datenverarbeitungsvorrichtung dafür eingerichtet, wenigstens einen der Eingabedatenabschnitte als einen Musterdatenabschnitt im Abschnittspeicher zu speichern, falls für den wenigstens einen Eingabedatenabschnitt im Einsatz festgestellt werden sollte, dass er nicht wenigstens einem der Musterdatenabschnitte im Abschnittspeicher entspricht.
-
In einer Ausführungsform ist die Datenverarbeitungsvorrichtung dafür eingerichtet, einen Abschnittindex zu umfassen, der Information enthält, die die Musterdatenabschnitte betrifft, die im Abschnittspeicher enthalten sind.
-
In einer Ausführungsform ist die Datenverarbeitungsvorrichtung dafür eingerichtet, einen Abschnittindex zu umfassen, der Information enthält, die nur einige der Musterdatenabschnitte betrifft, die im Abschnittspeicher enthalten sind.
-
In einer Ausführungsform ist die Vorrichtung dafür eingerichtet, den entsprechenden Musterdatenabschnitt unter Verwendung der im Abschnittindex enthaltenen Information zu identifizieren.
-
In einer Ausführungsform enthält die im Abschnittindex enthaltene Information Einzelheiten über wenigstens ein Verzeichnis im Verzeichnisspeicher, das einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst.
-
In einer Ausführungsform umfasst die im Abschnittindex enthaltene Information eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte.
-
In einer Ausführungsform ist die Abschnittkennung eine partielle Abschnittkennung, die einem oder mehreren der Musterdatenabschnitte entspricht.
-
In einer Ausführungsform ist die Vorrichtung dafür eingerichtet, für einen zu verarbeitenden Eingabedatenabschnitt eine Abschnittkennung zu erzeugen.
-
In einer Ausführungsform ist die Vorrichtung dafür eingerichtet, den entsprechenden Musterdatenabschnitt zu identifizieren, indem sie die Abschnittkennung des Musterdatenabschnitts mit der Abschnittkennung des Eingabedatenabschnitts vergleicht.
-
In einer Ausführungsform ist der Verzeichnisspeicher dafür eingerichtet, Information zu enthalten, die das wenigstens eine darin gespeicherte Verzeichnis betrifft.
-
In einer Ausführungsform umfasst der Verzeichnisspeicher eine Abschnittkennung für den wenigstens einen Musterdatenabschnitt, auf den das wenigstens eine Verzeichnis verweist.
-
In einer Ausführungsform ist die Datenverarbeitungsvorrichtung dafür eingerichtet, das identifizierte wenigstens eine Verzeichnis zu analysieren und wenigstens einen Verweis auf einen Musterdatenabschnitt zu identifizieren, der wenigstens einem weiteren Eingabedatenabschnitt entspricht, indem sie eine Abschnittkennung eines Eingabedatenabschnitts mit der Abschnittkennung des wenigstens einen Musterdatenabschnitts 6 vergleicht, der im Verzeichnisspeicher gespeichert ist.
-
In einer Ausführungsform hat ein entsprechender Musterdatenabschnitt eine Abschnittkennung, die wenigstens teilweise ähnlich zu einer Abschnittkennung eines Eingabedatenabschnitts ist.
-
In einer weiteren Ausführungsform stellt die vorliegende Erfindung eine Datenverarbeitungsvorrichtung bereit, die Folgendes umfasst: einen Abschnittspeicher, der Musterdatenabschnitte zuvor verarbeiteter Datensätze enthält, einen Abschnittindex, der eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte enthält, einen separaten Verzeichnisspeicher, der wenigstens ein Verzeichnis enthält, das einen zuvor verarbeiteten Datensatz repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei die Verarbeitungsvorrichtung dafür eingerichtet ist, zu verarbeitende Eingabedaten in Eingabedatenabschnitte aufzuteilen; eine Abschnittkennung für wenigstens einen der Eingabedatenabschnitte zu erzeugen, eine entsprechende Abschnittkennung im Abschnittindex zu identifizieren; und daraus wenigstens eines der Verzeichnisse im Verzeichnisspeicher zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt umfasst, der identisch mit dem Eingabedatenabschnitt ist.
-
In einer weiteren Ausführungsform stellt die vorliegende Erfindung einen Datenverdichter bereit, der Folgendes umfasst: einen Abschnittspeicher, der dafür eingerichtet ist, Musterdatenabschnitte zu enthalten, einen separaten Verzeichnisspeicher, der dafür eingerichtet ist, wenigstens ein Verzeichnis zu enthalten, das einen Datensatz repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei der Verdichter dafür eingerichtet ist, Eingabedaten in Eingabedatenabschnitte aufzuteilen, einen der Eingabedatenabschnitte auszuwählen und wenigstens ein Verzeichnis zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt umfasst, der dem ausgewählten Eingabedatenabschnitt entspricht, und das wenigstens eine identifizierte Verzeichnis auf Verweise auf weitere Musterdatenabschnitte zu untersuchen, die weiteren Eingabedatenabschnitten des Datensatzes entsprechen.
-
In einer weiteren Ausführungsform stellt die vorliegende Erfindung ein Verfahren zur Verarbeitung von Eingabedaten bereit, das Folgendes einsetzt: einen Abschnittspeicher, der Musterdatenabschnitte enthält, einen separaten Verzeichnisspeicher, der wenigstens ein Verzeichnis enthält, das einen Datensatz repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei das Verfahren Folgendes umfasst: das Verarbeiten der Eingabedaten in Eingabedatenabschnitte und das Identifizieren wenigstens eines Verzeichnisses im Verzeichnisspeicher, das wenigstens einen Verweis auf einen Musterdatenabschnitt umfasst, der einem der Eingabedatenabschnitte entspricht.
-
In einer Ausführungsform umfasst das Verfahren das Überprüfen des identifizierten wenigstens einen Verzeichnisses, um wenigstens einen weiteren Musterdatenabschnitt zu finden, der wenigstens einem weiteren der Eingabedatenabschnitte der Eingabedaten entspricht.
-
In einer weiteren Ausführungsform stellt die vorliegende Erfindung ein Verfahren zur Verarbeitung von Eingabedaten bereit, das Folgendes einsetzt: einen Abschnittspeicher, der Musterdatenabschnitte zuvor verarbeiteter Datensätze enthält, einen Abschnittindex, der eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte enthält, einen separaten Verzeichnisspeicher, der wenigstens ein Verzeichnis enthält, das einen zuvor verarbeiteten Datensatz repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei das Verfahren Folgendes umfasst, das Aufteilen der Eingabedaten in Eingabedatenabschnitte, das Erzeugen einer Abschnittkennung für einen der Eingabedatenabschnitte, das Identifizieren einer entsprechenden Abschnittkennung im Abschnittindex und daraus das Identifizieren wenigstens eines Verzeichnisses in der Verzeichnisdatenbasis, das einen Verweis auf einen Musterdatenabschnitt enthält, der identisch mit dem Eingabedatenabschnitt ist.
-
KURZE BESCHREIBUNG DER ZEICHNUNG
-
Es werden nun Ausführungsformen der Erfindung beschrieben, wobei diese nur beispielhaft und mit Bezug auf die beigefügte Zeichnung beschrieben sind, in der:
-
1 eine schematische Darstellung eines Datensatzes zeigt;
-
2 eine schematische Darstellung einer Datenverarbeitungsvorrichtung 3 zeigt, die eine Ausführungsform der vorliegenden Erfindung ist;
-
3 eine schematische Darstellung der Datenverarbeitungsvorrichtung 3 aus 2 im Einsatz zeigt;
-
4 eine schematische Darstellung eines weiteren Datensatzes zeigt;
-
5 eine schematische Darstellung einer weiteren Datenverarbeitungsvorrichtung 3 zeigt, die eine Ausführungsform der vorliegenden Erfindung ist;
-
6 ein Flussdiagramm eines Verfahrens der vorliegenden Erfindung darstellt;
-
7 eine schematische Darstellung der Datenverarbeitungsvorrichtung aus 5 zeigt, die mit mehreren Verzeichnissen und Musterdatenabschnitten gefüllt ist.
-
DETAILLIERTE BESCHREIBUNG
-
1 zeigt eine schematische Darstellung eines Datensatzes 1. Ein Datensatz 1 kann kürzer oder länger als der in 1 dargestellte sein. Ein Datensatz 1 enthält eine Datenmenge, die in der Größenordnung von 10 Byte, 1000 Byte oder vielen Millionen Byte liegen kann. Ein Datensatz kann allen Daten für einen gegebenen Sicherungsvorgang entsprechen, oder wenigstens einem Teil eines größeren Datensatzes.
-
Ein Sicherungsdatensatz kann einen kontinuierlichen Datenstrom oder einen diskontinuierlichen Datenstrom umfassen. Unabhängig davon kann der Datensatz verschiedene einzelne Dateien oder Teile von Dateien enthalten. Der Datensatz muss nicht in die einzelnen Dateien, die er enthält, aufgeteilt sein. Der Datensatz kann eingebettete Informationen enthalten, die Verweise auf die Grenzen der einzelnen im Datensatz enthaltenen Dateien umfassen. Der Datensatz kann dann gegebenenfalls leichter in seine ihn bildenden Komponenten zerlegt werden. Die Größe der eingebetteten Informationen kann einen erheblichen Anteil der gesamten Daten darstellen. Das Sichern von Daten mit eingebetteten Dateiinformationen erhöht die erforderliche Kapazität des Datenträgers.
-
Eine Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, ist dafür eingerichtet, einen Eingabedatensatz in einen oder mehrere Eingabedatenabschnitte zu verarbeiten. Ein Eingabedatensatz kann in mehrere Eingabedatenabschnitte aufgeteilt werden. Jeder Eingabedatenabschnitt kann einer einzelnen Datei, einem Teil einer einzelnen Datei oder einer Gruppe einzelner Dateien innerhalb des Eingabedatensatzes entsprechen. Die Verarbeitung des Datensatzes in Eingabedatenabschnitte kann basierend auf Eigenschaften der Eingabedaten als Ganzes geschehen, mit wenig oder keinerlei Berücksichtigung der einzelnen darin enthaltenen Dateien. Die Grenzen der Datenabschnitte können mit den Dateigrenzen zusammenfallen oder auch nicht. Die Datenabschnitte können genau gleich sein oder in der Größe variieren.
-
1 zeigt eine schematische Darstellung eines Eingabedatensatzes 1, der in Datenabschnitte 2 aufgeteilt ist. Aus Gründen der Zweckmäßigkeit ist jeder Eingabedatenabschnitt in 1 von A–D bezeichnet, was angibt, dass die Datenabschnitte 2 voneinander verschieden sind. Der Eingabedatensatz 1 kann gegebenenfalls in mehr Eingabedatenabschnitte 2 aufgeteilt werden, als diejenigen, die in 1 dargestellt sind. Die Größe eines Eingabedatensatzes 1 kann viele Terabyte betragen und er kann in 1 Milliarde Eingabedatenabschnitte verarbeitet werden. Dem Fachmann sind spezielle Verfahren bekannt, um zu bestimmen, wie der Eingabedatensatz 1 in Eingabedatenabschnitte 2 verarbeitet wird und welche Information jeder Eingabedatenabschnitt 2 enthält.
-
2 zeigt eine Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist. Die Datenverarbeitungsvorrichtung 3 umfasst einen Abschnittspeicher 4 und einen Verzeichnisspeicher 5. Der Verzeichnisspeicher 5 ist separat, und getrennt, vom Abschnittspeicher 4, es können jedoch auch beide Speicher 4, 5 sich auf einem gemeinsamen Datenträger oder Speichergerät befinden. Wenn ein Eingabedatensatz 1 von der Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, verarbeitet wird, werden die Eingabedatenabschnitte 2 als Musterdatenabschnitte 6 im Abschnittspeicher 4 gespeichert, wie in 3 dargestellt ist. Ein Musterdatenabschnitt 6 ist ein Duplikat eines Eingabedatenabschnitts 2. Der Abschnittspeicher 4 kann gegebenenfalls mehrere Musterdatenabschnitte 6 speichern. Der Abschnittspeicher 4 kann alle Eingabedatenabschnitte 2 enthalten, die zuvor von der Datenverarbeitungsvorrichtung 3 verarbeitet wurden.
-
In einer Ausführungsform sind sowohl der Abschnittspeicher 4 wie auch der Verzeichnisspeicher 5 in nicht-flüchtigem Speicher angelegt.
-
Wenn ein Eingabedatenabschnitt 2 dem Abschnittspeicher 4 als Musterdatenabschnitt 6 hinzugefügt wird, wird ein Verzeichnis 7 zusammengestellt. Ein Verzeichnis 7 ist eine Repräsentation eines Datensatzes 1. Das Verzeichnis 7 umfasst Verweise auf Musterdatenabschnitte 6 im Abschnittspeicher 4, die den Eingabedatenabschnitten 2 entsprechen, die im Eingabedatensatz 1 enthalten sind. Die Verweise im Verzeichnis 7 können somit als Metadaten zu Musterdatenabschnitten 6 interpretiert werden. Falls die Verweise auf Musterdatenabschnitte 6 eines gegebenen Verzeichnisses 7 bezüglich der Größe kleiner sind als die Musterdatenabschnitte 6 auf die im Verzeichnis 7 verwiesen wird, dann ist zu erkennen, dass ein Verzeichnis 7 bezüglich der Größe kleiner sein kann als der Eingabedatensatz 1, den es repräsentiert.
-
Nachdem ein Eingabedatensatz 1 in Eingabedatenabschnitte 2 verarbeitet und ein Verzeichnis 7 zusammengestellt wurde, das den Eingabedatensatz 1 repräsentiert, wird das Verzeichnis 7 im Verzeichnisspeicher 5 gespeichert, wie schematisch in 3 dargestellt ist.
-
Falls ein Benutzer einer Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, beabsichtigt die Daten eines gegebenen Eingabedatensatzes 1 wiederherzustellen – was sich auf eine Sicherung beziehen kann, die zu einem bestimmten Zeitpunkt vorgenommen wurde – wird der Benutzer das entsprechende Verzeichnis 7 aus dem Verzeichnisspeicher 5 abrufen. Jeder Verweis im Verzeichnis 7 auf Musterdatenabschnitte 6 im Abschnittspeicher 4 wird dann verwendet, um den originalen Datensatz 1 zu rekonstruieren.
-
Eine schematische Darstellung eines zu verarbeitenden zweiten Eingabedatensatzes 11 wird in 4 gezeigt. Ohne die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, könnte es sein, dass der zweite Eingabedatensatz 11 in seiner Gesamtheit gespeichert wird. Daher gilt, dass, obwohl beide Eingabedatensätze 1, 11 die gemeinsamen Eingabedatenabschnitte A, B und C umfassen, beide Vorkommen jedes dieser Abschnitte gespeichert würden, was eine ineffiziente Nutzung des Datenträgers darstellt.
-
Mit der Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, gilt, dass wenn der Eingabedatensatz 11 der Datenverarbeitungsvorrichtung 3 zugeführt wird, der Eingabedatensatz 11 in Eingabedatenabschnitte 12 verarbeitet wird. Eine Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, ist dafür eingerichtet, wenigstens ein Verzeichnis 7 im Verzeichnisspeicher 5 zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt 6 umfasst, der wenigstens einem der Eingabedatenabschnitte 12 aus dem zweiten Eingabedatensatz 11 entspricht. Beim Verarbeiten des in 4 dargestellten Eingabedatensatzes 11 wird die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, feststellen, dass das im Verzeichnisspeicher 5 gespeicherte Verzeichnis 7 einen Verweis auf einen Musterdatenabschnitt 6 umfasst, der wenigstens einem der Eingabedatenabschnitte 12 entspricht. In diesem Beispiel kann die Datenverarbeitungsvorrichtung gegebenenfalls feststellen, dass das Verzeichnis 7 Verweise auf die Musterdatenabschnitte A, B und C umfasst. Nach dieser Feststellung wird die Datenverarbeitungsvorrichtung 3 die Eingabedatenabschnitte A, B und C nicht erneut im Abschnittspeicher 4 speichern, da sie hierin bereits als Musterdatenabschnitte 6 vorhanden sind. Stattdessen wird das für den Eingabedatensatz 11 zusammengestellte Verzeichnis Verweise auf Musterdatenabschnitte A, B und C umfassen, die sich bereits im Abschnittspeicher 4 befinden.
-
Es ist zu bemerken, dass der Abschnittspeicher 4 keine Musterdatenabschnitte 6 enthält, die den Eingabedatenabschnitten E und F entsprechen. Analog enthält das Verzeichnis 6 im Verzeichnisspeicher 5 keine Verweise auf Musterdatenabschnitte 6, die den Eingabedatenabschnitten E und F entsprechen. Die Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, ist dafür eingerichtet zu bestimmen, dass der Abschnittspeicher 4 nicht bereits Musterdatenabschnitte 6 enthält, die den Eingabedatenabschnitten E und F entsprechen. Demgemäß kann die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, die Eingabedatenabschnitte E und F als Musterdatenabschnitte 6 im Abschnittspeicher 4 speichern. Es wird dann das Verzeichnis für den Eingabedatensatz 12 vervollständigt, indem Verweise auf die Musterdatenabschnitte E und F hinzugefügt werden. Das neue Verzeichnis wird daraufhin zum Verzeichnisspeicher 5 hinzugefügt.
-
In einer Ausführungsform gilt, dass nachdem die Datenverarbeitungsvorrichtung 3 ein Verzeichnis mit Verweisen auf die Musterdatenabschnitte A, B und C teilweise zusammengestellt hat, die Datenverarbeitungsvorrichtung 3 dafür eingerichtet ist, einen der Eingabedatenabschnitte E und F auszuwählen und zu versuchen wenigstens ein Verzeichnis 7 im Verzeichnisspeicher 5 zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt 6 enthält, der einem der Eingabedatenabschnitte E und F entspricht. Im dargestellten Beispiel werden keine solchen Verzeichnisse ermittelt. Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, kann dafür eingerichtet sein, Verzeichnisse 7 zu identifizieren, die Verweise auf Musterdatenabschnitte enthalten, die jedem der Eingabedatenabschnitte 2 eines Eingabedatensatzes 1 entsprechen.
-
Als ein Ergebnis wird der Abschnittspeicher 4 nur ein Exemplar jedes Musterdatenabschnitts 6 enthalten, was eine effiziente Nutzung des Abschnittspeichers 4 darstellt. Der Ressourcenbedarf der Speicherung des ersten 1 und zweiten 11 Eingabedatensatzes unter Verwendung der Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, kann kleiner sein als der Ressourcenbedarf der Speicherung des ersten 1 und zweiten 11 Eingabedatensatzes ohne die Verwendung eines Prozessors, der eine Ausführungsform der vorliegenden Erfindung ist.
-
Mit der Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, verarbeitet die Datenverarbeitungsvorrichtung 3 den Eingabedatensatz 11 in Eingabedatenabschnitte 12. Die Datenverarbeitungsvorrichtung kann dafür eingerichtet sein, aus dem Eingabedatensatz 11 einen Eingabedatenabschnitt 12 auszuwählen. Die Auswahl kann der erste Eingabedatenabschnitt 12 im Eingabedatensatz 11 sein oder es kann eine andere Auswahl sein. Die Auswahl eines Eingabedatenabschnitts 12 aus dem aufgeteilten Eingabedatensatz 11 kann zufällig oder pseudo-zufällig sein.
-
Die Datenverarbeitungsvorrichtung 3 verwendet den ausgewählten Eingabedatenabschnitt 12, um ein Verzeichnis 7 zu identifizieren, das bereits im Verzeichnisspeicher 5 gespeichert ist und das wenigstens einen Verweis auf einen Musterdatenabschnitt 6 enthält, der dem ausgewählten Eingabedatenabschnitt 2 entspricht. Falls die Datenverarbeitungsvorrichtung 3 den ersten Eingabedatenabschnitt ‚A’ auswählt, wird das Verzeichnis 7 im Verzeichnisspeicher 5 identifiziert.
-
Nachdem wenigstens ein Verzeichnis 7 im Verzeichnisspeicher 5 identifiziert wurde, das einen Verweis auf einen Musterdatenabschnitt 6 hat, ist die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, dafür eingerichtet, das wenigstens eine Verzeichnis 7 zu analysieren, um einen Verweis auf einen Musterdatenabschnitt 6 zu identifizieren, der wenigstens einem weiteren Eingabedatenabschnitt 12 entspricht. Bei dieser Vorgehensweise ist die Datenverarbeitungsvorrichtung 3 dafür eingerichtet, für den in 4 dargestellten Eingabedatensatz 12 festzustellen, dass das Verzeichnis 7 einen Verweis nicht nur auf den Musterdatenabschnitt A enthält, sondern auch auf die Musterdatenabschnitte B und C. Somit gilt, dass mit der Feststellung, dass ein Verzeichnis 7 einen Verweis auf einen Musterdatenabschnitt 6 enthält, der nur einem Eingabedatenabschnitt 12 entspricht, die Datenverarbeitungsvorrichtung 3 dafür eingerichtet ist, Verweise auf Musterdatenabschnitte 6 12 zu identifizieren, die weiteren Eingabedatenabschnitten 12 im selben Eingabedatensatz 11 entsprechen.
-
Ein Vorteil der Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, ist es, dass eine vollständige Durchsuchung des Abschnittspeichers 4 für jeden einzelnen Eingabedatenabschnitt 2, um zu bestimmen, ob er bereits als Musterdatenabschnitt 6 gespeichert wurde, nicht erforderlich ist. Stattdessen kann die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, die Verzeichnisse 7 verwenden, die für zuvor verarbeitete und gespeicherte Datensätze erzeugt wurden. Die Vorteile der Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, werden darüber hinaus deutlich, wenn die verarbeiteten Eingabedatensätze weitgehend ähnlich zu zuvor verarbeiteten Datensätzen sind. Beispielsweise kann zwischen zwei Vollsicherungsvorgängen nur ein kleiner Teil der jeweiligen Datensätze verschieden sein. Die Notwendigkeit einer systematischen Durchsuchung aller im Abschnittspeicher 4 gespeicherten Musterdatenabschnitte 6, um zu jedem Eingabedatenabschnitt eines Eingabedatensatzes einen entsprechenden Musterdatenabschnitt 6 zu finden, ist ineffizient und zeitaufwendig.
-
Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, ist dazu fähig, den Umstand auszunutzen, dass jeder verarbeitete Eingabedatensatz 1 ähnlich sein kann. Somit können vorherige ähnliche Verzeichnisse verwendet werden, um wenigstens einen Teil eines neuen Verzeichnisses für den neuesten Eingabedatensatz zusammenzustellen.
-
In einer Ausführungsform gilt, dass die Datenverarbeitungsvorrichtung 3 dafür eingerichtet ist, nach der Identifizierung des wenigstens einen Verzeichnisses innerhalb dieses Verzeichnisses nach allen weiteren Verweisen auf Musterdatenabschnitte 6 im Abschnittspeicher 4 zu suchen, um Musterdatenabschnitte 6 zu identifizieren, die weiteren Eingabedatenabschnitten 2 des gerade verarbeiteten Eingabedatensatzes 1 entsprechen. In einer Ausführungsform wird die Suche ausgeführt, indem jeder Eingabedatenabschnitt 2 aus dem Eingabedatensatz 1 ausgewählt wird, bis auf den bereits ausgewählten Eingabedatenabschnitt 2, und er mit jedem Verweis in dem wenigstens einen identifizierten Verzeichnis verglichen wird. Wenn ein Verweis auf einen entsprechenden Musterdatenabschnitt 6 gefunden wird, wird der Eingabedatenabschnitt 2 in einem neuen Verzeichnis durch einen Verweis auf den Musterdatenabschnitt 6 repräsentiert. Nachfolgende Eingabedatenabschnitte 2 werden dann für nachfolgende Suchen ausgewählt. Der Suchvorgang kann andauern, bis alle Eingabedatenabschnitte 2 mit allen Verweisen in dem einen oder den mehreren identifizierten Verzeichnissen verglichen wurden.
-
In einer weiteren Ausführungsform kann der Suchvorgang beendet werden, wenn eine vorgegebene Zahl. Verweise auf Musterdatenabschnitte 6, die Eingabedatenabschnitten 2 entsprechen, gefunden wurde. In einer weiteren Ausführungsform kann der Suchvorgang beendet werden, wenn es dem Datenprozessor 3 nicht gelang, Verweise auf Musterdatenabschnitte 6 zu finden, die einer vorgegebenen Zahl Eingabedatenabschnitte 2 im Eingabedatensatz 1 entsprechen. Ein Vorteil dieser Ausführungsform ist, dass Verzeichnisse, die keine Verweise auf Musterdatenabschnitte 6 enthalten, die irgendwelchen anderen Eingabedatenabschnitten 2 entsprechen, schnell vom Suchvorgang ausgeschlossen werden können.
-
In einer weiteren Ausführungsform gilt, dass nach dem Identifizieren des wenigstens einen Verzeichnisses unter Verwendung eines ausgewählten Eingabedatenabschnitts, der Suchvorgang zur Identifizierung von Verweisen auf Musterdatenabschnitte 6, die weiteren Eingabedatenabschnitten 2 entsprechen, auf den ausgewählten Eingabedatenabschnitt basiert, oder zentriert, werden kann, der dazu geführt hat, dass das wenigstens eine Verzeichnis durch die Datenverarbeitungsvorrichtung 3 identifiziert wurde. Beispielsweise sei mit Bezug auf 4 angenommen, dass der Eingabedatenabschnitt B von der Datenverarbeitungsvorrichtung 3 ausgewählt wurde, und das im Verzeichnisspeicher 5 gespeicherte Verzeichnis 6 wie oben identifiziert wurde. Es ist zu bemerken, dass benachbart zum Verweis auf den Musterdatenabschnitt B im Verzeichnis 6 sich Verweise auf die Musterdatenabschnitte A und C befinden. Analog befinden sich benachbart zum Musterdatenabschnitt B im Eingabedatensatz 12 die Eingabedatenabschnitte A und C.
-
In einer weiteren Ausführungsform gilt, dass nach dem Identifizieren eines Eingabedatenabschnitts 12, der einem Musterdatenabschnitt 6 entspricht, auf den in einem Verzeichnis verwiesen wird, die Eingabedatenabschnitte 12 benachbart zum identifizierten Eingabedatenabschnitt 12 mit den Musterdatenabschnitten 6 verglichen werden, auf die in den Verweisen verwiesen wird, die benachbart zu dem Verweis auf den Musterdatenabschnitt 6 sind, der dem ausgewählten Eingabedatenabschnitt 12 entspricht. Somit werden die Eingabedatenabschnitte A und C mit den Musterdatenabschnitten A und C verglichen. In diesem Beispiel wird festgestellt, dass sie einander entsprechen. Somit gilt, dass die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, dafür eingerichtet ist, festzustellen, dass zwei weitere Musterdatenabschnitte 6 im Abschnittspeicher 4 zweien der Eingabedatenabschnitte 12 entsprechen, und dies, indem das identifizierte Verzeichnis 7 analysiert wird. Die Identifizierung wird durchgeführt, ohne dass jeder einzelne Eingabedatenabschnitt 12 mit jedem Musterdatenabschnitt 6 im Abschnittspeicher 4 verglichen werden muss.
-
Ein Vorteil dieser Ausführungsform wird deutlich, wenn der Abschnittspeicher 4 viele Musterdatenabschnitte 6 enthält. Es sei angenommen, dass viele der Musterdatenabschnitte 6 über einen langen Zeitraum im Abschnittspeicher 4 gespeichert waren und neue Eingabedatensätze, die dem Prozessor zugeführt werden, keine Eingabedatenabschnitte 2 mehr enthalten, die diesen ‚alten’ Musterdatenabschnitten 6 entsprechen. Es sei außerdem angenommen, dass eine Anzahl der jüngstens verarbeiteten Eingabedatensätze 1 Verweise auf die jüngstens zum Abschnittspeicher 4 hinzugefügten Musterdatenabschnitte 6 enthalten. Ohne die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, würde gegebenenfalls jeder einzelne Eingabedatenabschnitt 12 eines neuen Eingabedatensatzes 11 mit jedem im Abschnittspeicher 4 gespeicherten Musterdatenabschnitt 6 verglichen. Eine solche Datenverarbeitungsvorrichtung, die keine Ausführungsform der vorliegenden Erfindung ist, würde daher Eingabedatenabschnitte 2 mit Musterdatenabschnitten 6 vergleichen, für die es unwahrscheinlich ist, dass sie als übereinstimmend identifiziert werden. Dies würde insbesondere der Fall sein, wenn die ‚alten’ Musterdatenabschnitte 6 am Anfang des Abschnittspeichers 4 gespeichert sind und es daher wahrscheinlich ist, dass sie zuerst durchsucht werden.
-
Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, identifiziert andererseits wenigstens ein Verzeichnis 7 im Verzeichnisspeicher 5, das wenigstens einen Verweis auf einen Musterdatenabschnitt 6 enthält, der wenigstens einem Eingabedatenabschnitt 2 entspricht. Ausführungsformen der vorliegenden Erfindung können daher den Umstand ausnutzen, dass Eingabedatensätze, die einen bestimmten Eingabedatenabschnitt enthalten, wobei dieser Eingabedatenabschnitt einem Musterdatenabschnitt 6 entspricht, der bereits im Abschnittspeicher 4 vorhanden ist, gegebenenfalls auch Eingabedatenabschnitte enthalten können, die weiteren Musterdatenabschnitten 6 entsprechen, die bereits im Abschnittspeicher 4 gespeichert sind.
-
In einer Ausführungsform der Erfindung gilt, dass nachdem wenigstens ein Verzeichnis 7 über einen ausgewählten Eingabedatenabschnitt 2 identifiziert wurde und falls die Musterdatenabschnitte 6, die den Eingabedatenabschnitten 2 entsprechen, die benachbart zum ausgewählten Eingabedatenabschnitt 2 liegen, in dem wenigstens einen Verzeichnis nicht identifiziert werden, die Verarbeitungsvorrichtung 3 dann versuchen kann, Musterdatenabschnitte 6 zu identifizieren, die den Eingabedatenabschnitten 2 entsprechen die nächstfolgend benachbart zum ausgewählten Eingabedatenabschnitt 2 liegen. Falls die Verarbeitungsvorrichtung nicht in der Lage ist, einen Musterdatenabschnitt 6 zu identifizieren, der einem Eingabedatenabschnitt 2 innerhalb einer vorgegebenen Anzahl von Iterationen entspricht, kann der Suchvorgang gegebenenfalls beendet werden. Falls mehr als ein Verzeichnis 7 von der Verarbeitungsvorrichtung 3 dafür identifiziert wurde, einen Verweis auf einen Musterdatenabschnitt 6 zu enthalten, der dem ausgewählten Eingabedatenabschnitt 2 entspricht, dann kann der Suchvorgang auf einem weiteren identifizierten Verzeichnis 7 erneut beginnen.
-
Die oben beschriebene Technik kann als ‚Reißverschlussverfahren’ bezeichnet werden, insofern als ein Eingabedatensatz 1 und ein identifiziertes Verzeichnis 7 so angeordnet werden, dass ein Eingabedatenabschnitt 2 mit dem Verweis im Verzeichnis 7 auf einen Musterdatenabschnitt 6 im Abschnittspeicher 4 ausgerichtet wird, der dem Eingabedatenabschnitt 2 entspricht. Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, versucht dann den Eingabedatensatz 1 und das Verzeichnis 7 in einem Reißverschlussvorgang zu paaren. Ein erfolgreicher Reißverschlussvorgang ergibt sich, wenn ein Lauf von Eingabedatenabschnitten 2 einem Lauf gleicher Größe von Verweisen auf Musterdatenabschnitte 6 in einem Verzeichnis 7 entspricht. Der Eingabedatensatz 1 und ein Verzeichnis 7 werden nicht erfolgreich in einer Reißverschlusspaarung zusammenpassen, wenn ein bestimmter Eingabedatenabschnitt 2 nicht dem Verweis auf einen Musterdatenabschnitt 6 in einem Verzeichnis 7 entspricht, für den versucht wird, ihn in einem Reißverschlussvorgang mit dem Eingabedatenabschnitt 2 zu paaren.
-
In einer Ausführungsform stellt die Datenverarbeitungsvorrichtung 3 außerdem einen Abschnittindex 8 bereit, wie dies in 5 dargestellt ist. Der Abschnittindex 8 enthält Information über wenigstens einen der Musterdatenabschnitte 6, die im Abschnittspeicher 4 gespeichert sind. In einer Ausführungsform enthält der Abschnittindex 8 Information, die nur einige Musterdatenabschnitte 6 betrifft, die im Abschnittspeicher 4 enthalten sind. Die Musterdatenabschnitte 6 über die der Abschnittindex 8 Information enthält, können speziell oder zufällig ausgewählt sein. In einer weiteren Ausführungsform kann der Abschnittindex 8 Information über jeden Musterdatenabschnitt 6 enthalten, der im Abschnittspeicher 4 gespeichert ist.
-
In einer Ausführungsform kann der Abschnittindex 8 in flüchtigem Speicher, wie etwa Speicher mit wahlfreiem Zugriff (RAM), gespeichert sein.
-
In einer Ausführungsform der vorliegenden Erfindung gilt, dass die im Abschnittindex 8 für einen gegebenen Musterdatenabschnitt 6 enthaltene Information gegebenenfalls eine Abschnittkennung des Musterdatenabschnitts umfasst. Eine Abschnittkennung kann ein digitaler Fingerabdruck des Musterdatenabschnitts 6 sein, zu dem sie gehört. Die Abschnittkennung kann eine eindeutige Abschnittkennung sein, die für einen bestimmten Musterdatenabschnitt 6 eindeutig ist. Der Algorithmus zum Erzeugen von Abschnittkennungen kann so gewählt werden, dass er dazu fähig ist, eindeutige Abschnittkennungen für eine vorgegebene Zahl von Musterdatenabschnitten 6 zu erzeugen. In einer Ausführungsform wird die Abschnittkennung unter Verwendung des SHA1 Hash-Algorithmus erzeugt. Es können auch andere Hash-Algorithmen wie etwa SHA2 verwendet werden. In einer Ausführungsform wird der Hash-Algorithmus so gewählt und konfiguriert, dass es im Wesentlichen numerisch unmöglich ist, dass zwei Musterdatenabschnitte 6 eine identische Abschnittkennung erzeugen.
-
In einer weiteren Ausführungsform kann die Information, die im Abschnittindex 8 für einen gegebenen Musterdatenabschnitt 6 enthalten ist, lediglich eine partielle Abschnittkennung umfassen. Beispielsweise kann, obwohl der Musterdatenabschnitt 6 eine eindeutige Abschnittkennung haben kann, nur ein Teil der Abschnittkennung im Zusammenhang mit dem Eintrag für den Musterdatenabschnitt 6 im Abschnittindex 8 gespeichert werden. In einer Ausführungsform kann die partielle Abschnittkennung die erste vorgegebene Anzahl von Bits der vollständigen Abschnittkennung umfassen. Umfasst beispielsweise eine vollständige Abschnittkennung für einen gegebenen Musterdatenabschnitt 6 20 Bit (wie etwa die vom SHA1-Algorithmus erzeugte), kann der Abschnittindex 8 beispielsweise 15 Bit der Abschnittkennung speichern. Die vorgegebenen Bits können die höchstwertigen Bits (MSB) der Abschnittkennung, die niedrigstwertigen Bits (LSBs) oder dazwischenliegende Bits der vollständigen Abschnittkennung sein. Daraus folgt, dass die partiellen Kennungen zweier verschiedener Musterdatenabschnitte 6 identisch sein können, obwohl ihre zugehörigen vollständigen Abschnittkennungen voneinander verschieden und eindeutig sind. Ein Vorteil des Speicherns von nur partiellen Abschnittkennungen im Abschnittindex 8 ist, dass die Größe des Abschnittindex 8 verringert ist.
-
In einer Ausführungsform werden für einen bestimmten Eintrag im Abschnittindex 8, der zu einem gegebenen Musterdatenabschnitt 6 gehört, Details von wenigstens einem Verzeichnis 7 im Verzeichnisspeicher 5 gespeichert, das einen Verweis auf den Musterdatenabschnitt 6 enthält. In einer Ausführungsform wird eine Liste von Verzeichnissen 7 im Verzeichnisspeicher 5 gespeichert, die wenigstens einen Verweis auf diesen Musterdatenabschnitt 6 enthalten. In einer weiteren Ausführungsform kann gegebenenfalls nur eine partielle Liste der Verzeichnisse 7 im Verzeichnisspeicher 5 gespeichert werden, die wenigstens einen Verweis auf diesen Musterdatenabschnitt 6 enthalten.
-
In einer Ausführungsform wird für einen gegebenen Eintrag im Abschnittindex 8, der zu einem Musterdatenabschnitt gehört, ein Verweis auf wenigstens ein Verzeichnis im Verzeichnisspeicher gespeichert, das einen Verweis auf diesen Musterdatenabschnitt umfasst. In einer Ausführungsform kann der Verweis auf das Verzeichnis im Allgemeinen gehen. In einer weiteren Ausführungsform kann der Verweis die Position innerhalb des Verzeichnisses angeben, an der sich ein Verweis auf den Musterdatenabschnitt befindet.
-
In einer Ausführungsform gilt, dass die im Abschnittindex 8 für einen gegebenen Musterdatenabschnitt enthaltene Information einen Verweis auf die Position des Musterdatenabschnitts 6 im Abschnittspeicher 4 umfassen. In dieser Ausführungsform führt daher der Abschnittspeicher 4 selber gegebenenfalls kein Register der Positionen der darin gespeicherten Musterdatenabschnitte 6. Stattdessen wird die Position der Musterdatenabschnitte 6 im Zusammenhang mit dem passenden Eintrag im Abschnittindex 8 gespeichert. Der Abschnittindex 8 dient daher als ein Index für die im Abschnittspeicher 4 gespeicherten Musterdatenabschnitte 6.
-
Im Einsatz kann der Verzeichnisspeicher 5 viele Verzeichnisse 7 enthalten, von denen jedes einen zuvor verarbeiteten Datensatz 1 repräsentiert. In einer Ausführungsform enthält der Verzeichnisspeicher 5 Information, die jedes darin gespeicherte Verzeichnis 7 betrifft. Die Information kann die Eigenschaften umfassen, die jedem Verzeichnis 7 zugeordnet sind; wie etwa seine Größe, die Zahl der Verweise, die es enthält, oder den Namen oder andere Details des Datensatzes, den es repräsentiert. Die Information für ein bestimmtes Verzeichnis kann eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte 6 enthalten, auf den das Verzeichnis 7 verweist. Ein bestimmtes Verzeichnis 7 kann somit nicht nur einen Satz von Verweisen auf im Abschnittspeicher 4 gespeicherte Musterdatenabschnitte 6 umfassen, sondern auch eine Abschnittkennung für jeden der Musterdatenabschnitte 6, auf die verwiesen wird. Die Abschnittkennung kann eine partielle Abschnittkennung sein.
-
In einer Ausführungsform gilt, dass nachdem wenigstens ein Verzeichnis im Verzeichnisspeicher identifiziert wurde, das wenigstens einen Verweis auf einen Musterdatenabschnitt enthält, der wenigstens einem der Eingabedatenabschnitte entspricht, die Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, dafür eingerichtet ist, das identifizierte Verzeichnis zu analysieren, um Musterdatenabschnitte zu identifizieren, die weiteren Eingabedatenabschnitten entsprechen. In der Ausführungsform, bei der das Verzeichnis eine Abschnittkennung für jeden Musterdatenabschnitt enthält, auf den das Verzeichnis verweist, ist die Datenverarbeitungsvorrichtung dafür eingerichtet, die Abschnittkennung von Eingabedatenabschnitten mit den Abschnittkennungen im Verzeichnis zu vergleichen. Der Vorteil hiervon ist, dass kein Zugriff auf die Information im Abschnittindex 8 erforderlich sein muss. Daher kann die Ausführung einer Vergleichsoperation unter Verwendung des identifizierten Verzeichnisses, und nicht des Abschnittspeichers 4, es gestatten, wenigstens einen Teil der Daten für den Vergleich zu verarbeiten während sie sich im RAM befinden.
-
Die Verzeichnisinformation kann die Position von wenigstens einem der Musterdatenabschnitte 6 im Abschnittspeicher 4 umfassen, auf die ein Verzeichnis 7 verweist. In einer weiteren Ausführungsform kann die Position eines Musterdatenabschnitts 6 im Abschnittspeicher 4, auf den in einem Verzeichnis 7 verwiesen wird, aus der im Abschnittindex 8 gespeicherten Information bestimmt werden.
-
Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, ist dafür eingerichtet, eine Abschnittkennung für einen Eingabedatenabschnitt 2 zu erzeugen. In einer Ausführungsform ist die Datenverarbeitungsvorrichtung 3 dafür eingerichtet, eine Abschnittkennung für jeden Eingabedatenabschnitt 2 zu erzeugen, und dies nachdem, oder gleichzeitig damit, dass der Eingabedatensatz 1 in Eingabedatenabschnitte 2 verarbeitet wurde/wird.
-
Die für den Eingabedatenabschnitt 2 erzeugte Abschnittkennung kann dann dafür verwendet werden, einen Musterdatenabschnitt 6 im Abschnittspeicher 4 zu identifizieren, der dem Eingabedatenabschnitt 2 entspricht. In einer Ausführungsform wird die Abschnittkennung des Eingabedatenabschnitts 2 mit der Abschnittkennung eines Musterdatenabschnitts 6 verglichen. Ein Vorteil hiervon ist, dass der Eingabedatenabschnitt 2 selber nicht direkt mit einem Musterdatenabschnitt 6 verglichen wird. Da die zugehörigen Abschnittkennungen eine geringere Größe haben können als Eingabe/Musterdatenabschnitte 6, die sie repräsentieren, kann der Vergleichstest, zum Test, ob zwei Abschnittkennungen einander entsprechen, gegebenenfalls schneller ausgeführt werden. Da die Abschnittkennungen eine relativ geringere Größe haben können als die jeweiligen Abschnitte, auf die sie sich beziehen, kann der Vergleichsschritt gegebenenfalls ausgeführt werden während beide Abschnittkennungen im RAM gespeichert sind. Falls die Abschnittkennung eines Eingabedatenabschnitts 2 identisch zur Abschnittkennung eines Musterdatenabschnitts ist, sind der Eingabedatenabschnitt 2 und der Musterdatenabschnitt untereinander identisch. Dies geht davon aus, dass, so wie oben beschrieben, der Algorithmus zum Erzeugen von Abschnittkennungen so gewählt ist, dass er eindeutige Kennungen erzeugt. Der Einsatz von partiellen Abschnittkennungen stellt einen nicht-eindeutigen Satz von Kennungen bereit, was bedeutet, dass ein oder mehrere potentiell entsprechende Musterdatenabschnitte identifiziert werden.
-
In einer Ausführungsform ist die Verarbeitungsvorrichtung dafür eingerichtet, die Abschnittkennung eines Eingabedatenabschnitts 2 mit den Abschnittkennungen zu vergleichen, die im Abschnittindex 8 gespeichert sind. Der Vergleichsschritt kann ausgeführt werden, indem die Abschnittkennung eines Eingabedatenabschnitts 2 der Reihe nach mit jeder Abschnittkennung verglichen wird, die im Abschnittindex 8 gespeichert ist. Alternativ können die Abschnittkennungen im Abschnittindex 8 basierend auf Eigenschaften der Abschnittkennungen organisiert sein. Beispielsweise können die Abschnittkennungen im Abschnittindex 8 in einer Baumanordnung aufgestellt sein, basierend auf dem binären Zustand jedes Bits der Abschnittkennung. In diesem Beispiel könnte das MSB jeder Abschnittkennung analysiert werden und jede Abschnittkennung wird einem Ast des Baums zugeteilt, in Abhängigkeit vom Wert des MSB, das heißt entweder ‚0’ oder ‚1’. Jeder der beiden ‚Äste’ kann weiter verzweigt werden, basierend auf dem Wert des nächsten MSB. Jeder dieser Äste wird sich weiter verzweigen, basierend auf den folgenden MSB, und so weiter.
-
Mit der oben beschriebenen Anordnung der Einträge im Abschnittindex 8 ist die Datenverarbeitungsvorrichtung 3, bei dem Versuch für einen Musterdatenabschnitt 6, der einem ausgewählten Eingabedatenabschnitt 2 entspricht, einen Eintrag im Abschnittindex 8 zu finden, dafür eingerichtet, schnell die Einträge im Abschnittindex 8 nach unten zu laufen.
-
In einigen Ausführungsformen wird unter ‚entsprechen’ verstanden, dass die Abschnittkennung eines Eingabedatenabschnitts 2 identisch zur Abschnittkennung eines Musterdatenabschnitts 6 ist. Der Eingabedatenabschnitt 2 und der Musterdatenabschnitt 6 werden daher als einander ‚entsprechend’ bezeichnet. Alternativ gilt beim Einsatz partieller Abschnittkennungen, dass, obwohl die jeweiligen partiellen Abschnittkennungen für einen gegebenen Eingabedatenabschnitt 2 und Musterdatenabschnitt 6 identisch sein können, der eigentliche Eingabedatenabschnitt 2 und Musterdatenabschnitt 6 nicht identisch sein können, wie oben beschrieben wurde. Trotzdem werden der Eingabedatenabschnitt 2 und Musterdatenabschnitt 6 als ‚entsprechend’ bezeichnet, da wenigstens ihre zugehörigen partiellen Abschnittkennungen untereinander identisch sind.
-
In einer Ausführungsform der vorliegenden Erfindung gilt, dass nach dem Erzeugen einer Abschnittkennung für einen Eingabedatenabschnitt 2 und dem Identifizieren einer entsprechenden Abschnittkennung im Abschnittindex 8, die zu einem Musterdatenabschnitt 6 gehört und im Abschnittindex 8 gespeichert ist, die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, dafür eingerichtet ist, einen Verifikationsvorgang auszuführen. Der Verifikationsvorgang umfasst das Vergleichen des Eingabedatenabschnitts 2 mit dem identifizierten Musterdatenabschnitt 6, der im Abschnittspeicher 4 gespeichert ist, um zu überprüfen, ob die beiden Datenabschnitte tatsächlich identisch sind. Ohne den Verifikationsvorgang und besonders dann, wenn partielle Abschnittkennungen verwendet werden, kann es sein, dass ein als ‚entsprechend’ identifizierter Musterdatenabschnitt 6 nicht wirklich identisch zum Eingabedatenabschnitt 2 ist. Die Aufnahme eines Verweises auf den nicht identischen Musterdatenabschnitt 6 führt einen Fehler in das Verzeichnis ein und verhindert eine exakte Wiederherstellung von Daten, die im Verzeichnis repräsentiert sind.
-
Selbst dort, wo vollständige Abschnittkennungen verwendet werden, ist der Verifikationsvorgang vorteilhaft, da jede der Abschnittkennungen (für den Eingabedatenabschnitt 2 und den Musterdatenabschnitt 6) gegebenenfalls mit Fehlern erzeugt oder gespeichert wurde. Der Verifikationsvorgang kann die Integrität der im Verzeichnis gespeicherten Information erhöhen.
-
Bei der Ausführungsform, die partielle Abschnittkennungen verwendet, kann ein Prozessor, der eine Ausführungsform der vorliegenden Erfindung ist, aus den oben genannten Gründen, mehr als einen ‚entsprechenden’ Musterdatenabschnitt 6 identifizieren. Selbstverständlich könnte der Eingabedatenabschnitt 2 nur zu einem der im Abschnittspeicher 4 gespeicherten Musterdatenabschnitte 6 identisch sein. Dementsprechend gilt, dass falls mehr als ein ‚entsprechender’ Musterdatenabschnitt 6 identifiziert wird, es der Verifikationsvorgang der Datenverarbeitungsvorrichtung 3 gestattet, zu identifizieren, welcher der wenigstens zwei Musterdatenabschnitte 6 wirklich identisch zum Eingabedatenabschnitt 2 ist. Obwohl beim Speichern nur partieller Abschnittkennungen der Verifikationsschritt notwendigerweise einen weiteren Schritt bildet, liegt dennoch ein Vorteil darin, dass der Abschnittindex 8 eine geringere Größe haben kann, da er keine vollständigen Abschnittkennungen speichert. Die Verringerung der Größe des benötigten Abschnittindexes 8 kann die Nachteile, falls solche vorhanden sind, ausgleichen, die mit der Ausführung des Verifikationsvorgangs verbunden sind.
-
In einer weiteren Ausführungsform kann der Verifikationsvorgang ausgeführt werden, indem die Abschnittkennung eines Eingabedatenabschnitts mit einer Abschnittkennung verglichen wird, die in einem identifizierten Verzeichnis enthalten ist. Ein Vorteil hiervon ist, dass gegebenenfalls überhaupt kein Zugriff auf den Abschnittspeicher erforderlich ist. Der Verifikationsvorgang kann gegebenenfalls ausgeführt werden, indem ausschließlich die Information verwendet wird, die im Verzeichnis und den Abschnittkennungen, die für die Eingabedatenabschnitte erzeugt wurden, enthalten ist. Falls partielle Abschnittkennungen im Abschnittindex gespeichert werden, kann die Situation eintreten, dass die partielle Abschnittkennung eines Eingabedatenabschnitts zur partiellen Abschnittkennung eines Musterdatenabschnitts passt, obwohl die zugehörigen Eingabe/Musterdatenabschnitte nicht zueinander passen. Daher kann es sein, dass das wenigstens eine Verzeichnis, das identifiziert wurde einen Verweis auf einen Musterdatenabschnitt zu enthalten, der einem Eingabedatenabschnitt entspricht, in Wirklichkeit nicht auf Musterdatenabschnitte verweist, die irgendwelchen Eingabedatenabschnitten entsprechen. In einer Ausführungsform ist die Datenverarbeitungsvorrichtung dafür eingerichtet, auf dem oder den identifizierten einem oder mehreren Verzeichnissen einen Verifikationsvorgang auszuführen. In einer Ausführungsform gilt, dass wenn das wenigstens eine Verzeichnis identifiziert wurde, die Abschnittkennung, die in dem einen oder den mehreren Verzeichnissen gespeichert ist und zu dem Musterdatenabschnitt gehört, für den angegeben wurde, dass er einem Eingabedatenabschnitt entspricht, verifiziert wird. Nur falls die Abschnittkennung identisch zur Abschnittkennung des Eingabedatenabschnitts ist, wird das Verzeichnis gegebenenfalls für nachfolgende Operationen verwendet. Diese Ausführungsform kann dieselbe Wirkung erreichen wie die Ausführung des Verifikationsvorgangs unter Bezug auf den Abschnittindex, sie erfordert jedoch keinen Zugriff auf den Abschnittindex. Es ist zu erkennen, dass das zurückgegebene Verzeichnis eine sehr viel geringere Größe haben kann als der Abschnittspeicher. Daher gestattet die Ausführung eines Vergleichsvorgangs unter Verwendung des identifizierten Verzeichnisses anstatt des Abschnittspeichers 4 gegebenenfalls, dass wenigstens ein Teil der Daten für den Vergleich verarbeitet wird, während er im RAM ist.
-
Wie oben beschrieben, enthält der Abschnittindex 8 einer Ausführungsform Information, die nur einige Musterdatenabschnitte 6 im Abschnittspeicher 4 betrifft. Der Abschnittindex 8 kann daher als ein ‚dünn’ besetzter Abschnittindex 8 bezeichnet werden. Das Führen eines solchen ‚dünn’ besetzten Abschnittindexes verringert die Größe des Abschnittindexes 8, wobei im Folgenden ein Vorteil hiervon beschrieben wird.
-
Die Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, kann zur Verdichtung von Eingabedatensätzen 1 zur Speicherung, Verschlüsselung oder Übertragung verwendet werden. Beispielsweise können die Eingabedaten 1 Sätze von Sicherungsdaten von einem ersten Datenträger repräsentieren, zur Speicherung auf einem zweiten Datenträger. Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, vergleicht, so wie oben beschrieben, eine Abschnittkennung eines Eingabedatenabschnitts 2 mit den Abschnittkennungen, die in einem Abschnittindex 8 gespeichert sind. Der Vergleichsschritt kann einen schnellen Zugriff auf die im Abschnittindex 8 enthaltenen Daten erfordern. In einer Ausführungsform kann der Abschnittindex 8 in einem Speicher mit wahlfreiem Zugriff (RAM) gespeichert werden. RAM-Speicher gestattet den schnellen und wahlfreien Zugriff auf die darin enthaltene Information. Es kann jedoch die Anforderung geben, den für eine Datenverarbeitungsvorrichtung erforderlichen RAM-Speicher zu verringern. Durch das Bereitstellen eines im RAM zu speichernden dünn besetzten Abschnittindexes 8 benötigt die Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, weniger RAM als ein Prozessor ohne einen dünn besetzten Index.
-
Ohne die Bereitstellung eines Abschnittindexes 8 wird die Datenverarbeitungsvorrichtung gegebenenfalls einen Eingabedatenabschnitt 2 mit jedem Musterdatenabschnitt 6 vergleichen, der im Abschnittspeicher 4 gespeichert ist. Da der Abschnittspeicher 4 sehr groß sein kann, kann es schwierig oder einfach unmöglich sein, den gesamten Inhalt des Abschnittspeichers 4 im RAM zu speichern. Der Abschnittspeicher 4 kann in nichtflüchtigem Speicher gespeichert sein, wie etwa auf einer Platte. Das Lesen von Daten aus dem Abschnittspeicher 4 erfordert daher einen Lesevorgang auf der Platte. Dies kann erheblich langsamer sein als der Zugriff auf Daten, die im RAM gespeichert sind. Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, umfasst einen Abschnittindex 8, der sich im RAM befinden kann, was einen schnelleren Zugriff auf die darin enthaltene Information gestattet. Hierdurch können gegebenenfalls im Abschnittspeicher 4 gespeicherte Musterdatenabschnitte 6, die einem Eingabedatenabschnitt 2 entsprechen, leichter identifiziert werden, ohne einen andauernden direkten Zugriff auf den Abschnittspeicher 4 zu benötigen. Wie oben beschrieben, kann es einen Verifikationsvorgang geben. Dieser Vorgang erfordert den Zugriff auf einen Musterdatenabschnitt 6, der im Abschnittspeicher 4 auf der Platte gespeichert ist, jedoch erfordert dies gegebenenfalls nur eine Plattensuche im Abschnittspeicher 4 und das Abrufen eines einzigen Musterdatenabschnitts 6.
-
Bei Ausführungsformen der vorliegenden Erfindung, die einen dünn besetzten Abschnittindex 8 umfassen, kann der Fall eintreten, dass ein Musterdatenabschnitt 6, der einem Eingabedatenabschnitt 2 entspricht, im Abschnittspeicher 4 vorhanden ist, dass jedoch kein diesen Musterdatenabschnitt 6 betreffender Eintrag im Abschnittindex 8 liegt. Wenn nun eine Abschnittkennung des Eingabedatenabschnitts 2 mit Einträgen im Abschnittspeicher 4 verglichen wird, gilt daher, dass die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, zunächst anzeigt, dass kein entsprechender Musterdatenabschnitt 6 vorhanden ist; und sie wird den Eingabedatenabschnitt 2 ein zweites Mal als Musterdatenabschnitt 6 im Abschnittspeicher 4 speichern. Obwohl dieser Vorgang, den Eingabedatenabschnitt 2 ein zweites Mal als einen Musterdatenabschnitt 6 zu speichern, als ineffiziente Nutzung des Abschnittspeichers 4 angesehen werden kann, ist der Vorteil einer solchen Ausführungsform, dass der Abschnittindex 8 dünn besetzt ist und somit weniger Platz im RAM einnimmt. Die Vorteile davon, weniger RAM zu benötigen, und der verringerte Zeitbedarf für eine Durchsuchung des dünn besetzten Abschnittindexes 8 überwiegen gegebenenfalls die Nachteile davon, einen Eingabedatenabschnitt 2 ein zweites Mal als Musterdatenabschnitt 6 zu speichern.
-
Da die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, dafür eingerichtet ist, den Umstand auszunutzen, dass Eingabedatenströme teilweise zueinander ähnlich sein können, kann die Datenverarbeitungsvorrichtung 3 gegebenenfalls dennoch einen Musterdatenabschnitt 6 im Abschnittspeicher 4 identifizieren, obwohl kein Eintrag für diesen Musterdatenabschnitt 6 im Abschnittindex 8 vorhanden ist, was nachfolgend beschrieben wird.
-
Für einen gegebene Zahl von Eingabedatenabschnitten 2 gelte, dass obwohl jedem dieser entsprechende Musterdatenabschnitte 6 gegebenenfalls bereits im Abschnittspeicher 4 gespeichert sind, gegebenenfalls nur ein Musterdatenabschnitt 6 einen Eintrag im Abschnittindex 8 hat. Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, ist dafür eingerichtet, einen entsprechenden Musterdatenabschnitt 6 im Abschnittindex 8 zu identifizieren. Ausgehend vom Musterdatenabschnitt 6 identifiziert die Datenverarbeitungsvorrichtung 3 wenigstens ein Verzeichnis im Verzeichnisspeicher, das wenigstens einen Verweis auf den Musterdatenabschnitt 6 enthält. Durch die anschließende Analyse des identifizierten wenigstens einen Verzeichnisses, ist die Datenverarbeitungsvorrichtung 3 dafür eingerichtet festzustellen, dass Musterdatenabschnitte 6 im Abschnittspeicher 4 vorhanden sind, die mehr Eingabedatenabschnitten 2 aus dem Eingabedatenstrom entsprechen, auch wenn diese Musterdatenabschnitte 6 gegebenenfalls keine Einträge im Abschnittindex 8 haben.
-
Eine solche Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, kann daher dafür eingerichtet sein, alle Musterdatenabschnitte 6 im Abschnittspeicher 4 zu identifizieren, die allen Eingabedatenabschnitten 2 entsprechen, wobei sie nur einen dünn besetzten Index hat. Gegebenenfalls gibt es im Abschnittspeicher 4 keine Duplikateinträge. Gegebenenfalls ist die Datenverarbeitungsvorrichtung 3 mit einem dünn besetzten Abschnittindex 8 genauso effizient beim Verdichten von Eingabedaten wie die Datenverarbeitungsvorrichtung 3 mit einem vollständigen Abschnittindex 8. Unter Effizienz wird dabei verstanden, dass die im Abschnittspeicher 4 gespeicherten Musterdatenabschnitte 6 nicht dupliziert werden oder wenigstens in einem vorgegebenen Ausmaß nicht dupliziert werden. Einige Vervielfältigungen von Musterdatenabschnitten können gegebenenfalls gestattet sein.
-
In einer Ausführungsform wird eine Datenverarbeitungsvorrichtung bereitgestellt, die Folgendes umfasst: einen Abschnittspeicher, der Musterdatenabschnitte zuvor verarbeiteter Datensätze enthält, einen Abschnittindex, der eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte enthält, einen separaten Verzeichnisspeicher, der wenigstens ein Verzeichnis enthält, das einen zuvor verarbeiteten Datensatz repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei die Verarbeitungsvorrichtung dafür eingerichtet ist, zu verarbeitende Eingabedaten in Eingabedatenabschnitte aufzuteilen; eine Abschnittkennung für wenigstens einen der Eingabedatenabschnitte zu erzeugen, eine entsprechende Abschnittkennung im Abschnittindex zu identifizieren; und daraus wenigstens eines der Verzeichnisse im Verzeichnisspeicher zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt umfasst, der identisch mit dem Eingabedatenabschnitt ist.
-
In einer Ausführungsform wird ein Datenverdichter bereitgestellt, der Folgendes umfasst: einen Abschnittspeicher, der dafür eingerichtet ist, Musterdatenabschnitte zu enthalten, einen separaten Verzeichnisspeicher, der dafür eingerichtet ist, wenigstens ein Verzeichnis zu enthalten, das einen Datensatz repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei der Verdichter dafür eingerichtet ist, Eingabedaten in Eingabedatenabschnitte aufzuteilen, einen der Eingabedatenabschnitte auszuwählen und wenigstens ein Verzeichnis zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt umfasst, der dem ausgewählten Eingabedatenabschnitt entspricht, und das wenigstens eine identifizierte Verzeichnis auf Verweise auf weitere Musterdatenabschnitte zu untersuchen, die weiteren Eingabedatenabschnitten des Datensatzes entsprechen.
-
Es wird nun ein Verfahren zur Verarbeitung von Eingabedaten beschrieben, das eine Ausführungsform der vorliegenden Erfindung ist. Ein Verfahren setzt Folgendes ein: einen Abschnittspeicher 4, der Musterdatenabschnitte 6 enthält; und einen separaten Verzeichnisspeicher 5, der wenigstens ein Verzeichnis enthält. In einer Ausführungsform wird ein Verfahren ausgeführt, das die oben beschriebene Datenverarbeitungsvorrichtung 3 einsetzt. In einer Ausführungsform wird das Verfahren ausgeführt, indem es wie oben beschrieben einen Abschnittspeicher 4 und einen separaten Verzeichnisspeicher 5 einsetzt.
-
Ein Verfahren, das eine Ausführungsform der vorliegenden Erfindung ist, umfasst wie in 6 dargestellt, Folgendes: das Verarbeiten 13 der Eingabedaten in einen oder mehrere Eingabedatenabschnitte 2; und das Identifizieren 14 wenigstens eines Verzeichnisses im Verzeichnisspeicher, das wenigstens einen Verweis auf einen Musterdatenabschnitt 6 umfasst, der wenigstens einem Eingabedatenabschnitt entspricht.
-
In einer Ausführungsform gilt, dass nach dem Aufteilen der Eingabedaten 1 in einen oder mehrere Eingabedatenabschnitte 2, ein Eingabedatenabschnitt 2 aus den Eingabedaten 1 ausgewählt wird. Die Auswahl kann auf den ersten Eingabedatenabschnitt 1 im Eingabedatensatz 1 fallen oder es kann eine andere Auswahl sein. Die Auswahl eines Eingabedatenabschnitts 2 aus dem aufgeteilten Eingabedatensatz 1 kann zufällig oder pseudo-zufällig sein.
-
Ein Verfahren, das eine Ausführungsform der Erfindung ist, verwendet den ausgewählten Eingabedatenabschnitt 2, um ein bereits im Verzeichnisspeicher 5 gespeichertes Verzeichnis 7 zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt 6 umfasst, der dem ausgewählten Eingabedatenabschnitt 2 entspricht.
-
Ein Verfahren, das eine Ausführungsform der vorliegenden Erfindung ist, ist dazu fähig, den Umstand auszunutzen, dass jeder verarbeitete Eingabedatensatz 1 ähnlich sein kann. Somit können vorherige ähnliche Verzeichnisse verwendet werden, um wenigstens einen Teil eines neuen Verzeichnisses für den neuesten Eingabedatensatz zusammenzustellen.
-
Falls wenigstens ein identifiziertes Verzeichnis verarbeitet und ein Musterdatenabschnitt identifiziert wurde, der einem ausgewählten wenigstens einen Eingabedatenabschnitt 2 entspricht, kann einem Verzeichnis ein Verweis auf den Musterdatenabschnitt hinzugefügt werden. Wie oben beschrieben, kann das wenigstens eine identifizierte Verzeichnis weiter analysiert werden, um Verweise auf Musterdatenabschnitte zu identifizieren, die weiteren Eingabedatenabschnitten 2 des Eingabedatensatzes 1 entsprechen. Sollten keine weiteren entsprechenden Musterdatenabschnitte mehr gefunden werden, dann können die Eingabedatenabschnitte 2, für die bis dahin noch nicht festgestellt wurde, dass sie einen entsprechenden Musterdatenabschnitt, der im Abschnittspeicher 4 vorhanden ist, haben, der Gegenstand weiterer Operationen sein. Dementsprechend kann die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, dann wenigstens ein Verzeichnis im Verzeichnisspeicher 5 identifizieren, das einen Verweis auf einen Musterdatenabschnitt umfasst, der dem neu ausgewählten Eingabedatenabschnitt 2 entspricht. Der Vorgang kann fortgesetzt werden, bis alle nicht zugeordneten Eingabedatenabschnitte 2 vom Datenprozessor 3 verarbeitet wurden.
-
In einer Ausführungsform umfasst ein Verfahren die Zusammenstellung eines Verzeichnisses, das einen Eingabedatensatz 1 repräsentiert.
-
Ein Verfahren, das eine Ausführungsform der vorliegenden Erfindung ist, umfasst das Erzeugen einer Abschnittkennung für einen Eingabedatenabschnitt 2. Die Ausführungsform umfasst außerdem, so wie oben beschrieben, das Vergleichen der Abschnittkennung des Eingabedatenabschnitts 2 mit den Abschnittkennungen, die in einem Abschnittindex 8 gespeichert sind.
-
Eine Ausführungsform stellt ein Verfahren zur Verarbeitung von Eingabedaten bereit, das Folgendes einsetzt: einen Abschnittspeicher, der Musterdatenabschnitte zuvor verarbeiteter Datensätze enthält, einen Abschnittindex, der eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte enthält, einen separaten Verzeichnisspeicher, der wenigstens ein Verzeichnis enthält, das einen zuvor verarbeiteten Datensatz repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte umfasst, wobei das Verfahren Folgendes umfasst: das Aufteilen der Eingabedaten in Eingabedatenabschnitte; das Erzeugen einer Abschnittkennung für einen der Eingabedatenabschnitte; und das Identifizieren einer entsprechenden Abschnittkennung im Abschnittindex und daraus das Identifizieren wenigstens eines Verzeichnisses in der Verzeichnisdatenbasis, das einen Verweis auf einen Musterdatenabschnitt enthält, der identisch mit dem Eingabedatenabschnitt ist.
-
Wenn der Abschnittspeicher 4 und der Verzeichnisspeicher 5 einer Ausführungsform der vorliegenden Erfindung anfänglich bereitgestellt werden, sind keine Musterdatenabschnitte 6 im Abschnittspeicher 4 gespeichert und keine Verzeichnisse im Verzeichnisspeicher gespeichert. Sowohl der Abschnittspeicher 4 wie auch der Verzeichnisspeicher 5 werden dann gefüllt. Auf diese Weise wird, wenn ein erster Eingabedatensatz 1 verarbeitet wird, jeder der vom Eingabedatensatz 1 abgeteilten Eingabedatenabschnitte 2 als Musterdatenabschnitt 6 dem Abschnittspeicher 4 hinzugefügt. Für den Eingabedatensatz 1 wird ein Verzeichnis zusammengestellt und dem Verzeichnisspeicher 5 hinzugefügt. 3 veranschaulicht ein Beispiel eines wenigstens teilweise gefüllten Prozessors, der eine Ausführungsform der vorliegenden Erfindung ist. Es ist zu erkennen, dass mit der Verarbeitung von immer weiteren Eingabedatensätzen 1, der Abschnittspeicher 4 und der Verzeichnisspeicher 5 mehr Musterdatenabschnitte 6 bzw. Verzeichnisse enthalten werden. Es kann ein Punkt erreicht werden, an dem die Mehrheit der Eingabedatenabschnitte 2 von zu verarbeitenden Eingabedatensätzen Musterdatenabschnitten 6 entsprechen, die bereits im Abschnittspeicher 4 gespeichert sind. In diesem Fall kann für den Eingabedatensatz ein Verzeichnis 6 zusammengestellt werden, ohne dass neue Hinzufügungen zum Abschnittspeicher 4 vorgenommen werden, was zusätzlich die Vorteile von Verfahren aufzeigt, die Ausführungsformen der vorliegenden Erfindung sind.
-
7 veranschaulicht eine Ausführungsform der in 3 dargestellten Datenverarbeitungsvorrichtung, die mit mehreren Musterdatenabschnitten 6 im Abschnittspeicher 4 und mehreren Verzeichnissen 7 im Verzeichnisspeicher 5 gefüllt ist.
-
Die Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, kann einen Teil eines Managementsystems zur Datenverdichtung oder Entduplizierung bilden. Die Datenverarbeitungsvorrichtung 3 kann in ein Datenspeicherungssystem integriert sein. Eine Datenverarbeitungsvorrichtung 3 kann so konfiguriert sein, dass sie ‚aktiv’ arbeitet, wenn Daten zur Speicherung an das Datenspeicherungssystem gesendet werden. Die Verdichtung kann in Echtzeit ausgeführt werden. Alternativ können die Daten der Datenverarbeitungsvorrichtung 3, die eine Ausführungsform der vorliegenden Erfindung ist, während ‚verkehrsschwacher’ Zeiten zugeführt werden. Unter verkehrsschwachen Zeiten sind Zeiträume gemeint, in denen einem Datenspeicherungssystem keine Daten zur Speicherung zugeführt werden und somit die Datenverarbeitungsvorrichtung 3 Daten verarbeiten könnte, die bereits auf dem Datenspeicherungssystem gespeichert sind, um die Menge an duplizierten Daten zu verringern, die bereits auf dem Datenspeicherungssystem gespeichert ist. Die Datenverarbeitungsvorrichtung, die eine Ausführungsform der vorliegenden Erfindung ist, kann Teil eines Datenbereinigungssystems eines Datenspeicherungssystems sein.
-
Soweit sie in dieser Beschreibung und diesen Ansprüchen verwendet werden, bedeuten die Ausdrücke „umfassen” und „umfassend” und Variationen hiervon, dass die angegebenen Eigenschaften, Phasen oder Bestandteile eingeschlossen sind. Die Ausdrücke sind nicht so auszulegen, dass das Vorhandensein anderer Eigenschaften, Phasen oder Bestandteile ausgeschlossen ist.
-
Die in der vorangehenden Beschreibung, den nachfolgenden Ansprüchen oder der beigefügten Zeichnung offenbarten Eigenschaften, ausgedrückt in ihren speziellen Formen oder durch Mittel, die die offenbarte Funktion ausführen, oder ein Verfahren oder Prozess zum Erreichen des offenbarten Ergebnisses, können, auf geeignete Weise, getrennt oder in irgendeiner Kombination dieser Eigenschaften, verwendet werden, um die Erfindung in ihren verschiedenen Formen zu realisieren.