DE112007003645B4 - Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung - Google Patents

Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung Download PDF

Info

Publication number
DE112007003645B4
DE112007003645B4 DE112007003645T DE112007003645T DE112007003645B4 DE 112007003645 B4 DE112007003645 B4 DE 112007003645B4 DE 112007003645 T DE112007003645 T DE 112007003645T DE 112007003645 T DE112007003645 T DE 112007003645T DE 112007003645 B4 DE112007003645 B4 DE 112007003645B4
Authority
DE
Germany
Prior art keywords
section
data
directory
input data
sections
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.)
Active
Application number
DE112007003645T
Other languages
English (en)
Other versions
DE112007003645T5 (de
Inventor
Kevin Lloyd Jones
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112007003645T5 publication Critical patent/DE112007003645T5/de
Application granted granted Critical
Publication of DE112007003645B4 publication Critical patent/DE112007003645B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents

Abstract

Datenverarbeitungsvorrichtung (3) zur Sicherung von Daten, Folgendes umfassend:
einen Abschnittspeicher (4), der dafür eingerichtet ist, Musterdatenabschnitte (6) zu enthalten,
einen Verzeichnisspeicher (5), der dafür eingerichtet ist, wenigstens ein Verzeichnis (7) zu enthalten, das wenigstens einen Teil eines Datensatzes (1, 11) repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte (6) umfasst, wobei die Verarbeitungsvorrichtung (3) dafür eingerichtet ist, Eingabedaten in Eingabedatenabschnitte (2, 12) zu verarbeiten und wenigstens ein Verzeichnis im Verzeichnisspeicher (5) zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt (6) enthält, der wenigstens einem der Eingabedatenabschnitte (2, 12) entspricht.

Description

  • 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.

Claims (20)

  1. Datenverarbeitungsvorrichtung (3) zur Sicherung von Daten, Folgendes umfassend: einen Abschnittspeicher (4), der dafür eingerichtet ist, Musterdatenabschnitte (6) zu enthalten, einen Verzeichnisspeicher (5), der dafür eingerichtet ist, wenigstens ein Verzeichnis (7) zu enthalten, das wenigstens einen Teil eines Datensatzes (1, 11) repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte (6) umfasst, wobei die Verarbeitungsvorrichtung (3) dafür eingerichtet ist, Eingabedaten in Eingabedatenabschnitte (2, 12) zu verarbeiten und wenigstens ein Verzeichnis im Verzeichnisspeicher (5) zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt (6) enthält, der wenigstens einem der Eingabedatenabschnitte (2, 12) entspricht.
  2. Datenverarbeitungsvorrichtung (3) nach Anspruch 1, die dafür eingerichtet ist, das identifizierte wenigstens eine Verzeichnis (7) zu analysieren und wenigstens einen Verweis auf einen Musterdatenabschnitt (6) zu identifizieren, der wenigstens einem weiteren Eingabedatenabschnitt (2, 12) entspricht.
  3. Datenverarbeitungsvorrichtung (3) nach Anspruch 1, die dafür eingerichtet ist, wenigstens einen der Eingabedatenabschnitte (2, 12) als einen Musterdatenabschnitt (6) im Abschnittspeicher (4) zu speichern, falls für den wenigstens einen Eingabedatenabschnitt (2, 12) im Einsatz festgestellt werden sollte, dass er nicht wenigstens einem der Musterdatenabschnitte (6) im Abschnittspeicher (4) entspricht.
  4. Datenverarbeitungsvorrichtung (3) nach Anspruch 1, die dafür eingerichtet ist, einen Abschnittindex (8) zu umfassen, der Information enthält, die die Musterdatenabschnitte (6) betrifft, die im Abschnittspeicher (4) enthalten sind.
  5. Datenverarbeitungsvorrichtung (3) nach Anspruch 1, die dafür eingerichtet ist, einen Abschnittindex (8) zu umfassen, der Information enthält, die nur einige der Musterdatenabschnitte (6) betrifft, die im Abschnittspeicher (4) enthalten sind.
  6. Datenverarbeitungsvorrichtung (3) nach Anspruch 4, wobei die Vorrichtung (3) dafür eingerichtet ist, den entsprechenden Musterdatenabschnitt (6) unter Verwendung der im Abschnittindex (8) enthaltenen Information zu identifizieren.
  7. Datenverarbeitungsvorrichtung (3) nach Anspruch 4, bei der die im Abschnittindex (8) enthaltene Information Einzelheiten über wenigstens ein Verzeichnis (7) im Verzeichnisspeicher (5) enthält, das einen Verweis auf wenigstens einen der Musterdatenabschnitte (6) umfasst.
  8. Datenverarbeitungsvorrichtung (3) nach Anspruch 4, bei der die im Abschnittindex (8) enthaltene Information eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte (6) umfasst.
  9. Datenverarbeitungsvorrichtung (3) nach Anspruch 8, bei der die Abschnittkennung eine partielle Abschnittkennung ist, die einem oder mehreren der Musterdatenabschnitte (6) entspricht.
  10. Datenverarbeitungsvorrichtung (3) nach Anspruch 8, wobei die Vorrichtung (3) dafür eingerichtet ist, für einen zu verarbeitenden Eingabedatenabschnitt (12) eine Abschnittkennung zu erzeugen.
  11. Datenverarbeitungsvorrichtung (3) nach Anspruch 10, wobei die Vorrichtung (3) dafür eingerichtet ist, den entsprechenden Musterdatenabschnitt (6) zu identifizieren, indem sie die Abschnittkennung des Musterdatenabschnitts (6) mit der Abschnittkennung des Eingabedatenabschnitts (12) vergleicht.
  12. Datenverarbeitungsvorrichtung (3) nach Anspruch 1, bei der der Verzeichnisspeicher (5) dafür eingerichtet ist, Information zu enthalten, die das wenigstens eine darin gespeicherte Verzeichnis (7) betrifft.
  13. Datenverarbeitungsvorrichtung (3) nach Anspruch 12, bei der der Verzeichnisspeicher (5) eine Abschnittkennung für den wenigstens einen Musterdatenabschnitt (6) umfasst, auf den das wenigstens eine Verzeichnis (7) verweist.
  14. Datenverarbeitungsvorrichtung (3) nach Anspruch 13, die dafür eingerichtet ist, das identifizierte wenigstens eine Verzeichnis (7) zu analysieren und wenigstens einen Verweis auf einen Musterdatenabschnitt (6) zu identifizieren, der wenigstens einem weiteren Eingabedatenabschnitt (2, 12) entspricht, indem sie eine Abschnittkennung eines Eingabedatenabschnitts (2, 12) mit der Abschnittkennung des wenigstens einen Musterdatenabschnitts (6) vergleicht, der im Verzeichnisspeicher (5) gespeichert ist.
  15. Datenverarbeitungsvorrichtung nach Anspruch 1, bei der ein entsprechender Musterdatenabschnitt (6) eine Abschnittkennung hat, die wenigstens teilweise ähnlich zu einer Abschnittkennung eines Eingabedatenabschnitts (2, 12) ist.
  16. Datenverarbeitungsvorrichtung (3) nach Anspruch 1, wobei der Abschnittspeicher (4) Musterdatenabschnitte (6) zuvor verarbeiteter Datensätze (1, 11) enthält, wobei die Datenverarbeitungsvorrichtung (3) einen Abschnittindex (8) umfasst, der eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte (6) enthält, wobei die Datenverarbeitungsvorrichtung (3) dafür eingerichtet ist, eine Abschnittkennung für wenigstens einen der Eingabedatenabschnitte (2, 12) zu erzeugen, eine entsprechende Abschnittkennung im Abschnittindex (8) zu identifizieren, und daraus wenigstens eines der Verzeichnisse (7) im Verzeichnisspeicher (5) zu identifizieren, das wenigstens einen Verweis auf einen Musterdatenabschnitt (6) umfasst, der identisch mit dem Eingabedatenabschnitt (2, 12) ist.
  17. Datenverarbeitungsvorrichtung (3) nach Anspruch 1 zur Verdichtung von Daten, die dafür eingerichtet ist, Eingabedaten in Eingabedatenabschnitte (2, 12) aufzuteilen, einen der Eingabedatenabschnitte (2, 12) auszuwählen und wenigstens ein Verzeichnis (7) zu identifizieren, das wenigstens einen Verweis auf den Musterdatenabschnitt (6) umfasst, der dem ausgewählten Eingabedatenabschnitt (2, 12) entspricht, und das wenigstens eine identifizierte Verzeichnis (7) auf Verweise auf weitere Musterdatenabschnitte (6) zu untersuchen, die weiteren Eingabedatenabschnitten (2, 12) des Datensatzes (1, 11) entsprechen.
  18. Verfahren zur Verarbeitung und Sicherung von Eingabedaten, Folgendes einsetzend: einen Abschnittspeicher (4), der Musterdatenabschnitte (6) enthält, einen Verzeichnisspeicher (5), der wenigstens ein Verzeichnis (7) enthält, das einen Datensatz (1, 11) repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte (6) umfasst, wobei das Verfahren Folgendes umfasst: das Verarbeiten (13) der Eingabedaten in Eingabedatenabschnitte (2, 12) und das Identifizieren (14) wenigstens eines Verzeichnisses (7) im Verzeichnisspeicher (5), das wenigstens einen Verweis auf einen Musterdatenabschnitt (6) umfasst, der einem der Eingabedatenabschnitte (2, 12) entspricht.
  19. Verfahren nach Anspruch 18, das das Überprüfen des identifizierten wenigstens einen Verzeichnisses (7) umfasst, um wenigstens einen weiteren Musterdatenabschnitt (6) zu finden, der wenigstens einem weiteren der Eingabedatenabschnitte (2, 12) der Eingabedaten entspricht.
  20. Verfahren zur Verarbeitung und Sicherung von Eingabedaten, Folgendes einsetzend: einen Abschnittspeicher (4), der Musterdatenabschnitte (6) zuvor verarbeiteter Datensätze (1, 11) enthält, einen Abschnittindex (8), der eine Abschnittkennung für wenigstens einen der Musterdatenabschnitte (6) enthält, einen Verzeichnisspeicher (5), der wenigstens ein Verzeichnis (7) enthält, das einen zuvor verarbeiteten Datensatz (1, 11) repräsentiert und das wenigstens einen Verweis auf wenigstens einen der Musterdatenabschnitte (6) umfasst, wobei das Verfahren Folgendes umfasst, das Aufteilen der Eingabedaten in Eingabedatenabschnitte (2, 12), das Erzeugen einer Abschnittkennung für einen der Eingabedatenabschnitte (2, 12), das Identifizieren einer entsprechenden Abschnittkennung im Abschnittindex (8) und daraus das Identifizieren wenigstens eines Verzeichnisses (7) in der Verzeichnisdatenbasis, das einen Verweis auf einen Musterdatenabschnitt (6) enthält, der identisch mit dem Eingabedatenabschnitt (2, 12) ist.
DE112007003645T 2007-10-25 2007-10-25 Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung Active DE112007003645B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2007/022629 WO2009054834A1 (en) 2007-10-25 2007-10-25 Data processing apparatus and method of processing data

Publications (2)

Publication Number Publication Date
DE112007003645T5 DE112007003645T5 (de) 2010-07-29
DE112007003645B4 true DE112007003645B4 (de) 2011-06-16

Family

ID=40579800

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007003645T Active DE112007003645B4 (de) 2007-10-25 2007-10-25 Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung

Country Status (5)

Country Link
US (1) US9372941B2 (de)
CN (1) CN101855636B (de)
DE (1) DE112007003645B4 (de)
GB (1) GB2466579B (de)
WO (1) WO2009054834A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190742B2 (en) * 2006-04-25 2012-05-29 Hewlett-Packard Development Company, L.P. Distributed differential store with non-distributed objects and compression-enhancing data-object routing
US8099573B2 (en) * 2007-10-25 2012-01-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
DE112007003693B4 (de) * 2007-10-25 2014-05-15 Hewlett-Packard Development Co., L.P. Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
US8782368B2 (en) * 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
CN101855620B (zh) * 2007-10-25 2013-06-12 惠普开发有限公司 数据处理设备和数据处理方法
US8332404B2 (en) * 2007-10-25 2012-12-11 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8140637B2 (en) * 2007-10-25 2012-03-20 Hewlett-Packard Development Company, L.P. Communicating chunks between devices
US8150851B2 (en) * 2007-10-25 2012-04-03 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8959089B2 (en) * 2008-04-25 2015-02-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8117343B2 (en) * 2008-10-28 2012-02-14 Hewlett-Packard Development Company, L.P. Landmark chunking of landmarkless regions
US8375182B2 (en) * 2009-02-10 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for segmenting a data stream
US8001273B2 (en) 2009-03-16 2011-08-16 Hewlett-Packard Development Company, L.P. Parallel processing of input data to locate landmarks for chunks
US7979491B2 (en) 2009-03-27 2011-07-12 Hewlett-Packard Development Company, L.P. Producing chunks from input data using a plurality of processing elements
US9141621B2 (en) * 2009-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Copying a differential data store into temporary storage media in response to a request
US20100281077A1 (en) * 2009-04-30 2010-11-04 Mark David Lillibridge Batching requests for accessing differential data stores
US8660994B2 (en) * 2010-01-28 2014-02-25 Hewlett-Packard Development Company, L.P. Selective data deduplication
US8886914B2 (en) 2011-02-24 2014-11-11 Ca, Inc. Multiplex restore using next relative addressing
US9575842B2 (en) 2011-02-24 2017-02-21 Ca, Inc. Multiplex backup using next relative addressing
KR102106959B1 (ko) * 2013-02-21 2020-05-07 에프아이오 세미컨덕터 테크놀로지스, 엘엘씨 멀티 레벨 셀 비휘발성 메모리 시스템
US11106580B2 (en) 2020-01-27 2021-08-31 Hewlett Packard Enterprise Development Lp Deduplication system threshold based on an amount of wear of a storage device
US11593021B2 (en) 2020-11-06 2023-02-28 Hewlett Packard Enterprise Development Lp Writing a container index to persistent storage
US11550493B2 (en) 2020-11-06 2023-01-10 Hewlett Packard Enterprise Development Lp Container index including a tracking data structure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5990810A (en) * 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US20060168409A1 (en) * 2002-03-22 2006-07-27 Kahn Andy C File folding technique

Family Cites Families (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369778A (en) 1987-08-21 1994-11-29 Wang Laboratories, Inc. Data processor that customizes program behavior by using a resource retrieval capability
US5638509A (en) 1994-06-10 1997-06-10 Exabyte Corporation Data storage and protection system
US5680640A (en) 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
EP0884688A3 (de) 1997-06-16 2005-06-22 Koninklijke Philips Electronics N.V. Suchverfahren mit reduziertem Index
US6003114A (en) 1997-06-17 1999-12-14 Emc Corporation Caching system and method providing aggressive prefetch
US7581077B2 (en) 1997-10-30 2009-08-25 Commvault Systems, Inc. Method and system for transferring data in a storage operation
US6374336B1 (en) 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6415373B1 (en) 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6260124B1 (en) 1998-08-13 2001-07-10 International Business Machines Corporation System and method for dynamically resynchronizing backup data
GB2341249A (en) 1998-08-17 2000-03-08 Connected Place Limited A method of generating a difference file defining differences between an updated file and a base file
US6396838B1 (en) 1998-09-28 2002-05-28 Ascend Communications, Inc. Management of free space in an ATM virtual connection parameter table
US6542975B1 (en) 1998-12-24 2003-04-01 Roxio, Inc. Method and system for backing up data over a plurality of volumes
US6920537B2 (en) 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US7107395B1 (en) 1998-12-31 2006-09-12 Emc Corporation Apparatus and methods for operating a computer storage system
US6412009B1 (en) 1999-03-15 2002-06-25 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
AU6104800A (en) 1999-07-16 2001-02-05 Intertrust Technologies Corp. Trusted storage systems and methods
US6839680B1 (en) 1999-09-30 2005-01-04 Fujitsu Limited Internet profiling
US6795963B1 (en) 1999-11-12 2004-09-21 International Business Machines Corporation Method and system for optimizing systems with enhanced debugging information
US6564228B1 (en) 2000-01-14 2003-05-13 Sun Microsystems, Inc. Method of enabling heterogeneous platforms to utilize a universal file system in a storage area network
JP2001216316A (ja) 2000-02-02 2001-08-10 Nec Corp 電子マニュアル検索システム、方法、及び記録媒体
US20020177910A1 (en) 2000-04-19 2002-11-28 Quarterman John S. Performance measurement system for large computer network
US6961900B1 (en) 2000-08-28 2005-11-01 Microsoft Corporation Rendering data according to a present schema from an origin response message
JP4651797B2 (ja) 2000-10-03 2011-03-16 富士通セミコンダクター株式会社 バックアップシステム、及び複製装置
DE60131900T2 (de) 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
US6938005B2 (en) * 2000-12-21 2005-08-30 Intel Corporation Digital content distribution
ES2261527T3 (es) 2001-01-09 2006-11-16 Metabyte Networks, Inc. Sistema, procedimiento y aplicacion de software para publicidad dirigida mediante una agrupacion de modelos de comportamiento, y preferencias de programacion basadas en grupos de modelos de comportamiento.
US6857059B2 (en) 2001-01-11 2005-02-15 Yottayotta, Inc. Storage virtualization system and methods
US6587634B2 (en) 2001-02-15 2003-07-01 Avica Technology Corporation Paging during media loading
US20020156912A1 (en) * 2001-02-15 2002-10-24 Hurst John T. Programming content distribution
EP1244221A1 (de) 2001-03-23 2002-09-25 Sun Microsystems, Inc. Verfahren und System zur Entfernung von Redundanzdaten
US7136883B2 (en) 2001-09-08 2006-11-14 Siemens Medial Solutions Health Services Corporation System for managing object storage and retrieval in partitioned storage media
US7028158B1 (en) 2001-11-02 2006-04-11 Beatty And Company Computing, Inc. Storage virtualization engine
WO2003046721A1 (en) 2001-11-23 2003-06-05 Commvault Systems, Inc. Selective data replication system and method
JP4154893B2 (ja) 2002-01-23 2008-09-24 株式会社日立製作所 ネットワークストレージ仮想化方法
US6667700B1 (en) 2002-10-30 2003-12-23 Nbt Technology, Inc. Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation
CN1692356B (zh) 2002-11-14 2014-06-04 易斯龙系统公司 用于对现存文件重新条带化的方法
US20040148365A1 (en) 2003-01-24 2004-07-29 Sunay Tripathi System and method for vectored sendfile
JP4068473B2 (ja) 2003-02-19 2008-03-26 株式会社東芝 ストレージ装置、分担範囲決定方法及びプログラム
US7516442B2 (en) 2003-10-23 2009-04-07 Microsoft Corporation Resource manifest
US7281006B2 (en) 2003-10-23 2007-10-09 International Business Machines Corporation System and method for dividing data into predominantly fixed-sized chunks so that duplicate data chunks may be identified
JP4863605B2 (ja) 2004-04-09 2012-01-25 株式会社日立製作所 記憶制御システム及び方法
US7440982B2 (en) 2003-11-13 2008-10-21 Commvault Systems, Inc. System and method for stored data archive verification
US7613748B2 (en) 2003-11-13 2009-11-03 Commvault Systems, Inc. Stored data reverification management system and method
US7133963B2 (en) 2003-12-03 2006-11-07 International Business Machines Corporation Content addressable data storage and compression for semi-persistent computer memory
US8135683B2 (en) 2003-12-16 2012-03-13 International Business Machines Corporation Method and apparatus for data redundancy elimination at the block level
US20060047855A1 (en) 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
US7269689B2 (en) 2004-06-17 2007-09-11 Hewlett-Packard Development Company, L.P. System and method for sharing storage resources between multiple files
US7617256B2 (en) 2004-07-19 2009-11-10 Microsoft Corporation Remote file updates through remote protocol
US7487138B2 (en) 2004-08-25 2009-02-03 Symantec Operating Corporation System and method for chunk-based indexing of file system content
US7523098B2 (en) * 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
US8725705B2 (en) 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
HUP0401870A2 (en) 2004-09-17 2006-04-28 3D Histech Kft Method and computer program product for storing high volume coherent primarily 3d information assuring fast retrieval and transmission
US20060069890A1 (en) 2004-09-30 2006-03-30 Emc Corporation Triangular asynchronous replication with minimal synchronous storage
US7457813B2 (en) 2004-10-06 2008-11-25 Burnside Acquisition, Llc Storage system for randomly named blocks of data
US7975061B1 (en) 2004-11-05 2011-07-05 Commvault Systems, Inc. System and method for performing multistream storage operations
US7343467B2 (en) 2004-12-20 2008-03-11 Emc Corporation Method to perform parallel data migration in a clustered storage environment
US7516239B2 (en) 2004-12-30 2009-04-07 Sap, Aktiengesellschaft Tool for optimizing system performance and methods relating to same
US7305387B2 (en) 2004-12-30 2007-12-04 Sap, Aktiengesellschaft Method and apparatus for managing data object size in a multi-user environment
US20060182050A1 (en) 2005-01-28 2006-08-17 Hewlett-Packard Development Company, L.P. Storage replication system with data tracking
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
WO2006094365A1 (en) 2005-03-11 2006-09-14 Rocksoft Limited Method for storing data with reduced redundancy using data clusters
US7814129B2 (en) 2005-03-11 2010-10-12 Ross Neil Williams Method and apparatus for storing data with reduced redundancy using data clusters
JP5043820B2 (ja) 2005-03-11 2012-10-10 ロックソフト リミテッド 低冗長記憶システムで索引を行う方法
WO2006094367A1 (en) 2005-03-11 2006-09-14 Rocksoft Limited Method for detecting the presence of subblocks in a reduced-redundancy storage system
US20060293859A1 (en) 2005-04-13 2006-12-28 Venture Gain L.L.C. Analysis of transcriptomic data using similarity based modeling
US7584338B1 (en) 2005-09-27 2009-09-01 Data Domain, Inc. Replication of deduplicated storage system
JP4571576B2 (ja) 2005-11-24 2010-10-27 株式会社日立製作所 リモートコピー記憶装置システムおよびリモートコピー方法
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US7856538B2 (en) 2005-12-12 2010-12-21 Systex, Inc. Methods, systems and computer readable medium for detecting memory overflow conditions
US7472242B1 (en) 2006-02-14 2008-12-30 Network Appliance, Inc. Eliminating duplicate blocks during backup writes
US7831793B2 (en) 2006-03-01 2010-11-09 Quantum Corporation Data storage system including unique block pool manager and applications in tiered storage
US7660836B2 (en) 2006-03-09 2010-02-09 International Business Machines Corporation Controlling incremental backups using opaque object attributes
JP4940738B2 (ja) 2006-04-12 2012-05-30 株式会社日立製作所 記憶領域動的割当方法
US8190742B2 (en) 2006-04-25 2012-05-29 Hewlett-Packard Development Company, L.P. Distributed differential store with non-distributed objects and compression-enhancing data-object routing
US8543782B2 (en) 2006-04-25 2013-09-24 Hewlett-Packard Development Company, L.P. Content-based, compression-enhancing routing in distributed, differential electronic-data storage systems
US20070250673A1 (en) 2006-04-25 2007-10-25 Eidswick Max L Computer backup system
US8862841B2 (en) * 2006-04-25 2014-10-14 Hewlett-Packard Development Company, L.P. Method and system for scaleable, distributed, differential electronic-data backup and archiving
US8165221B2 (en) 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
US8412682B2 (en) 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
EP1873657A1 (de) 2006-06-29 2008-01-02 France Télécom System und Verfahren zur Empfehlung von Webseiten basierend auf einem Nutzerprofil
US7843823B2 (en) 2006-07-28 2010-11-30 Cisco Technology, Inc. Techniques for balancing throughput and compression in a network communication system
JP4757165B2 (ja) 2006-10-04 2011-08-24 株式会社日立製作所 計算機システム、データ移行監視方法及びデータ移行監視プログラム
JP5057366B2 (ja) 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
JP5244332B2 (ja) 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
US7593973B2 (en) 2006-11-15 2009-09-22 Dot Hill Systems Corp. Method and apparatus for transferring snapshot data
US8117409B2 (en) 2006-11-22 2012-02-14 Hitachi, Ltd. Method and apparatus for backup and restore in a dynamic chunk allocation storage system
US7640354B2 (en) 2006-12-01 2009-12-29 Microsoft Corporation Scalable differential compression of network data
US8214517B2 (en) 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US7941599B2 (en) 2007-03-23 2011-05-10 Kace Networks, Inc. IT automation appliance imaging system and method
US8140806B2 (en) 2007-03-30 2012-03-20 Oracle International Corporation Eliminating fragmentation with buddy-tree allocation
US7761680B2 (en) 2007-04-03 2010-07-20 International Business Machines Corporation Copying data from a first cluster to a second cluster to reassign storage areas from the first cluster to the second cluster
US8768895B2 (en) 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
US7739312B2 (en) 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
US7783603B2 (en) 2007-05-10 2010-08-24 Dot Hill Systems Corporation Backing store re-initialization method and apparatus
US8315984B2 (en) 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
US7792826B2 (en) 2007-05-29 2010-09-07 International Business Machines Corporation Method and system for providing ranked search results
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7898993B2 (en) 2007-05-31 2011-03-01 International Business Machines Corporation Efficiency and resiliency enhancements for transition states in ad hoc networks
US7792784B2 (en) 2007-05-31 2010-09-07 International Business Machines Corporation Streaming multidimensional data by bypassing multidimensional query processor
US7788233B1 (en) 2007-07-05 2010-08-31 Amazon Technologies, Inc. Data store replication for entity based partition
EP2012235A2 (de) * 2007-07-06 2009-01-07 Prostor Systems, Inc. Gemeinschaftliche Fakturierung
US8028106B2 (en) 2007-07-06 2011-09-27 Proster Systems, Inc. Hardware acceleration of commonality factoring with removable media
US7669023B2 (en) 2007-07-10 2010-02-23 Hitachi, Ltd. Power efficient storage with data de-duplication
US7904682B2 (en) 2007-07-19 2011-03-08 International Business Machines Corporation Copying writes from primary storages to secondary storages across different networks
US7886124B2 (en) 2007-07-30 2011-02-08 Oracle International Corporation Method and mechanism for implementing dynamic space management for large objects
DE102007042144A1 (de) 2007-09-05 2009-03-12 Smiths Heimann Gmbh Verfahren zur Verbesserung der Materialerkennbarkeit in einer Röntgenprüfanlage und Röntgenprüfanlage
US8819288B2 (en) 2007-09-14 2014-08-26 Microsoft Corporation Optimized data stream compression using data-dependent chunking
US7831798B2 (en) 2007-09-18 2010-11-09 International Business Machines Corporation Method to achieve partial structure alignment
DE112007003693B4 (de) 2007-10-25 2014-05-15 Hewlett-Packard Development Co., L.P. Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
US8332404B2 (en) 2007-10-25 2012-12-11 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8099573B2 (en) 2007-10-25 2012-01-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8140637B2 (en) 2007-10-25 2012-03-20 Hewlett-Packard Development Company, L.P. Communicating chunks between devices
US8150851B2 (en) 2007-10-25 2012-04-03 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
CN101855620B (zh) 2007-10-25 2013-06-12 惠普开发有限公司 数据处理设备和数据处理方法
US20090177856A1 (en) 2008-01-09 2009-07-09 Jason Joseph Herne Method and apparatus for automated backup process
US7979670B2 (en) 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US8959089B2 (en) 2008-04-25 2015-02-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8224782B2 (en) 2008-09-29 2012-07-17 Hitachi, Ltd. System and method for chunk based tiered storage volume migration
US7733247B1 (en) 2008-11-18 2010-06-08 International Business Machines Corporation Method and system for efficient data transmission with server side de-duplication
AU2009335697A1 (en) 2008-12-18 2011-08-04 Copiun, Inc. Methods and apparatus for content-aware data partitioning and data de-duplication
US8161255B2 (en) 2009-01-06 2012-04-17 International Business Machines Corporation Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools
US8375182B2 (en) 2009-02-10 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for segmenting a data stream
US8001273B2 (en) 2009-03-16 2011-08-16 Hewlett-Packard Development Company, L.P. Parallel processing of input data to locate landmarks for chunks
US7979491B2 (en) 2009-03-27 2011-07-12 Hewlett-Packard Development Company, L.P. Producing chunks from input data using a plurality of processing elements
US8321645B2 (en) 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
US9141621B2 (en) 2009-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Copying a differential data store into temporary storage media in response to a request
US20100281077A1 (en) 2009-04-30 2010-11-04 Mark David Lillibridge Batching requests for accessing differential data stores
US8156306B1 (en) 2009-12-18 2012-04-10 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
US8499131B2 (en) 2010-04-13 2013-07-30 Hewlett-Packard Development Company, L.P. Capping a number of locations referred to by chunk references

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5990810A (en) * 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US20060168409A1 (en) * 2002-03-22 2006-07-27 Kahn Andy C File folding technique

Also Published As

Publication number Publication date
WO2009054834A1 (en) 2009-04-30
GB2466579B (en) 2012-12-26
CN101855636A (zh) 2010-10-06
US9372941B2 (en) 2016-06-21
DE112007003645T5 (de) 2010-07-29
GB2466579A (en) 2010-06-30
GB201000243D0 (en) 2010-02-24
US20100198832A1 (en) 2010-08-05
CN101855636B (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
DE112007003645B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112007003678B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112008003826B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112007003693B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE69913618T2 (de) Verfahren zur Erzeugung eines Prüfpunktes, welcher eine Basisdatei beschreibt, und Verfahren zur Erzeugung einer Differenzdatei zwischen einer aktualisierten Datei und einer Basisdatei
DE102005023128B4 (de) System und Verfahren zum gemeinschaftlichen Verwenden von Speicherressourcen zwischen mehreren Dateien
DE4435751B4 (de) Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem
DE102008015662B4 (de) Beseitigung von Daten
DE60129025T2 (de) Speicherbereichszuordnung in einem dateisystem zum beschreiben beliebiger bereiche
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE10255128A1 (de) Computer-implementierte PDF-Dokumentenverwaltung
DE102007037646B4 (de) Computerspeichersystem und Verfahren zum Indizieren, Durchsuchen und zur Datenwiedergewinnung von Datenbanken
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
EP3084638A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE102014116393A1 (de) Verfahren und System für ein sicheres Archivieren von Daten
DE112019006530T5 (de) Markieren von betroffenen ähnlichkeitsgruppen in freispeichersammeloperationen in duplizierten speichersystemen
DE112005003668T5 (de) HSM-Steuerprogramm, HSM-Steuervorrichtung und HSM-Steuerverfahren
DE102021102442A1 (de) Katalog der mit schnappschüssen verbundenen dateien
DE102021126985A1 (de) Speicherung einer kleinen objektdarstellung in einem deduplizierungssystem
DE102011011283A1 (de) Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten und Dateiserver dafür
DE69932642T2 (de) Verfahren um tabellenstellen zu uberprufen die in referenziellen integritat beteiligt sind.
DE102021105996A1 (de) Sicherungsobjekte für vollständig bereitgestellte datenträger mit dünnen listen von chunk-signaturen
DE112017008201B4 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
EP2812788B1 (de) Verfahren zum löschen von informationen, verwendung eines verfahrens, computerprogrammprodukt und computersystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R020 Patent grant now final

Effective date: 20110917

R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOU, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: SAMSON & PARTNER PATENTANWAELTE MBB, DE

R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB

R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB

R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TEX., US