DE69913618T2 - Verfahren zur Erzeugung eines Prüfpunktes, welcher eine Basisdatei beschreibt, und Verfahren zur Erzeugung einer Differenzdatei zwischen einer aktualisierten Datei und einer Basisdatei - Google Patents

Verfahren zur Erzeugung eines Prüfpunktes, welcher eine Basisdatei beschreibt, und Verfahren zur Erzeugung einer Differenzdatei zwischen einer aktualisierten Datei und einer Basisdatei Download PDF

Info

Publication number
DE69913618T2
DE69913618T2 DE69913618T DE69913618T DE69913618T2 DE 69913618 T2 DE69913618 T2 DE 69913618T2 DE 69913618 T DE69913618 T DE 69913618T DE 69913618 T DE69913618 T DE 69913618T DE 69913618 T2 DE69913618 T2 DE 69913618T2
Authority
DE
Germany
Prior art keywords
segment
file
description
lossy
segments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69913618T
Other languages
English (en)
Other versions
DE69913618D1 (de
Inventor
Dominic Christopher Courteney Williams
Christian Korn
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.)
Connected Place Ltd
Original Assignee
Connected Place Ltd
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 Connected Place Ltd filed Critical Connected Place Ltd
Publication of DE69913618D1 publication Critical patent/DE69913618D1/de
Application granted granted Critical
Publication of DE69913618T2 publication Critical patent/DE69913618T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Image Analysis (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

  • Technisches Gebiet
  • Die Erfindung betrifft ein Verfahren zum Erzeugen eines Kontrollpunkts, der eine Boxdatei beschreibt, und ein Verfahren zum Erzeugen einer Differenzdatei, die Unterschiede zwischen einer aktualisierten Datei und einer Basisdatei definiert. Die Erfindung kann z. B. bei Netzwerksystemen angewandt werden, bei denen eine Fernkopie einer Datei durch Übertragung und Anwendung der Unterschiede zwischen aufeinanderfolgenden Versionen der örtlichen Kopie aktualisiert wird, um dadurch die Bandbreite effizienter zu nutzen. Dazu gehören moderne Online-Backup- und Datenreplikationssysteme sowie Netzwerkcomputersysteme, die es Anwendungen ermöglichen, nur die Änderungen von in den Speicher geladenen Dateien bei aufeinanderfolgenden Sicherungsvorgängen vom Client zum Server zu übertragen. Die Erfindung kann auch z. B. bei Backup-Untersystemen angewandt werden, bei denen Speichermedien wirtschaftlicher genutzt werden können, wenn nur ein Unterschied zu Dateien abgespeichert wird.
  • Hintergrund der Erfindung
  • Verfahren zum Bestimmen, wie eine Datei in eine andere zu wandeln sei, sind seit langem für Computerwissenschaftler von Interesse. Derzeit existieren viele derartige Verfahren. Es wird Kapital aus der Tatsache geschlagen, dass erzeugte Beschreibungen einer Transformation im Allgemeinen kleiner sein können als es die transformierte Datei wäre. Hauptsächlich werden diese Techniken daher bei Dateien angewandt, die fortlaufend modifiziert werden. Es wird sowohl eine Basis- als auch eine aktualisierte Version einer Datei erstellt, und es wird eine Beschreibung dazu erzeugt, wie die Basisdatei in die aktualisierte Version zu wandeln ist. Derartige Beschreibungen inkrementaler Transformationen werden für Vorgänge wie einer Verringerung des Aufwands zum Speichern von Dateiwerdegängen und dazu verwendet, Fernkopien sich ändernder Dateien aktualisiert zu halten.
  • Quellcode-Kontrollsysteme bilden einige der frühesten Beispiele für derartige Differenz- oder Transformations-Berechnungstechniken in der Praxis. Diese Systeme werden bei Softwareprojekten dazu verwendet, Versionswerdegänge von Quellcode-Textdateien, für die die Wahrscheinlichkeit einer vielfachen Änderung während ihrer Lebensdauer wahrscheinlich ist, aufrecht zu erhalten. Da Speicherplatz sehr gesucht ist, ist es verhindernd teuer, eine große Anzahl aufeinanderfolgender Versionen jeder Datei insgesamt abzuspeichern. Stattdessen besteht die typische Lösung darin, die erste Version einer Datei abzuspeichern und danach zeilenweise nur den Unterschied zwischen folgenden Versionen aufzuzeichnen. Wenn ein Programmierer eine spezielle Version einer Datei anfordert, erfasst das System die früheste Version der Datei, die insgesamt abgespeichert ist, und es wendet sequenziell die aufeinanderfolgenden Unterschiede zwischen den Versionen an, bis die früheste Version in die angeforderte Version umgewandelt ist. Eine frühe Beschreibung eines derartigen Systems findet sich in einem technischen Bericht von M. J. Rochkind mit dem Titel "The Source Code Control System", IEEE Transaction on Software Engineering, Vol. SE-1, Nr. 4, Dez. 1975, S. 364–370.
  • Das System gemäß Rochkind beschreibt Unterschiede zwischen Textzeilen, jedoch beschreiben modernere Techniken Unterschiede auf dem Niveau einzelner Bytes. Diese Techniken haben in Netzwerken eine bedeutende Anwendung gefunden, bei denen die Datenübertragung teuer ist. Als Weg zum Einsparen von Bandbreite, insbesondere über moderne Leitungen und das Internet, werden Aktualisierungen von Dateien häufig als Beschreibungen von Unterschieden auf Byteniveau oder als binäre Patches, gegenüber vorigen Versionen verteilt. Eine derartige Technik wird bei der Verteilung von Aktualisierungen von Softwarepaketen in weitem Umfang verwendet. Hierbei wünschen es Käufer häufig, ausführbare Dateien zu aktualisieren, die in den Computern von Benutzern installiert sind, da ein Sicherheitsmangel oder irgendein anderes Problem erkannt wurde. Anstatt dass sie dazu aufgefordert werden, aktualisierte Versionen der beeinträchtigten Dateien insgesamt herunter zu laden, werden Binärpatches erzeugt, die eine Minimalbeschreibung dazu repräsentieren, wie die alten Dateiversionen modifiziert werden müssen. Die Binärpatches werden dann zum Herunterladen verfügbar gemacht, und Benutzer können sie schnell erhalten und anwenden, um die Problemdateien in die revidierten Versionen zu transformieren.
  • Trotz der weit verbreiteten Verwendung der oben genannten herkömmlichen Patchtechniken haben sie sich jedoch für einige neue Typen von Netzwerkan wendungen als unangemessen erwiesen. Probleme entstanden einhergehend mit dem Erfordernis, sowohl die Basis- als auch die aktualisierten Versionen von Dateien zur Hand zu haben, um Unterschiede zu berechnen. Neue Anwendungen müssen häufig nur den Unterschied zwischen aufeinanderfolgenden Versionen von Dateien übertragen, um die Bandbreite wirtschaftlich zu nutzen, jedoch können sie sich nicht den Aufwand leisten, wie er in Zusammenhang mit dem Abspeichern lokaler Kopien sowohl der Basis- als auch der aktualisierten Versionen jeder Datei entsteht. Ein Beispiel einer derartigen Situation tritt im sich neu entwickelnden Gebiet von Online-Backupsystemen auf. Hierbei speichern Backupserver Kopien einer großen Anzahl von Clientdateien, und diese müssen typischerweise unter Verwendung einer zur Datenübertragung verfügbaren langsamen Verbindung aktualisiert gehalten werden. Einige Dateien, für die ein Backup erstellt wurde, wie Mailboxes, können eine Größe von einigen 10 Megabyte aufweisen, wobei sie jedoch regelmäßig bei jeder Modifizierung nur um einige wenige Kilobyte geändert werden. In derartigen Fällen ist es nur praxisgerecht, bei jedem Backupvorgang nur den Unterschied zwischen der zuletzt gespeicherten Kopie der Datei und ihrer jüngsten Version zu übertragen. Jedoch erfordert es eine Realisierung dieses Schemas unter Verwendung herkömmlicher Techniken, dass Clients lokale Kopien der zuletzt übertragenen Versionen der Dateien aufrecht erhalten, für die ein Backup erstellt wurde. Dies bedeutet, dass der durch viele Backupdateien verbrauchte Raum tatsächlich verdoppelt ist.
  • Die Probleme, die sich aus der Anwendung herkömmlicher Patchtechniken bei Online-Backupsystemen ergeben, zeigen sich bei denen, die sie verwenden. Ein derartiges System ist im am 27. Mai 1997 für Robert J. T. Morris erteilten und an International Business Machines Corporation übertragenen US-Patent Nr. 5,634,052 beschrieben. Hot Wire Data Security, Inc. hat ein ähnliches System realisiert, das als BackupNet (www.backupnet.com) bezeichnet wird. Bei diesen Systemen behält der Client tatsächlich Kopien der letzten Versionen von Dateien, die an den Server übertragen wurden, in einem Cache. Beim nächsten Backup werden diese dazu verwendet, Patches für modifizierte Dateien zu erzeugen, die auf dem Server aktualisiert werden müssen. Wenn die Technik eine Übereinstimmung im Cache herausfindet, kann sie Patches minimaler Größe erzeugen, da sie sowohl die Basis- als auch aktualisierte Dateiversionen zur Hand hat. Jedoch schränken unglücklicherweise Speichereinschränkungen typischer Maschinen Caches dahingehend ein, dass sie nur einen Bruchteil der dem Backupsystem zugewiesenen Dateien aufnehmen können, insbesondere dann, wenn es um große Dateien geht. Daher treten selbst dann, wenn Dateien auf genauer Basis betreffend die wahrscheinlichste Modifizie rung in den Cache eingegeben und aus ihm gelöscht werden können, immer zahlreiche Fälle auf, bei denen eine gesamte aktualisierte Datei, statt nur ein Patch, übertragen werden muss.
  • Es entwickelte sich eine neue Klasse von Patchtechniken, um die Anzahl der oben genannten Cache-Fehltreffer drastisch zu reduzieren. Bei Techniken der neuen Klasse werden spezielle Differenz-Kontrollpunktdaten aus der Basisdatei hergeleitet, die diese später während der Patcherzeugung ersetzen können. Kontrollpunkte sind so konzipiert, dass sie nur einen winzigen Bruchteil des Speicherplatzes der entsprechenden Basisdatei belegen, jedoch immer noch ausreichend viel Information enthalten, damit ein binärer Patch mit guter Effizienz berechnet werden kann. Häufig existiert ein grundlegender Kompromiss, gemäß dem die Differenzberechnung umso ungenauer ist und die Größe des erzeugten Patchs umso größer ist, je kleiner Kontrollpunkte sind. Jedoch kann der Kompromiss abhängig von der Situation optimiert werden, und so können tatsächlich bessere Lösungen als durch herkömmliche Verfahren erzielt werden. Eine Beschreibung einer Patchtechnik auf Kontrollpunktbasis findet sich im am 26. Dezember 1995 für Squibb erteilten und an Squibb Data Systems, Inc. übertragenen US-Patent Nr. 5,479,654. Ein Beispiel einer derartigen Technik in der Praxis findet sich in der Delta-Blocking-Technik von Connected Corporation, wie bei deren Connected On-line Backupsystem verwendet (www.connected.com).
  • Differenz-Kontrollpunkte können auf viele Arten konstruiert werden, jedoch beruhen beim Schreiben alle auf digitalen Signaturen. Repräsentierte Dateien werden in gleiche sequenzielle Segmente unterteilt, und für jedes wird eine digitale Signatur berechnet und im Kontrollpunkt abgespeichert. Diese Signaturen erfordern zur Speicherung nur einen sehr kleinen Speicherumfang, jedoch führen sie eine Fingerabdruckfunktion aus, die es ermöglicht, die Bytes in einem Segment über jeden vernünftigen Zweifel hinaus eindeutig zu identifizieren. Eine verbreitete Signatur, die durch CCITT standardisiert wurde, ist 32-Bit-CRC, wozu sich in einem technischen Aufsatz von Mark Nelson mit dem Titel "File Verification Using CRC", Dr Dobb's Journal, Mai 1992 eine Erörterung findet. Jeder 32-Bit-CRC verbraucht vier Bytes zur Speicherung, so dass dann, wenn eine Segmentgröße von 1 Kilobyte gewählt wird, Kontrollpunkte konstruiert werden können, die nur einige Prozent der Größe der ihnen entsprechenden Datei verbrauchen. Jedoch können durch Durchsuchen einer Datei nach Segmentlängen von Bytes mit Signaturen, die zu denen im Kontrollpunkt gespeicherten passen, Byteblöcke erkannt werden, die in der repräsentierten Datei vorhanden sind. Der Kompromiss kann darin ge sehen werden, dass der Unterschied im Allgemeinen umso genauer berechnet werden kann, je kleiner die gewählte Segmentlänge ist, dass jedoch umso mehr Signaturen erzeugt werden und umso mehr Platz erforderlich ist, um den Kontrollpunkt zu speichern. In der Praxis führt jedoch die Verwendung einer Standardsegmentlänge von 512 Bytes, wenn es um mittlere bis große Dateien geht, zu berechneten Patches, die nur ein oder zwei Prozent größer als diejenigen sind, die durch herkömmliche Techniken berechnet werden.
  • Während sich jedoch in Kontrollpunkten gespeicherte Signaturen als Maßnahme dazu erweisen, Segmente in einer aktualisierten Datei mit Segmenten in einer Basisdatei zur Übereinstimmung zu bringen, können für sich selbst keine zufriedenstellende Lösung liefern. Segmente von Bytes in einer aktualisierten Datei mit Signaturen, die zu solchen sequenzieller Basisdateisegmente passen, können mit beliebigem Versatz und beliebiger Reihenfolge auftreten. Daher steht ohne irgendein Hilfsverfahren nur ein verhindernd teurer Weg zum Auffinden jedes identifizierbaren Segments zur Verfügung. Dazu muss das Berechnen der Signatur einer Bytelänge entsprechend einem Segment folgend auf jeden Versatz in der aktualisierten Datei und eine Prüfung gehören, ob eine Übereinstimmung mit einer Signatur im Kontrollpunkt besteht. Es ist ziemlich vernünftig, den Versatz in der aktualisierten Datei entsprechend der Länge eines Segments zu inkrementieren, wenn ein passendes Segment gefunden wird, so dass dann, wenn die Basis- und die aktualisierten Dateien identisch sind, nur so viele Signaturen berechnet werden als sequenzielle Segmente, die sie enthalten, berechnet werden. Jedoch werden im ungünstigten Fall, in dem die Dateien keine wiederverwendeten Segmente gemeinsam haben, beinahe so viele Signaturen berechnet, wie Bytes in der aktualisierten Datei enthalten sind. Da es zu Signaturberechnungen gehört, jedes Byte im jeweiligen Segment einer komplizierten Funktion zu unterziehen, ist es ersichtlich, dass die Rechenkompliziertheit im ungünstigten Fall viel zu hoch ist.
  • Um die oben genannte Rechenkompliziertheit zu verringern, versuchen einige Techniken einfach, jedes mögliche wiederverwendete Segment zu erkennen. In der einfachsten Form gehört dazu die Annahme, dass dann, wenn die aktualisierte Datei Segmente aus der Basisdatei enthält, diese mit dem Versatz vorhanden sind, mit dem sie ursprünglich als Sequenz eingeteilt wurde. Signaturen werden für sequenzielle Segmente in der aktualisierten Datei berechnet und dann direkt mit der im Kontrollpunkt gespeicherten Signatur des entsprechenden sequenziellen Segments in der Basisdatei verglichen. Dies gewährleistet, dass nur so viele Signaturen berechnet werden, wie sequenzi elle Segmente in der aktualisierten Datei vorhanden sind. Als Konsequenz dieser Vorgehensweise schlagen diese Techniken sogar im einfachen Fall fehl, in dem eine Datei durch das Einfügen von Daten modifiziert wird. In einem derartigen Fall, bei dem bei einer Basisdatei vor dem Anfang ein Byte vorangestellt ist, wodurch alle Segmentausrichtungen geändert sind, werden keine Übereinstimmungen aufgefunden, und als aktualisierte Datei wird ein Patch berechnet, der der gesamten Größe entspricht. Da es bei dieser Methode nicht möglich ist, den Hauptanteil von Dateimodifizierungen zu meistern, wird sie allgemein als ungeeignet angesehen. Stattdessen haben sich Techniken auf das Prüfen von Übereinstimmungen mit jedem möglichen Versatz durch Herausfinden von Wegen konzentriert, gemäß denen nicht übereinstimmende Segmente weggelassen werden, bevor ihre Signatur berechnet würde.
  • Das bevorzugte Verfahren zum Verbessern der Effizienz bei der Patcherzeugung besteht darin, dass zu Kontrollpunkten Daten hinzugefügt werden, die für den Fingerabdruck-Übereinstimmungsprozess irrelevant sind. Derartige Daten werden rein zur Verbesserung der Effizienz eingeschlossen, und sie sind für die endgültige Identifizierung wiederverwendeter Segmente nicht zuständig. Die Technik gemäß Squibb entspricht einer derartigen Vorgehensweise, und bei ihr werden drei verschiedene, jedoch zunehmend aufwändigere Signaturtypen im Kontrollpunkt platziert, wobei nur der aufwändigste dazu verwendet wird, Segmente unwiderlegbar zu identifizieren. Die Signaturen bestehen aus einer XOR-Verknüpfung einer Untermenge von Bytes aus dem Segment, einem 16-Bit-CRC aller Bytes im Segment und schließlich eines 32-Bit-CRC aller Bytes im Segment. Bei jedem Versatz in der gelieferten Datei, für den angenommen wird, dass sich ein Segment aus der repräsentierten Datei findet, wird als Erstes die relativ wenig aufwändige XOR-Verknüpfung berechnet. Nur dann, wenn sich eine Übereinstimmung herausstellt, wird dazu übergegangen, den aufwändigeren 16-Bit-CRC zu berechnen, und wenn für diesen Übereinstimmung besteht, wird der noch aufwändigere 32-Bit-CRC berechnet. Der XOR-Test schließt schnell die meisten Segmente aus, die große Unterschiede aufweisen. Der 16-Bit-CRC, der als Nächstes berechnet wird, schließt die meisten Segmente aus, die keine großen Ähnlichkeiten aufweisen. Demgemäß wird die aufwändigste Signatur, der 32-Bit-CRC, nur dann berechnet, wenn eine hohe Wahrscheinlichkeit dafür existiert, dass eine Übereinstimmung aufgefunden wird, was zu einer hohen Zunahme der allgemeinen Effizienz führt.
  • Jedoch leiden Techniken, wie die von Squibb, die im Kontrollpunkt aus irgendeinem festen Bereich relativ wenig aufwändiger Signaturen die Effizienz verbessernde Daten erzeugen, immer noch unter einer Anzahl von Mängeln. Ein Mangel besteht darin, dass derartige Techniken ihre Herleitung von Effizienzdaten nicht an verschiedene Dateitypen oder spezielle Muster innerhalb von Dateien anpassen können. Dateien, die lange Stücke desselben Bytes enthalten, solche, die regelmäßige Bytemuster enthalten, und solche, die eine kleine Untermenge von Bytes enthalten, bewirken eine übermäßig häufige Übereinstimmung der weniger aufwändigen Signaturen, wenn die Segmente verschieden sind, wodurch sie eine große Anzahl überflüssiger Berechnungen der aufwändigsten Signatur zur Folge haben. Ein anderer Mangel besteht darin, dass der Benutzer den Umfang der die Effizienz fördernden Daten, wie sie für eine Datei herzuleiten sind, nicht regeln kann, z. B. so, dass die Wahrscheinlichkeit einer Modifizierung widergespiegelt wird, so dass in einem Online-Backupsystem eine Aktualisierung erforderlich ist. Ein weiterer Mangel besteht darin, dass kein maximales Funktionsvermögen erzielt wird, wenn irgendeine beliebige Grenze für die Menge herleitbarer Effizienzdaten vorliegt. Die Erfindung berücksichtigt diese Mängel durch Verwenden einer mehrdimensionalen, hierarchischen Repräsentation von Effizienzdaten, die mit variablen "Auflösungs"raten hergeleitet werden.
  • Zusammenfassung der Erfindung
  • Gemäß einer Erscheinungsform der Erfindung ist Folgendes geschaffen: ein Verfahren zum Erzeugen eines eine Basisdatei beschreibenden Kontrollpunktes, wobei die Basisdatei in eine Reihe von Segmenten aufgeteilt wird, für jedes Segment eine Segmentbeschreibung erzeugt wird, wobei jede Segmentbeschreibung eine verlustfreie Signatur und mehrere verlustbehaftete Samples aufweist, die das Segment jeweils auf verschiedenen Auflösungsstufen beschreiben, und aus den erzeugten Segmentbeschreibungen eine Segmentbeschreibungsstruktur als Kontrollpunkt erstellt wird; wobei die Segmentbeschreibungsstruktur erstellt wird, indem für jedes Segment aus den verlustbehafteten Samples und der verlustfreien Signatur eine Beschreibung ausgewählt wird, die das Segment auf der niedrigsten Auflösungsstruktur adäquat kennzeichnet.
  • Gemäß einer anderen Erscheinungsform der Erfindung ist Folgendes geschaffen: ein Verfahren zum Erstellen einer Umwandlungsliste, die eine aktualisierte Version der Basisdatei mit Verweis auf die Basisdatei und einen Kontrollpunkt für die Basisdatei definiert, wobei: ein Kontrollpunkt nach dem Verfahren der ersten Erscheinungsform erzeugt wird, an einer Anfangsposition in der aktualisierten Datei ein erstes Segment definiert wird, für das erste Segment eine Segmentbeschreibung erzeugt wird, die Segmentbeschreibung für das erste Segment mit den Segmentbeschreibungen des Kontrollpunkts verglichen wird, und bei Übereinstimmung die übereinstimmende Segmentbeschreibung zu der Umwandlungsliste hinzugefügt wird und bei Nichtübereinstimmung die Daten des ersten Segments zu der Umwandlungsliste hinzugefügt werden.
  • Gemäß der Erfindung ist auch Folgendes geschaffen: ein Verfahren zum Erzeugen einer Differenzdatei, die Unterschiede zwischen einer aktualisierten Datei und einer Basisdatei definiert, wobei ein Kontrollpunkt nach dem Verfahren zum Erzeugen eines Kontrollpunktes gemäß der ersten Erscheinungsform der Erfindung erzeugt wird, Segmentbeschreibungen für Segmente in der aktualisierten Datei auf verschiedenen Auflösungsstufen erzeugt und mit Segmentbeschreibungen im Kontrollpunkt verglichen werden, um übereinstimmende und nicht übereinstimmende Segmente zu identifizieren, und Daten, die mit Segmenten in der Basisdatei übereinstimmende Segmente in der aktualisierten Datei identifizieren, sowie Daten, die Teile der aktualisierten Datei wiedergeben, auf niedrigstmöglicher, zur unterscheidbaren Wiedergabe des Teils ausreichender Auflösungsstufen als Differenzdatei abgespeichert werden.
  • Wie es aus der folgenden Beschreibung deutlich werden wird, bietet die Erfindung gegenüber bisher bekannten Vorgehensweisen mehrere Vorteile. Die Erfindung ermöglicht es, Kontrollpunkte aus Segmente identifizierenden Signaturen und Daten, die die Effizienz der Differenzerzeugung verbessern, zusammenzusetzen, um so die die Effizienz verbessernden Kontrollpunktdaten entsprechend dem Basisdateityp herzuleiten, um ein besseres Funktionsvermögen zu erzielen. Die Erfindung ermöglicht es, die im Kontrollpunkt enthaltenen, die Effizienz verbessernden Daten hierarchisch herzuleiten und abzuspeichern, um die erforderliche Speichergröße zu minimieren. Die Erfindung ermöglicht es, Repräsentationen von Unterschieden so effizient wie möglich zu erzeugen, wobei eine beliebige Beschränkung zur Kontrollpunktgröße vorliegt. Die Erfindung kann bei Netzwerken angewandt werden, und sie kann die Kosten bei der Netzwerkübertragung bei einer Anzahl von Netzwerkanwendungen senken. Die Erfindung ermöglicht es auch, die Speichererfordernisse im Backup-Untersystem eines Client-Server-Systems zu senken.
  • Kurz gesagt, werden spezielle Kontrollpunktdaten aus einer Basisdatei hergeleitet. Der Kontrollpunkt enthält Signaturen, die aus den sequenziellen Segmenten der Basisdatei entnommen sind und diese eindeutig kennzeichnen. Der Kontrollpunkt enthält auch Effizienzdaten, die dazu konzipiert sind, den folgenden Prozess effizienter zu machen. Es wird eine modifizierte Version der Basisdatei geliefert (die auch als neue Version der Basisdatei oder als geänderte Version derselben oder als aktualisierte Version derselben bezeichnet wird). Es wird eine Beschreibung zum Unterschied zwischen der Basisdatei und der aktualisierten Datei erzeugt, die die aktualisierte Datei in Form neuer Bytes und Segmente beschreibt, die auch in der Basisdatei vorhanden sind.
  • Kontrollpunkt-Effizienzdaten (die auch als Bilddaten bezeichnet werden) werden hergeleitet (was auch als Absampeln bezeichnet wird), um variierende Informationsmengen zu zugeordneten Basisdateisegmenten zu enthalten. Die Menge enthaltener Daten (was auch als Auflösung bezeichnet wird) wird während der Kontrollpunktherleitung beim Versuch erhöht oder verringert, unterscheidende Einzelheiten aus den repräsentierten Basisdateisegmenten hervorzubringen. Die Bilddaten werden auf solche Weise hierarchisch hergeleitet und abgespeichert, dass sie einen ähnlichen Platzumfang belegen, als wären sie durchgehend mit der geringsten Auflösung abgesampelt worden. Während der Erzeugung der Differenzrepräsentation werden die Bilddaten dazu verwendet, zu bestimmen, ob aufwändige Signaturberechnungen ausgeführt werden sollen oder nicht. Da innerhalb der hierarchischen Repräsentation der Bilddaten mehr Information enthalten ist, kann das Verfahren mit genauerem Genauigkeitsgrad berechnen, ob Signaturberechnungen ausgeführt werden sollen, um so die Gesamteffizienz zu verbessern. Da die Sampleauflösung erhöht ist, um unterscheidende Segmentdetails dort herauszufinden, wo es erforderlich ist, ist für eine gewisse Anpassung an verschiedene Dateitypen gesorgt, wodurch die Anzahl der Dateitypen verringert ist, die zu einem ungewöhnlich schlechten Funktionsvermögen führen können.
  • Die obigen und andere Merkmale der Erfindung werden insbesondere in den beigefügten Ansprüchen dargelegt, und sie werden, gemeinsam mit zugehörigen Vorteilen, aus einer Berücksichtigung der folgenden detaillierten Beschreibung einer beispielhaften Ausführungsform der Erfindung, die unter Bezugnahme auf die beigefügten Zeichnungen erfolgt, deutlicher werden.
  • Kurze Beschreibung der Zeichnungen
  • In den Zeichnungen ist Folgendes dargestellt.
  • 1 ist ein Flussdiagramm, das eine Reihe von die Erfindung verkörpernden Prozeduren zeigt;
  • 2 ist ein Flussdiagramm, das eine andere, vereinfachte Reihe von die Erfindung verkörpernden Prozeduren zeigt;
  • 3 ist eine Darstellung eines in Segmente unterteilten Bilds;
  • 4 ist ein Flussdiagramm, das eine Repräsentation einer Routine zum Scannen einer Basisdatei auf hoher Ebene zeigt;
  • 5 zeigt ein Beispiel von Daten in einer Segmentbeschreibung;
  • 6 zeigt ein Beispiel eines mehrstufigen, zunehmend verlustbehafteten Sampleschemas für Bildbytes;
  • 7 zeigt (a) eine Konstruktion einer Segmentbeschreibungsstruktur für eine erste Auflösungsstufe und (b) die Konstruktion der Segmentbeschreibungsstruktur bei zwei Auflösungsstufen;
  • 8 ist ein Flussdiagramm, das einen Teil des Flussdiagramms der 4 detaillierter zeigt;
  • 9 zeigt ein Beispiel einer Segmentbeschreibungsstruktur, bei der drei Stufen verlustbehafteter Auflösung definiert sind;
  • 10 ist eine Tabelle, die den Speicherplatz zeigt, wie er durch Segmentbeschreibungen verbraucht wird, wenn diese in einem Kontrollpunkt abgespeichert werden;
  • 11 ist ein Diagramm, das zeigt, wenn eine hypothetische Segmentbeschreibungsstruktur vorgegeben ist, die in der 10 dargestellten Segmentbeschreibungsknoten auf einer Platte geordnet werden können, um eine Rekonstruktion der Struktur zu ermöglichen;
  • 12 ist ein Flussdiagramm auf hoher Ebene, das ein Programm ÜBEREINSTIMMUNG beschreibt; und
  • 13 ist ein Flussdiagramm, das einen Teil des Programms ÜBEREINSTIMMUNG detaillierter zeigt.
  • Detaillierte Beschreibung
  • In der folgenden speziellen Beschreibung ist ein Verfahren verwendet, bei dem eine spezielle Kontrollpunktrepräsentation einer anfänglichen oder Basisdatei dazu verwendet wird, zu berechnen, wie diese in eine aktualisierte oder gelieferte Datei zu transformieren ist. Der Kontrollpunkt enthält weniger Daten als die durch ihn repräsentierte Datei, was das Verfahren für Situationen ideal macht, in denen eine Datei während einer Patchberechnung wegen Speicher- oder Speicherplatzbeschränkungen nicht vorhanden sein kann. Der Kontrollpunkt enthält zwei Typen von Daten, die aus sequenziellen Blöcken in der repräsentierten Datei hergeleitet werden. Diese Daten bestehen aus Signaturen, die in eindeutiger Weise jeden sequenziellen Block identifizieren, und verlustbehafteten Bilddaten, die deren Form annähern.
  • Die Auflösung, mit der Bilddaten für einzelne Blöcke entnommen werden, wird variiert, um ihre Unterscheidungsmerkmale zu erfassen. Jedoch werden die Bilddaten hierarchisch repräsentiert, so dass nur minimal mehr Speicherplatz als dann erforderlich ist, wenn die niedrigste Auflösungsstufe durchgehend verwendet worden wäre. Zum Verfahren gehört es, die Kontrollpunktdaten in eine Suchstruktur zu laden, die mehrdimensionale Hierarchien von Bäumen enthält, wobei jeder Baum über Strukturen verfügt, die hinsichtlich Bilddaten sortiert sind, die für aufeinanderfolgende Auflösungsstufen entnommen wurden.
  • Dann gehört es zum Verfahren, sich inkrementell durch die gelieferte Datei zu bewegen. Für jeden Versatz durchscannt das Verfahren die Suchstruktur für im Kontrollpunkt beschriebene Blöcke, deren Form zu der des folgenden Blocks von Bytes in der Datei passt. Wenn keine Übereinstimmung existiert, wurde ein Byte aufgefunden, das für die gelieferte Datei einzigartig ist. Wenn eine Übereinstimmung existiert, gehört es zum Verfahren, als Nächstes die Signatur für den nächsten Block in der Datei zu berechnen.
  • Wenn die Signatur mit der Übereinstimmungs-Kontrollpunktbeschreibung übereinstimmt, weiß das Verfahren, dass es in der gelieferten Datei einen Block aufgefunden hat, der in der repräsentierten Datei existiert, und es fährt damit fort, direkt jenseits davon zu suchen. Dieser Prozess dauert an, bis eine Beschreibung der gelieferten Datei in Form eindeutiger Bytes und Blöcke aus der repräsentierten Datei erzeugt wurde. Es ergibt sich eine hohe Effizienz, da Signaturen, die aufwändig zu berechnen sind, nur dann für Blöcke in der gelieferten Daten berechnet werden, wenn übereinstimmende Bilddaten eine hohe Wahrscheinlichkeit dafür anzeigen, dass Äquivalenz aufgefunden werden wird. Es werden weniger Signaturberechnungen als dann gemacht, wenn die Bilddaten mit einer einzelnen Auflösung abgesampelt worden wären. Ferner entnimmt das Verfahren Bilddaten auf eine Weise, die für eine gewisse Anpassung an verschiedene Dateitypen sorgt, um so die Anzahl der Fälle mit schlechtem Funktionsvermögen zu verringern, in denen viele überflüssige Signaturberechnungen ausgeführt werden müssen.
  • Wie es in der 1 der beigefügten Zeichnungen dargestellt ist, kann die Erfindung durch vier getrennte Programme realisiert werden, die sequenziell abgearbeitet werden, um eine Beschreibung des Unterschieds zwischen zwei aufeinanderfolgenden Versionen einer Datei zu erzeugen. Das erste Programm, das nachfolgend als SCAN-Programm 10 bezeichnet wird, durchscannt eine Basisdatei, um einen in einen Speicher geladenen Kontrollpunkt zu erzeugen. Das zweite Programm, das nachfolgend als SICHERUNG-Programm 12 bezeichnet wird, ist wahlweise vorhanden, und es schreibt den in den Speicher geladenen Kontrollpunkt in einen nichtflüchtigen Speicherplatz ein. Das dritte Programm, das nachfolgend als LADEN-Programm 14 bezeichnet ist, ist ebenfalls wahlweise vorhanden, und es wird in Verbindung mit dem SICHERUNG-Programm 12 dazu verwendet, einen Kontrollpunkt aus dem nichtflüchtigen Speicherplatz in den Speicher zu laden. Das vierte Programm, das nachfolgend als ÜBEREINSTIMMUNG-Programm 16 bezeichnet wird, durchscannt eine aktualisierte Version der Basisdatei in Verbindung mit einem in den Speicher geladenen Kontrollpunkt, und es erzeugt eine Beschreibung der aktualisierten Basisdatei in Form eindeutiger Bytes und Segmenten von Bytes, wie sie sich in der ursprünglichen Basisdatei finden.
  • Allgemein gesagt, sind, wenn die Zeitperiode zwischen der Ausführung des SCAN- und des ÜBEREINSTIMMUNG-Programms 10, 16 groß ist, das SICHERUNG- und das LADEN-Programm 12, 14 in die Ausführungsabfolge eingeschlossen, wie es in der 1 dargestellt ist. Wenn andererseits die oben genannte Periode klein ist, können diese Programme 12, 14 ausgeschlossen werden. Wie es in der 2 dargestellt ist, kann ein Programm, das nachfolgend als VERDICHTUNG-Programm 18 bezeichnet wird, an deren Stelle abgearbeitet werden, um den durch den geladenen Kontrollpunkt verbrauchten Speicher zu verringern.
  • Die Daten in einer Basisdatei können Beliebiges von Finanzdaten bis zu Nachrichten, Computerprogrammen bis zu elektronischen Bildern repräsentieren. Die der Erfindung zugrunde liegenden Konzepte können einfacher ver standen werden, wenn davon ausgegangen wird, dass die Daten ein elektronisches Bild repräsentieren. Nachfolgend wird daher der Betrieb der verschiedenen Operationen so beschrieben, als seien die Daten in der Basisdatei diejenigen eines Bilds. Der Fachmann erkennt, dass die Erfindung nicht auf die Verarbeitung von Bilddateien beschränkt ist, sondern sie in gleicher Weise auf jede beliebige Datei anwendbar ist, die digitale Daten enthält, unabhängig davon, was diese Daten repräsentieren.
  • Die 3 der beigefügten Zeichnungen zeigt ein Bild 20, das durch Daten in einer Basisdatei repräsentiert ist. Wie es nachfolgend erläutert wird, unterteilt das SCAN-Programm 10 die das Bild repräsentierenden Daten in eine Reihe von Bildsegmenten 21 bis 29 gleicher Länge. Die Länge jedes Segments muss nicht durch die Größe des Bilds bestimmt sein. Demgemäß enthalten z. B. die beiden Segmente 24 und 27 einen Endabschnitt 24', 27' mit einer Zeilenstartposition 24'', 27'' der nächsten Zeile. Das SCAN-Programm 10 ist in der 4 der beigefügten Zeichnungen detaillierter dargestellt. Das SCAN-Programm 10 arbeitet sich sequenziell durch eine Basisdatei, wie sie von einem Benutzer in einem Schritt 30 erhalten wird (nachfolgend "gelieferte Basisdatei"), um jedes sequenzielle Segment der Reihe nach zu verarbeiten, wie es durch die Blöcke 32, 34, 36, 38, 40 & 42 repräsentiert ist. Für jedes Segment erzeugt das SCAN-Programm im Schritt 36 eine dasselbe beschreibende Segmentbeschreibung. Als Nächstes gibt das SCAN-Programm, in Schritt 38, die Segmentbeschreibung in eine Segmentbeschreibungsstruktur ein, die die Basisdatei beschreibt.
  • Wie es in der 5 der beigefügten Zeichnungen dargestellt ist, besteht die Segmentbeschreibung 44 aus einer Kombination einer Signatur 45, die die Bytes im Segment eindeutig kennzeichnet, wie aus einem Check auf zyklische Redundanz (CRC), und einem verlustbehafteten Sample 46, das Bytes enthält, die entsprechend einem Samplingschema aus dem Segment abgesampelt wurden. Die Segmentbeschreibung 44 enthält auch einen Segmentindex 47, der kennzeichnet, wo das Segment in der Abfolge erscheint. Zum Beispiel hätte das Segment 21 in der 3 den Index "0", das Segment 22 den Index "1" und das Segment 23 den Index "2" usw. Die Idee besteht darin, dass Bytes aus einem Segment in einer Reihe von Inkrementen abgesampelt werden können, um so über einen Bereich von Auflösungen hinweg verlustbehaftete Repräsentationen der Segmente zu erzeugen. Es existieren mehrere Arten, gemäß denen dies erfolgen kann. Eine Art ist in der 6 der beigefügten Zeichnungen dargestellt. Wie es in der 6 dargestellt ist, erzeugt das SCAN-Programm 10 zunächst dadurch ein verlustbehaftetes Bild 52 aus einem Segment 50, dass es mit der vom Benutzer gewählten maximalen Auflösungsstufe absampelt. Zunehmend verlustbehaftete Bilder 54, 56 mit zunehmend geringeren Auflösungsstufen werden durch inkrementelles Entfernen abgesampelter Bytes aus der darüber liegenden Stufe konstruiert. Daher enthält die Segmentbeschreibung effektiv Bilder, die über einen ganzen Bereich von Auflösungen abgesampelt wurden, nämlich von verlustfrei bis zur am stärksten verlustbehafteten, niedrigsten Auflösungsstufe.
  • In der 6 ist das Segment 50 so dargestellt, dass es über eine Länge von 16 Bytes verfügt. Es sind auch drei Auflösungsstufen dargestellt. Dies dient nur zum Vereinfachen der Zeichnung. In der Praxis wäre eine Segmentlänge von 512 Bytes realistischer, und 16 Auflösungsstufen wären typischer. Die im Segment 50 enthaltenen Bytes bilden eine verlustfreie Repräsentation des Bildsegments. In der nächsten Stufe darunter wird ein verlustbehaftetes Sample 52 dadurch erzeugt, dass das verlustfreie Segment 50 mit der maximalen Samplingauflösung abgesampelt wird, in diesem Fall der Auflösung 3, die sechs aus den 16 Bytes des verlustfreien Segments entspricht. Dieses verlustbehaftete Segment 52 besteht aus einer Untergruppe von Bytes, wie sie im Segment 50 enthalten sind. Bytes aus dem am wenigsten verlustbehafteten Sample 52, d. h. dem mit der höchsten Auflösung, werden dazu verwendet, weitere verlustbehaftete Bilder 54, 56 mit niedrigeren Auflösungen zu erzeugen.
  • Der Zweck des Erzeugens eines Bereichs von Bildsamples mit verschiedenen Auflösungen besteht im Erzeugen einer Gruppe von Signaturen oder Samples des Segments, die dazu verwendet werden können, dasselbe zu repräsentieren. So ermöglicht es die Gruppe von Signaturen oder Samples, ein Segment über einen Bereich von Auflösungen hinweg zu beschreiben, nämlich von verlustfreier Wiedergabe des Bilds aus der Signatur bis herunter zu einer verlustbehafteten Wiedergabe des Bildsamples mit der niedrigsten Auflösung. Zunächst konstruiert das SCAN-Programm Segmentbeschreibungen, die Daten mit verlustbehafteten Bildern über den vollen Bereich möglicher Auflösungen hinweg enthalten. Offen gesagt würde jedoch das Aufrechterhalten aller Samples für jede Signatur einen großen Speicherumfang dadurch verbrauchen, dass ein Kontrollpunkt erzeugt würde, der größer als die Datei wäre, die er repräsentiert. Daher erzeugt das SCAN-Programm 10 auch eine Segmentbeschreibungsstruktur, in der Signaturdaten und verlustbehaftete Sampledaten aus den Segmentbeschreibungen der Basisdatei entfernt sind. D. h., dass es die Segmentbeschreibungsstrukturstruktur ermöglicht, soviel Daten wie möglich zu entfernen.
  • Nach der anfänglichen Konstruktion werden Segmentbeschreibungen in eine Segmentbeschreibungsstruktur platziert, die jede derselben unter Verwendung des Minimums an Auflösung eindeutig unterscheidet, um es dadurch zu ermöglichen, redundante Daten zu löschen. Die 7 der beigefügten Zeichnungen veranschaulicht, wie die Segmentbeschreibungsstruktur im Schritt 38 des SCAN-Programms 10 erzeugt wird. Als Erstes wird auf die 7(a) Bezug genommen, die einen binären Baum von Segmentbeschreibungen 21SD bis 26SD bei der niedrigsten Auflösungsstufe (Auflösung 1) zeigt. Der Baum wird so konstruiert, dass ausgehend vom Segment 21 (siehe die 3) das am stärksten verlustbehaftete Sample (z. B. das Sample 56 in der 6) als Segmentbeschreibung 21SD auf der niedrigsten Auflösungsstufe (Auflösung 1), wie durch die Ebene 60 in der 7(a) repräsentiert, eingegeben wird. Als Nächstes wird das am stärksten verlustbehaftete Sample des Segments 22 (siehe die 3) mit der Segmentbeschreibung 21SD verglichen. Jeder beliebige geeignete Vergleich, der "weniger als", "gleich groß wie" oder "größer als" liefert, kann verwendet werden. Demgemäß wäre ein einfacher Vergleich der durch die Daten repräsentierten Zahlenwerte ausreichend. Selbstverständlich können kompliziertere Vergleiche verwendet werden, falls dies erwünscht ist. In der 7(a) ist der Wert der Segmentbeschreibung 22SD kleiner als der der Segmentbeschreibung 21SD . Dies ist in der 7(a) dadurch repräsentiert, dass die Segmentbeschreibung 22SD links von der Segmentbeschreibung 21SD platziert ist. Der Wert von 23SD ist größer als der von 21SD , und daher ist er so repräsentiert, dass er rechts von 21SD platziert ist. Wenn der Baum in der 7(a) durchlaufen wird, ist der Wert von 24SD kleiner als der von 21SD und 22SD , und er ist im Baum links und unter 22SD platziert. Der Wert von 25SD ist größer als der von 21SD und 23SD , und er ist rechts unter 23SD platziert. Der Wert von 26SD ist kleiner als der von 21SD , jedoch größer als der von 22SD , und daher ist 26SD rechts unter 22SD platziert. Demgemäß sind die ersten sechs Segmente 21 bis 26 des Bilds durch einen Baum von Segmentbeschreibungen 21SD bis 26SD mit der niedrigsten Auflösungsstufe geeignet definiert.
  • Wenn jedoch das SCAN-Programm 10 die Segmentbeschreibung 27SD erreicht, ergibt es sich, dass diese gleich groß wie 25SD ist. So ist es nicht möglich, das Segment 27 auf der niedrigeren Auflösungsstufe auf charakteristische Weise zu definieren. Stattdessen wird daher das verlustbehaftete Sample auf der nächsthöheren Auflösungsstufe (Auflösung 2) dazu ausgewählt, das Segment 27 zu repräsentieren. Dies ist in der 7(b) dadurch dargestellt, dass die Segmentbeschreibung 27SD an einem Ort in der Ebene 61 platziert ist. In ähnlicher Weise gilt für das Segment 28, dass die Segmentbeschreibung 28SD größer als 21SD und 23SD ist sowie gleich groß wie 25SD und größer als 27SD ist. Daher ist die Beschreibung 28SD in der 7(b) dadurch repräsentiert, dass sie in der Ebene 61 unterhalb und rechts von 27SD platziert ist. Das Segment 29 wird durch das am stärksten verlustbehaftete Sample (mit der Auflösung 1) geeignet definiert. Die Segmentbeschreibung 29SD ist größer als 21SD und 23SD sowie kleiner als 25SD . Daher ist die Segmentbeschreibung 29SD in der 7(b) dadurch repräsentiert, dass sie in der Ebene 60 unter und links von 25SD platziert ist.
  • Das SCAN-Programm 10 fährt damit fort, Segmentbeschreibungen auf die oben beschriebene Weise zur Segmentbeschreibungsstruktur hinzuzufügen, bis Beschreibungen für alle Segmente im Bild in der Struktur platziert sind. Die 8 der beigefügten Zeichnungen ist ein Flussdiagramm, das detaillierter zeigt, wie der durch den Block 38 in der 4 repräsentierte und unter Bezugnahme auf die 7 beschriebene Prozess eine Segmentbeschreibung in die Segmentbeschreibungsstruktur eingibt. Die Auflösung kann von der niedrigsten verlustbehafteten Auflösung bis zur verlustfreien (auf der Signatur basierenden) Auflösung reichen. Als Erstes wird in einem Schritt 80 die aktuelle Auflösung auf die niedrigste verlustbehaftete Stufe gesetzt, und in einem Schritt 82 wird der aktuelle Baum als Baum mit einzelner Wurzel eingestellt, der gemäß dieser Auflösung sortiert ist (wobei er beim Einsetzen der ersten Segmentbeschreibung leer ist). Als Nächstes wird, in einem Schritt 84, eine Bildbeschreibung des Segments von Bytes beim aktuellen Arbeitsversatz bei der aktuellen Auflösungsstufe kompiliert. Der Arbeitsversatz WO ist einfach der Segmentindex, der kennzeichnet, wo das Segment in der Segmentabfolge auftritt. In einem Schritt 86 wird versucht, eine Übereinstimmung mit einer Segmentbeschreibung im aktuellen Baum aufzufinden. Wenn sich keine Übereinstimmung herausstellt – wie es durch eine Entscheidung 88 repräsentiert ist –, und wenn daher ein eindeutiger Platz im Baum verfügbar ist, erfolgt in einer Entscheidung 90 eine Überprüfung dahingehend, ob die aktuelle Auflösung verlustfrei ist. Wenn die aktuelle Auflösung verlustfrei ist, wird in einem Schritt 92 eine neue Segmentbeschreibung unter Verwendung der Signatur des aktuellen Segments erzeugt, die in den Baum eingegeben wird, und der Prozess kehrt zurück.
  • Wenn andererseits die aktuelle Auflösung verlustbehaftet ist, wird in einem Schritt 94 als Erstes die Signatur des aktuellen Segments berechnet. Dann werden, zusätzlich zur verlustbehafteten Bildbeschreibung, die für die aktuelle Auflösung bereits im Schritt 84 berechnet wurde, verlustbehaftete Bildbeschreibungen für alle verlustbehafteten Auflösungen über der aktuellen Auflösung kompiliert. Die kombinierten verlustbehafteten Bildbeschreibungen und die Signatur werden dann zusammengefasst dazu verwendet, eine neue Segmentbeschreibung zu erzeugen, die in einem Schritt 96 ordnungsgemäß in den aktuellen Baum eingetragen wird, und der Prozess kehrt zurück.
  • Wenn bei der Entscheidung 88 im aktuellen Baum eine Übereinstimmung aufgefunden wurde, erfolgt bei einer Entscheidung 98 eine Prüfung dahingehend, ob die aktuelle Auflösung verlustbehaftet ist. Wenn die aktuelle Auflösung verlustbehaftet ist, ist bereits eine Segmentbeschreibung vorhanden, die das Bytemuster des aktuellen Segments beschreibt (wenn auch in einem anderen Segment), und der Prozess kehrt einfach zurück. Wenn alternativ die aktuelle Auflösung verlustbehaftet ist, existiert mehr Auflösung, um einen Unterschied zu klären, und in einer Entscheidung 100 erfolgt eine Prüfung dahingehend, ob auf einer höheren Auflösungsstufe bereits eine übereinstimmende Segmentbeschreibung existiert.
  • Wenn dies der Fall ist, wird der aktuelle Baum in einem Schritt 104 auf den Baum auf höherer Stufe gesetzt, für den den Übereinstimmende Segmentbeschreibung die Wurzel ist, und in einem Schritt 106 wird die aktuelle Auflösungsstufe inkrementiert. Dann kehrt das Verfahren zum Schritt 84 zurück, um eine Bildbeschreibung mit der aktuellen Auflösung zu kombinieren. Alternativ wird, wenn in einem Schritt 102 die Bildbeschreibung, die innerhalb der übereinstimmenden Segmentbeschreibung enthalten ist, die mit einer Auflösung über der aktuellen kompiliert wurde, erfasst und dazu verwendet, die Wurzel eines Baums zu bilden, der hinsichtlich dieser Auflösung sortiert ist. Dann fährt der Prozess mit dem bereits beschriebenen Schritt 104 fort.
  • Die 9 der beigefügten Zeichnungen zeigt ein Beispiel einer Segmentbeschreibungsstruktur mit einer mehrdimensionalen Hierarchie binärer Bäume von Segmentbeschreibungen, die gemäß aufeinanderfolgenden Auflösungsstufen 60, 62, 64, 66 geordnet und gemäß diesen sukzessive sortiert sind. Bei diesem Beispiel haben alle Hierarchien dieselbe Wurzel 68 gemeinsam, bei der es sich um die Wurzel des einzelnen Baums handelt, der gemäß den Bytes sortiert ist, die dazu verwendet werden, ein Bild auf der niedrigsten Auflösungsstufe 60 zu konstruieren. Bäume, die sich ausgehend vom Baum mit der einzelnen Wurzel, der gemäß der niedrigsten Auflösung 60 sortiert wurde, bis zu Bäumen erstrecken, die gemäß der Signatur 66 sortiert wurden, enthalten nie Segmentbeschreibungen mit übereinstimmenden Werten. Stattdessen wird, wenn eine Segmentbeschreibung in den Baum niedrigster Auflösung ein gegeben wird und bereits eine übereinstimmende Beschreibung vorhanden ist, dieselbe dazu verwendet, die Wurzel eines Baums auf der nächsten Auflösungsstufe zu repräsentieren, und so wird die neue Segmentbeschreibung in diesen Baum eingegeben. Dadurch können Segmentbeschreibungen gleichzeitig in aufeinanderfolgenden Auflösungsstufen vorhanden sein, wie es durch Knoten SDx1 und SDx2 dargestellt ist. Dieser Prozess dauert rekursiv an, bis entweder eine einzigartige Stelle innerhalb eines Baums aufgefunden wird oder eine übereinstimmende Beschreibung in einem Baum aufgefunden wird, der gemäß der verlustfreien Auflösungsstufe 66 sortiert ist. Dies zeigt an, dass das Bytemuster des aktuellen Segments bereits aufgezeichnet wurde, und die Segmentbeschreibung wird einfach verworfen.
  • Ein Merkmal der Segmentbeschreibungsstrukturen besteht darin, dass für jede Segmentbeschreibung, die in einem gemäß einer Auflösung n sortierten Baum platziert wird, die Bytes, die ihre verlustbehafteten Bilder bei den Auflösungen 1 bis (n – 1) zusammensetzen, durch die Wurzelbeschreibungen von Bäumen beschrieben sind, die in der zugehörigen Baumhierarchie höher sind. Dies ermöglicht es, implementierenden Personen beim Konstruieren einer Struktur und anschließend, nachdem sie fertiggestellt wurde, beim Abspeichern oder Verdichten derselben Wirtschaftlichkeit für den Speicherraum zu erzielen.
  • Aus der vorstehenden Beschreibung ist es ersichtlich, dass es während der Konstruktion der Segmentbeschreibungsstruktur erforderlich sein kann, eine Segmentbeschreibung zur Wurzel eines Baums mit höherer Auflösung zu machen, wenn eine andere Beschreibung eingesetzt wird. Da dies wiederholt auftreten kann, bis ein hinsichtlich der Signatur sortierter Baum erzielt ist, müssen die zum Repräsentieren höherer Auflösungen erforderlichen Bytes durch jede Beschreibung aufrecht erhalten werden, bis die Struktur fertiggestellt ist. Jedoch gilt für Bytes, die Bildauflösungen unter derjenigen des Baums, in dem die Beschreibung anfänglich platziert wurde, repräsentieren, keine derartigen Einschränkungen, da sie durch Wurzelbeschreibungen von Bäumen, die in der Hierarchie höher stehen, impliziert sind. Demgemäß können diese Bytes während des Aufbaus aus Beschreibungen weggelassen werden, um eine deutliche Wirtschaftlichkeit des Raums zu erzielen. Jedoch kann eine viel größere und deutlichere Wirtschaftlichkeit erzielt werden, wenn einmal die Konstruktion einer Segmentbeschreibungsstruktur abgeschlossen ist. An diesem Punkt hat das Einsetzen in die Struktur aufgehört, und Segmentbeschreibungen müssen nicht mehr die Bytes enthalten, die dazu erforderlich waren, sie zur Wurzel eines neuen Baums mit höherer Auflösung zu machen. Daher kann eine neue Repräsentation der Struktur erzeugt werden, in der Beschreibungen nur das Inkrement von Bytes enthalten, die die Auflösungen der verschiedenen Bäume unterscheiden, in denen sie vorhanden sind. Da jedoch der große Hauptteil von Beschreibungen nur in einem Baum erscheint, selbst bei ungünstigen Dateien, ist der gesamte Raum, der zum Repräsentieren einer fertiggestellten Segmentbeschreibungsstruktur erforderlich ist, im Allgemeinen nicht viel größer, als er dann benötigt würde, wenn nur eine einzelne Samplingauflösung verwendet worden wäre.
  • Die Erfindung ist nicht auf die oben genannten Maßnahmen für eine hierarchische Repräsentation von Segmentdaten und auch nicht auf die oben genannten Datensamplingschemas und das oben genannte Verfahren zum Konstruieren verlustbehafteter Bilder beschränkt. Zum Beispiel ist es denkbar, dass die Bäume innerhalb der oben genannten Segmentbeschreibungsstruktur durch ein Hash-Schema ersetzt werden können. In ähnlicher Weise sind nicht nur viele Schemas zum Absampeln von Bildbytes möglich, sondern es könnte ein Bereich verlustbehafteter Bilder definiert werden, die aus einer mathematischen Repräsentation abgesampelter Bytes definiert werden, im Gegensatz zu ihrer einfachen Zusammenfassung. Was die effiziente Repräsentation einer Datei ermöglicht, ist die Nutzung einer hierarchischen Speicherung verlustbehafteter Repräsentationen von Basisdateisegmenten, die dazu hergeleitet wurden, variierende Informationsumfänge bis zu einer gewissen Maximalstufe zu enthalten.
  • Wenn einmal das SCAN-Programm 10 die Segmentbeschreibungsstruktur fertiggestellt hat und zurückgekehrt ist, kann entweder das SICHERUNG-Programm 12 oder das VERDICHTUNG-Programm 18 abgearbeitet werden. Das VERDICHTUNG-Programm 18 verringert einfach den Umfang an Speicher auf der Platine, den die Segmentbeschreibungsstruktur verbraucht, was durch Entfernen der oben genannten redundanten Daten aus ihr erfolgt. Das SICHERUNG-Programm 12 schreibt andererseits eine verdichtete Version der Segmentbeschreibungsstruktur in einen nichtflüchtigen Speicherplatz, wie eine Festplatte, um einen Kontrollpunkt für die gelieferte Basisdatei zu erzeugen.
  • Es wird nun auf die Tabelle in der 10 der beigefügten Zeichnungen Bezug genommen, um die vier Typen von in einem Kontrollpunkt gespeicherten Segmentbeschreibungen (SDs) zu beschreiben, wie sie vom SICHERUNG-Programm 12 verwendet werden. Die Figuren in den Spalten zu verlustbehafteten Bildbytes und Signaturbytes werden vom in der 4 dargestellten SCAN-Programm 10 bzw. unter Verwendung von 32-Bit-CRC-Signaturen hergeleitet. Kno tentypen L, H und S können direkt auf Segmentbeschreibungen SDs abgebildet werden, wie sie in der Segmentbeschreibungsstruktur existieren. Der letzte Knotentyp, X, ermöglicht es, Segmentbeschreibungsstrukturen als sequenzielle Listen von SD-Knoten zu beschreiben, so dass sie unter Verwendung einer makroähnlichen Expansion rekonstruiert werden können, wie dies nachfolgend unter Bezugnahme auf die 11 beschrieben wird.
  • Da die oben genannte sequenzielle Liste von SD-Knoten aus Knotentypen besteht, die von null bis sechs Speicherbytes benötigen, können die einzelnen Knoten später nicht dadurch entnommen werden, dass gleiche aufeinanderfolgende Datenblöcke gelesen werden. Daher wird auch, um ihr späteres Decodieren zu ermöglichen, ein Array ihrer Codes im Binärtyp geschrieben. Da zwei Bits dazu erforderlich sind, jeden Codetyp zu spezifizieren, entspricht die Größe des Arrays der Anzahl sequenzieller Segmente zuzüglich der Anzahl der Bäume in der Segmentbeschreibungsstruktur, geteilt durch vier, aufgerundet, was eine relativ kleine Größe darstellt.
  • Die 11 der beigefügten Zeichnungen veranschaulicht, wie eine sequenzielle Liste 100 von Segmentbeschreibungs(SD)knoten durch das SICHERUNG-Programm 12 aus den binären Bäumen in mehreren Auflösungsstufen 110, 112, 114 und 116, wie durch das SCAN-Programm 10 erzeugt, erstellt werden. Aus der 11 ist es erkennbar, dass die Existenz von Knoten des Typs H in gemäß der Signatur sortierten Bäumen aus dem Arraykontext hergeleitet werden kann, was es ermöglicht, sie aus dem Array wegzulassen. Diese Knoten H sind auch außergewöhnlich, da sie, weil sie kein Inkrement zwischen verlustbehafteten Auflösungen beschreiben, keine Speicherung in der Liste von SD-Knoten benötigen. Auch muss, da die Reihenfolge der SD-Knoten keine Beziehung zum Sequenzindex des entsprechenden sequenziellen Segments hat, ein Array geschrieben werden, das die Sequenzindizes für die Knoten der Typen L und S liefert.
  • Die Berechnung dazu, wie die Basisdatei in die aktualisierte Datei zu wandeln ist, wird vom ÜBEREINSTIMMUNG-Programm 16 ausgeführt. Das ÜBEREINSTIMMUNG-Programm 16 benötigt sowohl die aktualisierte Datei als auch die geladene Segmentbeschreibungsstruktur der entsprechenden Basisdatei als Parameter. Wenn die Segmentbeschreibungsstruktur nicht bereits im Speicher vorhanden ist, kann das LADEN-Programm 14 aufgerufen werden, um es in den Kontrollpunkt der entsprechenden Basisdatei zu laden. Dann erzeugt das ÜBEREINSTIMMUNG-Programm 16 eine Umwandlungsliste, die die aktualisierte Datei als Liste neuer Bytes und sequenzieller Segmente aus der Ba sisdatei (identifiziert durch ihre Indexzahlen) beschreibt. Die durch das ÜBEREINSTIMMUNG-Programm 16 ausgeführten Operationen sind in der 12 der beigefügten Zeichnungen veranschaulicht. Wie es dort dargestellt ist, startet das ÜBEREINSTIMMUNG-Programm 16 in einem Schritt 120 dadurch, dass es seinen Arbeitsversatz in der aktualisierten Datei auf Null (das erste Byte) setzt. Dann gehört zum ÜBEREINSTIMMUNG-Programm 16 eine inkrementelle Bewegung durch die gelieferte aktualisierte Datei. In einem Schritt 122 durchscannt das ÜBEREINSTIMMUNG-Programm 16 die Segmentbeschreibungsstruktur bei jedem Versatz nach einem Segment mit einer Bildbeschreibung, die zum folgenden Segment von Bytes in der aktualisierten Datei passt. Wenn keine Übereinstimmung existiert, bestimmt eine Entscheidung 124, dass ein für die gelieferte Datei einzigartiges Byte aufgefunden wurde. Dann geht das Verfahren zu einem Schritt 126 weiter, in dem das Byte beim aktuellen Arbeitsversatz an die Umwandlungsliste angehängt wird. Dann wird der Arbeitsversatz in einem Schritt 128 um Eins inkrementiert. Wenn alternativ in der Entscheidung 124 eine Übereinstimmung ermittelt wird, wurde in der aktualisierten Datei ein Segment aufgefunden, das in der Basisdatei existiert. Dann wird die Segmentkennung in einem Schritt 130 an die Umwandlungsliste angehängt, und der Arbeitsversatz wird in einem Schritt 132 um die Standardsegmentlänge inkrementiert. Dieser Prozess dauert an, bis in einer Entscheidung 124 ermittelt wird, dass sich der Arbeitsversatz über das Ende der Datei hinaus erstreckt. An dieser Stelle ist eine Beschreibung der aktualisierten Datei in Form einzigartiger Bytes und Segmente aus der Basisdatei erzeugt.
  • Die Prozedur, gemäß der das ÜBEREINSTIMMUNG-Programm 16 im Schritt 122 ermittelt, ob eine Segmentbeschreibungsstruktur eine übereinstimmende Beschreibung eines Segments enthält, ist in der 13 der beigefügten Zeichnungen veranschaulicht. Die Auflösung kann von der niedrigsten verlustbehafteten Auflösung bis zur verlustfreien Auflösung (auf Signaturbasis) reichen. Durch die Prozedur 122 wird als Erstes die aktuelle Auflösung in einem Schritt 140 auf die niedrigste verlustbehaftete Stufe eingestellt, und dann wird in einem Schritt 142 der Baum mit einzelner Wurzel ausgewählt, gemäß dem sortiert wird. Als Nächstes wird in einem Schritt 144 eine Beschreibung des Bilds des aktuellen Segments bei der aktuellen Auflösung (die entweder verlustbehaftet oder verlustfrei sein kann) hergeleitet. In einem Schritt 146 wird versucht, im aktuellen Baum eine Segmentbeschreibung aufzufinden, die eine übereinstimmende Bildbeschreibung enthält.
  • Wenn mit der Entscheidung 148 keine Übereinstimmung aufgefunden werden kann, kann die Segmentbeschreibungsstruktur keine übereinstimmende Bildbeschreibung enthalten. So liefert die Prozedur in einem Schritt 150 zurück, dass keine Übereinstimmung aufgefunden wurde. Wenn alternativ eine Übereinstimmung existiert, erfolgt in einer Entscheidung 152 eine Prüfung dahingehend, ob die aktuelle Auflösung (R) verlustfrei ist. Wenn die aktuelle Auflösung verlustfrei ist, stimmt die Signatur des Segments mit der in der Segmentbeschreibung enthaltenen Signatur überein, und in einem Schritt 154 wird eine SD-Übereinstimmung eingetragen und eine Übereinstimmung rückgeliefert.
  • Wenn andererseits in der Entscheidung 152 ermittelt wird, dass die aktuelle Auflösung verlustbehaftet ist, erfolgt in einer Entscheidung 156 eine Prüfung dahingehend, ob die übereinstimmende Segmentbeschreibung auch die Wurzel des Baums ist, der gemäß einer höheren Auflösung sortiert ist. Wenn dies der Fall ist, wird der höhere Baum in einem Schritt 162 eingegeben, die aktuelle Auflösung wird in einem Schritt 164 auf eine Stufe höher eingestellt, und die Prozedur kehrt zum Schritt 144 zurück, um eine neue Beschreibung des Bilds des Segments mit der neuen Auflösung herzuleiten.
  • Wenn in der Entscheidung 156 ermittelt wird, dass kein Baum höherer Auflösung verfügbar ist, ist es nicht mehr möglich, die Berechnung einer Signatur für das Segment hinauszuschieben. Daher wird die Signatur der Bytes des Segments berechnet und in einem Schritt 158 mit der in der Segmentbeschreibung enthaltenen Signatur verglichen. Wenn sich in einer Entscheidung 160 herausstellt, dass die Signaturen gleich sind, liefert das Verfahren die Segmentbeschreibung im Schritt 154 als Übereinstimmung zurück. Wenn die Signaturen nicht gleich sind, liefert das Verfahren im Schritt 150 zurück, dass keine Übereinstimmung aufgefunden wurde.
  • Der Fachmann erkennt aus der vorstehenden Beschreibung des SCAN-Programms 10, dass dann, wenn Segmentbeschreibungsstrukturen unter Verwendung einer großen Samplingauflösung konstruiert werden, hinsichtlich des verbrauchten Raums ein relativ kleiner Zusatzaufwand zu bewerkstelligen ist. Es gilt auch, dass dann, wenn ein für ein Segment abgesampeltes Bild wiederkehrt, höchste Wahrscheinlichkeit dafür besteht, dass das Segment schließlich durch irgendein Bild höherer Auflösung beschrieben wird. So erhöht das SCAN-Programm 10 einerseits stark die Gesamtsamplingauflösung relativ zur Größe des Kontrollpunkts, während es andererseits das Sampling höherer Auflösung auf die Beschreibung von Segmenten konzentriert, deren Bilder mit niedrigerer Auflösung am häufigsten auftreten.
  • Demgemäß sind die Funktionseigenschaften des Programms ÜBEREINSTIMMUNG verbessert. Die erhöhte Gesamtsamplingauflösung verbessert die Gesamtfunktion desselben, und die adaptive Auflösungskonzentration verringert den Funktionsbeeinträchtigungseffekt wiederkehrender Muster innerhalb der repräsentierten Basisdatei. Diese Vorteile ergeben sich durch die neuartige hierarchische Repräsentation von Daten, wie sie aus Segmenten über einen Bereich von Auflösungen abgesampelt werden, wie es z. B. in den 7 und 9 der beigefügten Zeichnungen dargestellt ist und unter Bezugnahme auf diese beschrieben wurde.
  • Die oben beschriebenen Programme sind schneller als die bisher bekannten, da im Mittel weniger Signaturberechnungen erfolgen, wenn ermittelt wird, ob aktualisierte Dateisegmente mit im Kontrollpunkt beschriebenen Basisdateisegmenten übereinstimmen. Dies teilweise deswegen, weil dann, wenn eine gewisse beliebige Kontrollpunktgröße vorgegeben ist, relativ stärker verlustbehaftete Beschreibungsbytes für jedes Basisdateisegment gespeichert werden können und diese später dazu verwendet werden können, aktualisierte Dateisegmente als mögliche Übereinstimmungen zu disqualifizieren, ohne dass man sich auf eine Signaturberechnung zu stützen hätte. Die oben beschriebene hierarchische Speicherung von Segmentbeschreibungen ermöglicht es, mehr verlustbehaftete Bytes zu speichern. Daher ist es möglich, dass irgendein anderer Typ einer Suchstruktur die binären Bäume in den Datenstrukturhierarchien ersetzt. In einem derartigen Fall würden sich die oben genannten Algorithmen nicht ändern, jedoch wären die Bezugnahmen auf Bäume durch die neue Struktur ersetzt.
  • Nachdem die Erfindung auf diese Weise unter Bezugnahme auf eine bevorzugte Ausführungsform beschrieben wurde, ist es deutlich zu beachten, dass die fragliche Ausführungsform nur beispielhaft ist und dass Modifizierungen und Variationen, wie sie der Fachmann erkennt, ohne Abweichung vom Schutzumfang der in den beigefügten Ansprüchen dargelegten Erfindung vorgenommen werden können.

Claims (17)

  1. Verfahren (10) zum Erzeugen eines eine Basisdatei beschreibenden Kontrollpunktes, wobei: die Basisdatei in eine Reihe von Segmenten (2129) aufgeteilt wird; für jedes Segment eine Segmentbeschreibung (44) erzeugt wird (36), wobei jede Segmentbeschreibung (44) eine verlustfreie Signatur (45) und mehrere verlustbehaftete Samples (46, 5256) aufweist, die das Segment (2129) jeweils auf verschiedenen Auflösungsstufen beschreiben; und aus den erzeugten Segmentbeschreibungen (44) eine Segmentbeschreibungsstruktur als Kontrollpunkt erstellt wird (38 und 8); wobei die Segmentbeschreibungsstruktur erstellt wird, indem für jedes Segment (2129) aus den verlustbehafteten Samples (46, 5256) und der verlustfreien Signatur (45) eine Beschreibung ausgewählt wird, die das Segment (2129) auf der niedrigsten Auflösungsstufe adäquat kennzeichnet.
  2. Verfahren nach Anspruch 1, wobei alle Segmente (2129) die gleiche vorbestimmte Länge haben.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei die verlustbehafteten Samples (46, 5256) jeweils ein erstes verlustbehaftetes Sample (52) mit Daten, die aus dem Segment (50) auf einer ersten Auflösungsstufe ausgewählt wurden, und ein zweites verlustbehaftetes Sample (54) mit Daten, die aus dem Segment (50) auf einer zweiten, niedrigeren Auflösungsstufe ausgewählt wurden, aufweisen und wobei die Daten, die für das zweite verlustbehaftete Sample (54) ausgewählt wurden, eine Teilmenge der Daten bilden, die für das erste verlustbehaftete Sample (52) ausgewählt wurden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei jede Segmentbeschreibung (44) einen Segmentindex (47) aufweist, der die Position des Segments (2129) in der Reihe angibt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Beschreibung für jedes Segment (2129) ausgewählt wird, indem, beginnend mit den verlustbehafteten Samples (46, 5256) auf der niedrigeren Auflösungsstufe, die verlustbehafteten Samples (46, 5256) und die Signatur (45) jeweils mit den entsprechenden verlustbehafteten Samples (46, 5256) und Signaturen (45) anderer Segmente (2129), die früher in der Reihe der Segmente auftreten, verglichen werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Segmentbeschreibungsstruktur Binärbaumstrukturen enthält, die erzeugt werden, indem eine Kenngröße einer Segmentbeschreibung (44) eines Segments (2129) mit der Kenngröße einer Segmentbeschreibung (44) eines anderen, vorher eingegebenen Segments (2129) verglichen wird und bestimmt wird, ob die Kenngröße größer, kleiner oder gleich der Kenngröße des anderen Segments (2129) ist.
  7. Verfahren nach Anspruch 6, wobei die Segmentbeschreibung (44) des einen Segments (2129) in einen Binärbaum auf der gleichen Auflösungsstufe wie der des anderen Segments (2129) eingegeben wird, wenn die Kenngröße des einen Segments (2129) kleiner oder größer ist als die Kenngröße des anderen Segments (2129), und die Segmentbeschreibung (44) des einen Segments (2129) in einen Binärbaum auf einer gegenüber der Segmentbeschreibung (44) des anderen Segments (2129) höheren Auflösungsstufe eingegeben wird, wenn die Kenngröße des einen Segments (2129) gleich der Kenngröße des anderen Segments (2129) ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Segmentbeschreibungsstruktur durch Eingeben der verlustfreien Signatur (45) eines Segments (2129) nur dann erzeugt wird, wenn keines der verlustbehafteten Samples (46, 5256) das Segment adäquat kennzeichnet.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei nach Eingabe einer Segmentbeschreibung (44) in die Segmentbeschreibungsstruktur redundante Daten aus der Segmentbeschreibung (44) entfernt werden, um die Datenmenge in der Segmentbeschreibungsstruktur zu verringern.
  10. Verfahren nach Anspruch 9, wobei die redundanten Daten verlustbehaftete Samples (46, 5256) auf einer höheren Auflösungsstufe als der, auf der die Segmentbeschreibung (44) in den Binärbaum eingegeben wurde, enthalten.
  11. Verfahren nach Anspruch 9, wobei die redundanten Daten Informationen enthalten, die aus solchen verlustbehafteten Samples (46, 5256) ableitbar sind, die in Binärbäume eingegeben wurden, deren Auflösungsstufen niedriger sind als die, auf der die Segmentbeschreibung (44) in einen Binärbaum eingegeben wurde.
  12. Verfahren zum Erstellen einer Umwandlungsliste, die eine aktualisierte Version der Basisdatei mit Verweis auf die Basisdatei und einen Kontrollpunkt für die Basisdatei definiert, wobei: ein Kontrollpunkt nach dem Verfahren eines der vorhergehenden Ansprüche erzeugt wird; an einer Anfangsposition in der aktualisierten Datei ein erstes Segment definiert wird (120); für das erste Segment eine Segmentbeschreibung (44) erzeugt wird (144); die Segmentbeschreibung (44) für das erste Segment mit den Segmentbeschreibungen (44) des Kontrollpunkts verglichen wird (122, 140164); und bei Übereinstimmung (124) die übereinstimmende Segmentbeschreibung (44) zu der Umwandlungsliste hinzugefügt wird (130) und bei Nichtübereinstimmung (124) die Daten des ersten Segments zu der Umwandlungsliste hinzugefügt werden (126).
  13. Verfahren nach Anspruch 12, wobei ein zweites Segment bei Übereinstimmung an einer dem ersten Segment benachbarten Position (132) und bei Nichtübereinstimmung an einer Position (128), die die der Umwandlungsliste hinzugefügten Daten überlappt aber nicht enthält, definiert wird (128, 132).
  14. Verfahren nach Anspruch 12 oder 13, wobei die Daten in dem zur Umwandlungsliste hinzugefügten ersten Segment ein erstes Byte in dem Segment enthalten.
  15. Verfahren nach einem der Ansprüche 12 bis 14, wobei die Segmentbeschreibung (44) für das erste Segment mit den Segmentbeschreibungen (44) des Kontrollpunktes verglichen werden, indem, beginnend (140144) mit den verlustbehafteten Samples (46) auf der niedrigeren Auflösungsstufe (56), die Samples des ersten Segments mit den Samples im Kontrollpunkt verglichen werden.
  16. Verfahren nach Anspruch 15, wobei bei Übereinstimmung Samples auf steigenden (152, 156, 162, 164, 144) Auflösungsstufen verglichen werden (146), um übereinstimmende Samples zu identifizieren, bis keine weitere Übereinstimmung mehr gefunden wird (150), und dann die übereinstimmenden Samples mit der verlustfreien Signatur verglichen werden (158).
  17. Verfahren (1018) zum Erzeugen einer Differenzdatei, die Unterschiede zwischen einer aktualisierten Datei und einer Basisdatei definiert, wobei: ein Kontrollpunkt nach dem Verfahren zum Erzeugen eines Kontrollpunktes gemäß einem der Ansprüche 1 bis 11 erzeugt wird (10); Segmentbeschreibungen (44) für Segmente in der aktualisierten Datei auf verschiedenen Auflösungsstufen erzeugt (120, 122) und mit Segmentbeschreibungen im Kontrollpunkt verglichen werden, um übereinstimmende und nicht-übereinstimmende Segmente zu identifizieren; und Daten, die mit Segmenten in der Basisdatei übereinstimmende Segmente in der aktualisierten Datei identifizieren, sowie Daten, die Teile der aktualisierten Datei wiedergeben, auf niedrigstmöglicher, zur unterscheidbaren Wiedergabe des Teils ausreichender Auflösungsstufe als Differenzdatei abgespeichert (126, 130) werden.
DE69913618T 1998-08-17 1999-08-13 Verfahren zur Erzeugung eines Prüfpunktes, welcher eine Basisdatei beschreibt, und Verfahren zur Erzeugung einer Differenzdatei zwischen einer aktualisierten Datei und einer Basisdatei Expired - Fee Related DE69913618T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9817922A GB2341249A (en) 1998-08-17 1998-08-17 A method of generating a difference file defining differences between an updated file and a base file
GB9817922 1998-08-17

Publications (2)

Publication Number Publication Date
DE69913618D1 DE69913618D1 (de) 2004-01-29
DE69913618T2 true DE69913618T2 (de) 2004-09-30

Family

ID=10837401

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69913618T Expired - Fee Related DE69913618T2 (de) 1998-08-17 1999-08-13 Verfahren zur Erzeugung eines Prüfpunktes, welcher eine Basisdatei beschreibt, und Verfahren zur Erzeugung einer Differenzdatei zwischen einer aktualisierten Datei und einer Basisdatei

Country Status (5)

Country Link
US (1) US6513050B1 (de)
EP (1) EP0981090B1 (de)
AT (1) ATE256887T1 (de)
DE (1) DE69913618T2 (de)
GB (1) GB2341249A (de)

Families Citing this family (491)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543018B2 (en) * 1996-04-11 2009-06-02 Aol Llc, A Delaware Limited Liability Company Caching signatures
US7581077B2 (en) 1997-10-30 2009-08-25 Commvault Systems, Inc. Method and system for transferring data in a storage operation
US7209972B1 (en) 1997-10-30 2007-04-24 Commvault Systems, Inc. High speed data transfer mechanism
US6418478B1 (en) 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
JPH11282753A (ja) * 1998-03-06 1999-10-15 Internatl Business Mach Corp <Ibm> オブジェクトへのアクセス方法及び装置、オブジェクトへのアクセスを制御するプログラムを格納した記憶媒体
US7739381B2 (en) 1998-03-11 2010-06-15 Commvault Systems, Inc. System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services
US7277941B2 (en) 1998-03-11 2007-10-02 Commvault Systems, Inc. System and method for providing encryption in a storage network by storing a secured encryption key with encrypted archive data in an archive storage device
GB2356780B (en) * 1999-01-28 2001-08-29 Nec Corp Communication apparatus having a browser, web server, communication system and communication method thereof
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US7035880B1 (en) 1999-07-14 2006-04-25 Commvault Systems, Inc. Modular backup and retrieval system used in conjunction with a storage area network
US7389311B1 (en) 1999-07-15 2008-06-17 Commvault Systems, Inc. Modular backup and retrieval system
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US7003641B2 (en) 2000-01-31 2006-02-21 Commvault Systems, Inc. Logical view with granular access to exchange data managed by a modular data and storage management system
US6658436B2 (en) 2000-01-31 2003-12-02 Commvault Systems, Inc. Logical view and access to data managed by a modular data and storage management system
US7155481B2 (en) 2000-01-31 2006-12-26 Commvault Systems, Inc. Email attachment management in a computer system
US7434219B2 (en) 2000-01-31 2008-10-07 Commvault Systems, Inc. Storage of application specific profiles correlating to document versions
US6718446B1 (en) * 2000-02-11 2004-04-06 Iomega Corporation Storage media with benchmark representative of data originally stored thereon
KR20020097192A (ko) 2000-03-01 2002-12-31 컴퓨터 어소시에이츠 싱크, 인코포레이티드 컴퓨터 파일의 아카이브 갱신 방법 및 시스템
AU2001272970A1 (en) * 2000-06-22 2002-01-02 Synchrologic, Inc. A system and method for file transmission using file differentiation
US6952708B2 (en) * 2001-06-27 2005-10-04 Microsoft Corporation Method and system for using a sync key
DE60232165D1 (de) 2001-09-28 2009-06-10 Commvault Systems Inc System und verfahren zur erzeugung und verwaltung von schnellwiederherstellungsvolumen
JP2005505039A (ja) 2001-09-28 2005-02-17 コムヴォールト・システムズ・インコーポレーテッド 情報記憶装置にオブジェクトをアーカイブする装置及び方法
EP1466246B1 (de) * 2001-11-23 2011-03-02 Commvault Systems, Inc. Selektives datenvervielfachungssystem und -verfahren
US7584227B2 (en) 2005-12-19 2009-09-01 Commvault Systems, Inc. System and method for containerized data storage and tracking
US7603518B2 (en) 2005-12-19 2009-10-13 Commvault Systems, Inc. System and method for improved media identification in a storage device
US8346733B2 (en) 2006-12-22 2013-01-01 Commvault Systems, Inc. Systems and methods of media management, such as management of media to and from a media storage library
US7496841B2 (en) * 2001-12-17 2009-02-24 Workshare Technology, Ltd. Method and system for document collaboration
AU2003241505A1 (en) * 2002-05-17 2003-12-12 Synchrologic A system and method for parsing itinerary data
TW580812B (en) * 2002-06-24 2004-03-21 Culture Com Technology Macao L File-downloading system and method
GB2410106B (en) 2002-09-09 2006-09-13 Commvault Systems Inc Dynamic storage device pooling in a computer system
US7162496B2 (en) 2002-09-16 2007-01-09 Commvault Systems, Inc. System and method for blind media support
US8370542B2 (en) 2002-09-16 2013-02-05 Commvault Systems, Inc. Combined stream auxiliary copy system and method
WO2004034197A2 (en) 2002-10-07 2004-04-22 Commvault Systems, Inc. System and method for managing stored data
US7222331B2 (en) * 2003-01-16 2007-05-22 Sun Microsystems, Inc. Linking of virtual methods
US20040143739A1 (en) * 2003-01-16 2004-07-22 Sun Mircosystems, Inc., A Delaware Corporation Run time code integrity checks
US8121955B2 (en) * 2003-01-16 2012-02-21 Oracle America, Inc. Signing program data payload sequence in program loading
US7272830B2 (en) 2003-01-16 2007-09-18 Sun Microsystems, Inc. Ordering program data for loading on a device
US7281244B2 (en) * 2003-01-16 2007-10-09 Sun Microsystems, Inc. Using a digital fingerprint to commit loaded data in a device
US7484095B2 (en) * 2003-01-16 2009-01-27 Sun Microsystems, Inc. System for communicating program data between a first device and a second device
US7320009B1 (en) * 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
WO2004090675A2 (en) 2003-04-03 2004-10-21 Commvault Systems, Inc. System and method for performing storage operations through a firewall
WO2004090789A2 (en) 2003-04-03 2004-10-21 Commvault Systems, Inc. System and method for extended media retention
US7174433B2 (en) 2003-04-03 2007-02-06 Commvault Systems, Inc. System and method for dynamically sharing media in a computer network
US7454569B2 (en) 2003-06-25 2008-11-18 Commvault Systems, Inc. Hierarchical system and method for performing storage operations in a computer network
US20050028146A1 (en) * 2003-08-01 2005-02-03 Quick Shawn G. Systems and methods for software and firmware testing using checkpoint signatures
US7613748B2 (en) 2003-11-13 2009-11-03 Commvault Systems, Inc. Stored data reverification management system and method
US7440982B2 (en) 2003-11-13 2008-10-21 Commvault Systems, Inc. System and method for stored data archive verification
CA2546304A1 (en) 2003-11-13 2005-05-26 Commvault Systems, Inc. System and method for performing an image level snapshot and for restoring partial volume data
CA2544064C (en) 2003-11-13 2012-02-07 Commvault Systems, Inc. System and method for performing integrated storage operations
CA2544063C (en) 2003-11-13 2013-09-10 Commvault Systems, Inc. System and method for combining data streams in pilelined storage operations in a storage network
WO2005050381A2 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
US7478275B1 (en) * 2004-03-29 2009-01-13 Symantec Operating Corporation Method and apparatus for performing backup storage of checkpoint data within a server cluster
US7346751B2 (en) 2004-04-30 2008-03-18 Commvault Systems, Inc. Systems and methods for generating a storage-related metric
US8266406B2 (en) 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
WO2005122439A1 (en) * 2004-06-10 2005-12-22 Samsung Electronics Co., Ltd. Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
US7269689B2 (en) * 2004-06-17 2007-09-11 Hewlett-Packard Development Company, L.P. System and method for sharing storage resources between multiple files
US7472238B1 (en) 2004-11-05 2008-12-30 Commvault Systems, Inc. Systems and methods for recovering electronic information from a storage medium
US7536291B1 (en) 2004-11-08 2009-05-19 Commvault Systems, Inc. System and method to support simulated storage operations
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US8832706B2 (en) 2006-12-22 2014-09-09 Commvault Systems, Inc. Systems and methods of data storage management, such as dynamic data stream allocation
US8775823B2 (en) 2006-12-29 2014-07-08 Commvault Systems, Inc. System and method for encrypting secondary copies of data
US7269706B2 (en) * 2004-12-09 2007-09-11 International Business Machines Corporation Adaptive incremental checkpointing
US7506010B2 (en) * 2005-02-08 2009-03-17 Pro Softnet Corporation Storing and retrieving computer data files using an encrypted network drive file system
US7483929B2 (en) * 2005-02-08 2009-01-27 Pro Softnet Corporation Systems and methods for storing, backing up and recovering computer data files
US7657579B2 (en) * 2005-04-14 2010-02-02 Emc Corporation Traversing data in a repeatable manner
US20080065663A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Reestablishing process context
US20080065637A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Locating last processed data
US8112605B2 (en) 2005-05-02 2012-02-07 Commvault Systems, Inc. System and method for allocation of organizational resources
US20070027935A1 (en) * 2005-07-28 2007-02-01 Haselton William R Backing up source files in their native file formats to a target storage
US20070027936A1 (en) * 2005-07-28 2007-02-01 Stakutis Christopher J Determining changes made to a source file to transmit to a target location providing a mirror copy of the source file
US7657550B2 (en) 2005-11-28 2010-02-02 Commvault Systems, Inc. User interfaces and methods for managing data in a metabase
US20070185926A1 (en) 2005-11-28 2007-08-09 Anand Prahlad Systems and methods for classifying and transferring information in a storage network
US8572330B2 (en) 2005-12-19 2013-10-29 Commvault Systems, Inc. Systems and methods for granular resource management in a storage network
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
US20070198422A1 (en) 2005-12-19 2007-08-23 Anand Prahlad System and method for providing a flexible licensing system for digital content
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
US8930496B2 (en) 2005-12-19 2015-01-06 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US7543125B2 (en) 2005-12-19 2009-06-02 Commvault Systems, Inc. System and method for performing time-flexible calendric storage operations
US8661216B2 (en) 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US7457790B2 (en) 2005-12-19 2008-11-25 Commvault Systems, Inc. Extensible configuration engine system and method
US7620710B2 (en) 2005-12-19 2009-11-17 Commvault Systems, Inc. System and method for performing multi-path storage operations
CA2632935C (en) 2005-12-19 2014-02-04 Commvault Systems, Inc. Systems and methods for performing data replication
US7617253B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Destination systems and methods for performing data replication
US20110010518A1 (en) 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US20080301456A1 (en) * 2005-12-22 2008-12-04 Antonius Adriaan Maria Staring Efficient Secure Forensic Watermarking
US7949824B2 (en) 2006-04-11 2011-05-24 Emc Corporation Efficient data storage using two level delta resemblance
US7844652B2 (en) 2006-04-11 2010-11-30 Emc Corporation Efficient computation of sketches
US7562186B2 (en) * 2006-04-11 2009-07-14 Data Domain, Inc. Efficient data storage using resemblance of data segments
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
KR101381551B1 (ko) 2006-05-05 2014-04-11 하이버 인크 그룹 기반의 완료 및 증분 컴퓨터 파일 백업 시스템, 프로세스 및 장치
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US7539783B2 (en) 2006-09-22 2009-05-26 Commvault Systems, Inc. Systems and methods of media management, such as management of media to and from a media storage library, including removable media
CN101529419B (zh) 2006-10-17 2013-05-01 慷孚系统公司 用于对内容进行离线索引和对存储的数据进行分类的方法和系统
US8655914B2 (en) 2006-10-17 2014-02-18 Commvault Systems, Inc. System and method for storage operation access security
US7882077B2 (en) 2006-10-17 2011-02-01 Commvault Systems, Inc. Method and system for offline indexing of content and classifying stored data
US8370442B2 (en) 2008-08-29 2013-02-05 Commvault Systems, Inc. Method and system for leveraging identified changes to a mail server
CA2705379C (en) 2006-12-04 2016-08-30 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US8209605B2 (en) * 2006-12-13 2012-06-26 Pado Metaware Ab Method and system for facilitating the examination of documents
US8677091B2 (en) 2006-12-18 2014-03-18 Commvault Systems, Inc. Writing data and storage system specific metadata to network attached storage device
US8719809B2 (en) 2006-12-22 2014-05-06 Commvault Systems, Inc. Point in time rollback and un-installation of software
US20080228771A1 (en) 2006-12-22 2008-09-18 Commvault Systems, Inc. Method and system for searching stored data
US7734669B2 (en) 2006-12-22 2010-06-08 Commvault Systems, Inc. Managing copies of data
US8312323B2 (en) 2006-12-22 2012-11-13 Commvault Systems, Inc. Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7831566B2 (en) 2006-12-22 2010-11-09 Commvault Systems, Inc. Systems and methods of hierarchical storage management, such as global management of storage operations
US20080177782A1 (en) * 2007-01-10 2008-07-24 Pado Metaware Ab Method and system for facilitating the production of documents
US8290808B2 (en) 2007-03-09 2012-10-16 Commvault Systems, Inc. System and method for automating customer-validated statement of work for a data storage environment
US8010507B2 (en) * 2007-05-24 2011-08-30 Pado Metaware Ab Method and system for harmonization of variants of a sequential file
US8209540B2 (en) 2007-06-28 2012-06-26 Apple Inc. Incremental secure backup and restore of user settings and data
DK2195724T3 (da) 2007-08-28 2020-01-20 Commvault Systems Inc Energistyring af databehandlingsressourcer, såsom adaptiv energistyring af datalagringsoperationer
US8706976B2 (en) 2007-08-30 2014-04-22 Commvault Systems, Inc. Parallel access virtual tape library and drives
US8396838B2 (en) 2007-10-17 2013-03-12 Commvault Systems, Inc. Legal compliance, electronic discovery and electronic document handling of online and offline copies of data
GB2466579B (en) * 2007-10-25 2012-12-26 Hewlett Packard Development Co Data processing apparatus and method of deduplicating data
US20100235372A1 (en) * 2007-10-25 2010-09-16 Peter Thomas Camble Data processing apparatus and method of processing data
US8150851B2 (en) * 2007-10-25 2012-04-03 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
CN101855619B (zh) * 2007-10-25 2017-04-26 慧与发展有限责任合伙企业 数据处理设备和数据处理方法
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
US20090199090A1 (en) * 2007-11-23 2009-08-06 Timothy Poston Method and system for digital file flow management
US8683458B2 (en) * 2007-11-30 2014-03-25 Red Hat, Inc. Automatic full install upgrade of a network appliance
US8589592B2 (en) * 2007-12-11 2013-11-19 Red Hat, Inc. Efficient object distribution
US8296301B2 (en) 2008-01-30 2012-10-23 Commvault Systems, Inc. Systems and methods for probabilistic data classification
US7836174B2 (en) 2008-01-30 2010-11-16 Commvault Systems, Inc. Systems and methods for grid-based data scanning
US20090228716A1 (en) * 2008-02-08 2009-09-10 Pado Metawsre Ab Method and system for distributed coordination of access to digital files
DE112008003826B4 (de) * 2008-04-25 2015-08-20 Hewlett-Packard Development Company, L.P. Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
US8418164B2 (en) * 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
US8769048B2 (en) 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
US9128883B2 (en) 2008-06-19 2015-09-08 Commvault Systems, Inc Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail
US8219524B2 (en) 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US9098495B2 (en) 2008-06-24 2015-08-04 Commvault Systems, Inc. Application-aware and remote single instance data management
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8335776B2 (en) 2008-07-02 2012-12-18 Commvault Systems, Inc. Distributed indexing system for data storage
US8166263B2 (en) 2008-07-03 2012-04-24 Commvault Systems, Inc. Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8286171B2 (en) * 2008-07-21 2012-10-09 Workshare Technology, Inc. Methods and systems to fingerprint textual information using word runs
US8725688B2 (en) 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8554773B2 (en) * 2008-09-08 2013-10-08 Mobile Imaging In Sweden Ab Method for indexing images and for reading an index of an image
US8555080B2 (en) * 2008-09-11 2013-10-08 Workshare Technology, Inc. Methods and systems for protect agents using distributed lightweight fingerprints
US20100070474A1 (en) 2008-09-12 2010-03-18 Lad Kamleshkumar K Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration
US20100070466A1 (en) 2008-09-15 2010-03-18 Anand Prahlad Data transfer techniques within data storage devices, such as network attached storage performing data migration
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
WO2010036754A1 (en) 2008-09-26 2010-04-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8117343B2 (en) * 2008-10-28 2012-02-14 Hewlett-Packard Development Company, L.P. Landmark chunking of landmarkless regions
US9178842B2 (en) 2008-11-05 2015-11-03 Commvault Systems, Inc. Systems and methods for monitoring messaging applications for compliance with a policy
WO2010059747A2 (en) 2008-11-18 2010-05-27 Workshare Technology, Inc. Methods and systems for exact data match filtering
US8406456B2 (en) 2008-11-20 2013-03-26 Workshare Technology, Inc. Methods and systems for image fingerprinting
US8412677B2 (en) 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8943183B2 (en) 2008-12-10 2015-01-27 Commvault Systems, Inc. Decoupled installation of data management systems
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
US8434131B2 (en) 2009-03-20 2013-04-30 Commvault Systems, Inc. Managing connections in a data storage system
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
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8209307B2 (en) 2009-03-31 2012-06-26 Commvault Systems, Inc. Systems and methods for data migration in a clustered file system
AU2010232688C1 (en) 2009-03-31 2014-04-10 Commvault Systems, Inc. Systems and methods for normalizing data of heterogeneous data sources
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
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
WO2011017084A2 (en) * 2009-07-27 2011-02-10 Workshare Technology, Inc. Methods and systems for comparing presentation slide decks
US8719767B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Utilizing snapshots to provide builds to developer computing devices
US8706867B2 (en) 2011-03-31 2014-04-22 Commvault Systems, Inc. Realtime streaming of multimedia content from secondary storage devices
US9092500B2 (en) 2009-09-03 2015-07-28 Commvault Systems, Inc. Utilizing snapshots for access to databases and other applications
WO2011082132A1 (en) 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for analyzing snapshots
WO2011082138A1 (en) 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
US8442983B2 (en) 2009-12-31 2013-05-14 Commvault Systems, Inc. Asynchronous methods of data classification using change journals and other data structures
US8660994B2 (en) * 2010-01-28 2014-02-25 Hewlett-Packard Development Company, L.P. Selective data deduplication
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8352422B2 (en) 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
WO2011150391A1 (en) 2010-05-28 2011-12-01 Commvault Systems, Inc. Systems and methods for performing data replication
US8572719B2 (en) 2010-05-28 2013-10-29 Commvault Systems, Inc. Firewall proxy systems and methods in a backup environment
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US8504526B2 (en) 2010-06-04 2013-08-06 Commvault Systems, Inc. Failover systems and methods for performing backup operations
US8495420B2 (en) 2010-07-16 2013-07-23 Commvault Systems, Inc. Registry key federation systems and methods
US8504869B2 (en) 2010-07-16 2013-08-06 Commvault Systems, Inc. Kernel swapping systems and methods for recovering a network device
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
WO2012045021A2 (en) 2010-09-30 2012-04-05 Commvault Systems, Inc. Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
WO2012045023A2 (en) 2010-09-30 2012-04-05 Commvault Systems, Inc. Archiving data objects using secondary copies
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US11030163B2 (en) 2011-11-29 2021-06-08 Workshare, Ltd. System for tracking and displaying changes in a set of related electronic documents
US10783326B2 (en) 2013-03-14 2020-09-22 Workshare, Ltd. System for tracking changes in a collaborative document editing environment
US20120136862A1 (en) 2010-11-29 2012-05-31 Workshare Technology, Inc. System and method for presenting comparisons of electronic documents
US20120150818A1 (en) 2010-12-14 2012-06-14 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US9021198B1 (en) 2011-01-20 2015-04-28 Commvault Systems, Inc. System and method for sharing SAN storage
US8495019B2 (en) 2011-03-08 2013-07-23 Ca, Inc. System and method for providing assured recovery and replication
US8849762B2 (en) 2011-03-31 2014-09-30 Commvault Systems, Inc. Restoring computing environments, such as autorecovery of file systems at certain points in time
US8719264B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Creating secondary copies of data based on searches for content
US9323466B2 (en) 2011-04-27 2016-04-26 Commvault Systems, Inc. System and method for client policy assignment in a data storage system
US8244831B1 (en) * 2011-05-23 2012-08-14 Ilesfay Technology Group, LLC Method for the preemptive creation of binary delta information within a computer network
US10574729B2 (en) 2011-06-08 2020-02-25 Workshare Ltd. System and method for cross platform document sharing
US9948676B2 (en) 2013-07-25 2018-04-17 Workshare, Ltd. System and method for securing documents prior to transmission
US10963584B2 (en) 2011-06-08 2021-03-30 Workshare Ltd. Method and system for collaborative editing of a remotely stored document
US10880359B2 (en) 2011-12-21 2020-12-29 Workshare, Ltd. System and method for cross platform document sharing
US9613340B2 (en) 2011-06-14 2017-04-04 Workshare Ltd. Method and system for shared document approval
US9170990B2 (en) 2013-03-14 2015-10-27 Workshare Limited Method and system for document retrieval with selective document comparison
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US9116633B2 (en) 2011-09-30 2015-08-25 Commvault Systems, Inc. Information management of virtual machines having mapped storage devices
US9372827B2 (en) 2011-09-30 2016-06-21 Commvault Systems, Inc. Migration of an existing computing system to new hardware
US20130227352A1 (en) 2012-02-24 2013-08-29 Commvault Systems, Inc. Log monitoring
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9292815B2 (en) 2012-03-23 2016-03-22 Commvault Systems, Inc. Automation of data storage activities
AU2013202553B2 (en) 2012-03-30 2015-10-01 Commvault Systems, Inc. Information management of mobile device data
US8950009B2 (en) 2012-03-30 2015-02-03 Commvault Systems, Inc. Information management of data associated with multiple cloud services
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US9639297B2 (en) 2012-03-30 2017-05-02 Commvault Systems, Inc Shared network-available storage that permits concurrent data access
US9063938B2 (en) 2012-03-30 2015-06-23 Commvault Systems, Inc. Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files
US9262496B2 (en) 2012-03-30 2016-02-16 Commvault Systems, Inc. Unified access to personal data
US10157184B2 (en) 2012-03-30 2018-12-18 Commvault Systems, Inc. Data previewing before recalling large data files
US9286327B2 (en) 2012-03-30 2016-03-15 Commvault Systems, Inc. Data storage recovery automation
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9189167B2 (en) 2012-05-31 2015-11-17 Commvault Systems, Inc. Shared library in a data storage system
US8892523B2 (en) 2012-06-08 2014-11-18 Commvault Systems, Inc. Auto summarization of content
US8977672B2 (en) 2012-06-08 2015-03-10 Commvault Systems, Inc. Intelligent scheduling for remote computers
US9189170B2 (en) 2012-06-12 2015-11-17 Commvault Systems, Inc. External storage manager for a data storage cell
US9218374B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Collaborative restore in a networked storage system
US9037994B2 (en) 2012-06-26 2015-05-19 International Business Machines Corporation Navigation to a data definition in a diff context
US20140025796A1 (en) 2012-07-19 2014-01-23 Commvault Systems, Inc. Automated grouping of computing devices in a networked data storage system
US9275086B2 (en) 2012-07-20 2016-03-01 Commvault Systems, Inc. Systems and methods for database archiving
US9483201B2 (en) 2012-07-31 2016-11-01 Commvault Systems, Inc. Administering a shared, on-line pool of data storage resources for performing data storage operations
US9026498B2 (en) 2012-08-13 2015-05-05 Commvault Systems, Inc. Lightweight mounting of a secondary copy of file system data
US8938481B2 (en) 2012-08-13 2015-01-20 Commvault Systems, Inc. Generic file level restore from a block-level secondary copy
US9304998B2 (en) * 2012-12-19 2016-04-05 Microsoft Technology Licensing, Llc Main-memory database checkpointing
US20140181443A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Archiving using data obtained during backup of primary storage
US20140181085A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Data storage system for analysis of data across heterogeneous information management systems
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
US9390109B2 (en) 2012-12-21 2016-07-12 Commvault Systems, Inc. Systems and methods to detect deleted files
US20140181038A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to categorize unprotected virtual machines
US9256622B2 (en) 2012-12-21 2016-02-09 Commvault Systems, Inc. Systems and methods to confirm replication data accuracy for data backup in data storage systems
US9223597B2 (en) 2012-12-21 2015-12-29 Commvault Systems, Inc. Archiving virtual machines in a data storage system
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US9021452B2 (en) 2012-12-27 2015-04-28 Commvault Systems, Inc. Automatic identification of storage requirements, such as for use in selling data storage management solutions
US9069799B2 (en) 2012-12-27 2015-06-30 Commvault Systems, Inc. Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US10346259B2 (en) 2012-12-28 2019-07-09 Commvault Systems, Inc. Data recovery using a cloud-based remote data recovery center
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US9703584B2 (en) 2013-01-08 2017-07-11 Commvault Systems, Inc. Virtual server agent load balancing
US9720787B2 (en) 2013-01-11 2017-08-01 Commvault Systems, Inc. Table level database restore in a data storage system
US20140201162A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Systems and methods to restore selected files from block-level backup for virtual machines
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9760444B2 (en) 2013-01-11 2017-09-12 Commvault Systems, Inc. Sharing of secondary storage data
US9804930B2 (en) 2013-01-11 2017-10-31 Commvault Systems, Inc. Partial file restore in a data storage system
US9336226B2 (en) 2013-01-11 2016-05-10 Commvault Systems, Inc. Criteria-based data synchronization management
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9483489B2 (en) 2013-01-14 2016-11-01 Commvault Systems, Inc. Partial sharing of secondary storage files in a data storage system
US9286110B2 (en) 2013-01-14 2016-03-15 Commvault Systems, Inc. Seamless virtual machine recall in a data storage system
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
US20140281516A1 (en) 2013-03-12 2014-09-18 Commvault Systems, Inc. Automatic file decryption
US11567907B2 (en) 2013-03-14 2023-01-31 Workshare, Ltd. Method and system for comparing document versions encoded in a hierarchical representation
US9405635B2 (en) 2013-04-16 2016-08-02 Commvault Systems, Inc. Multi-source restore in an information management system
US9483362B2 (en) 2013-05-08 2016-11-01 Commvault Systems, Inc. Use of auxiliary data protection software in failover operations
US9483558B2 (en) 2013-05-29 2016-11-01 Commvault Systems, Inc. Assessing user performance in a community of users of data storage resources
US10911492B2 (en) 2013-07-25 2021-02-02 Workshare Ltd. System and method for securing documents prior to transmission
US20150074536A1 (en) 2013-09-12 2015-03-12 Commvault Systems, Inc. File manager integration with virtualization in an information management system, including user control and storage management of virtual machines
US9807161B2 (en) * 2013-09-16 2017-10-31 Axis Ab Distributed events in an access control system
US9590886B2 (en) 2013-11-01 2017-03-07 Commvault Systems, Inc. Systems and methods for differential health checking of an information management system
US10949382B2 (en) 2014-01-15 2021-03-16 Commvault Systems, Inc. User-centric interfaces for information management systems
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US9648100B2 (en) 2014-03-05 2017-05-09 Commvault Systems, Inc. Cross-system storage management for transferring data across autonomous information management systems
US9633026B2 (en) 2014-03-13 2017-04-25 Commvault Systems, Inc. Systems and methods for protecting email data
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9811427B2 (en) 2014-04-02 2017-11-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
US9823978B2 (en) 2014-04-16 2017-11-21 Commvault Systems, Inc. User-level quota management of data objects stored in information management systems
US9740574B2 (en) 2014-05-09 2017-08-22 Commvault Systems, Inc. Load balancing across multiple data paths
US9848045B2 (en) 2014-05-27 2017-12-19 Commvault Systems, Inc. Offline messaging between a repository storage operation cell and remote storage operation cells via an intermediary media agent
US9760446B2 (en) 2014-06-11 2017-09-12 Micron Technology, Inc. Conveying value of implementing an integrated data management and protection system
US9436552B2 (en) 2014-06-12 2016-09-06 International Business Machines Corporation Checkpoint triggering in a computer system
US20160004605A1 (en) 2014-07-01 2016-01-07 Commvault Systems, Inc. Lightweight data reconstruction based on backup data
US20160019317A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Volume or virtual machine level backup and generating placeholders for virtual machine files
US20160019117A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Creating customized bootable image for client computing device from backup copy
US20160019224A1 (en) 2014-07-18 2016-01-21 Commvault Systems, Inc. File system content archiving based on third-party application archiving rules and metadata
US9641388B2 (en) 2014-07-29 2017-05-02 Commvault Systems, Inc. Customized deployment in information management systems
US10031917B2 (en) 2014-07-29 2018-07-24 Commvault Systems, Inc. Efficient volume-level replication of data via snapshots in an information management system
US10360110B2 (en) 2014-08-06 2019-07-23 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or iSCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9405928B2 (en) 2014-09-17 2016-08-02 Commvault Systems, Inc. Deriving encryption rules based on file content
US9710465B2 (en) 2014-09-22 2017-07-18 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9436555B2 (en) 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
US9417968B2 (en) 2014-09-22 2016-08-16 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US10204010B2 (en) 2014-10-03 2019-02-12 Commvault Systems, Inc. Intelligent protection of off-line mail data
US9609058B2 (en) 2014-10-13 2017-03-28 Commvault Systems, Inc. Storage management operations based on executable files served on demand to storage management components
US9444811B2 (en) 2014-10-21 2016-09-13 Commvault Systems, Inc. Using an enhanced data agent to restore backed up data across autonomous storage management systems
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10776209B2 (en) 2014-11-10 2020-09-15 Commvault Systems, Inc. Cross-platform virtual machine backup and replication
US9848046B2 (en) 2014-11-13 2017-12-19 Commvault Systems, Inc. Archiving applications in information management systems
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9912625B2 (en) 2014-11-18 2018-03-06 Commvault Systems, Inc. Storage and management of mail attachments
US20160142485A1 (en) 2014-11-19 2016-05-19 Commvault Systems, Inc. Migration to cloud storage from backup
US9983936B2 (en) 2014-11-20 2018-05-29 Commvault Systems, Inc. Virtual machine change block tracking
US9632713B2 (en) 2014-12-03 2017-04-25 Commvault Systems, Inc. Secondary storage editor
US20160162364A1 (en) 2014-12-03 2016-06-09 Commvault Systems, Inc. Secondary storage pruning
US9645891B2 (en) 2014-12-04 2017-05-09 Commvault Systems, Inc. Opportunistic execution of secondary copy operations
US9753816B2 (en) 2014-12-05 2017-09-05 Commvault Systems, Inc. Synchronization based on filtered browsing
US11182551B2 (en) 2014-12-29 2021-11-23 Workshare Ltd. System and method for determining document version geneology
US10133723B2 (en) 2014-12-29 2018-11-20 Workshare Ltd. System and method for determining document version geneology
US20160210044A1 (en) 2015-01-15 2016-07-21 Commvault Systems, Inc. Intelligent hybrid drive caching
US20160210306A1 (en) 2015-01-15 2016-07-21 Commvault Systems, Inc. Managing structured data in a data storage system
US9952934B2 (en) 2015-01-20 2018-04-24 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US10108687B2 (en) 2015-01-21 2018-10-23 Commvault Systems, Inc. Database protection using block-level mapping
US9898213B2 (en) 2015-01-23 2018-02-20 Commvault Systems, Inc. Scalable auxiliary copy processing using media agent resources
US9904481B2 (en) 2015-01-23 2018-02-27 Commvault Systems, Inc. Scalable auxiliary copy processing in a storage management system using media agent resources
US10313243B2 (en) 2015-02-24 2019-06-04 Commvault Systems, Inc. Intelligent local management of data stream throttling in secondary-copy operations
US10956299B2 (en) 2015-02-27 2021-03-23 Commvault Systems, Inc. Diagnosing errors in data storage and archiving in a cloud or networking environment
US9575804B2 (en) 2015-03-27 2017-02-21 Commvault Systems, Inc. Job management and resource allocation
US9928144B2 (en) 2015-03-30 2018-03-27 Commvault Systems, Inc. Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US9934265B2 (en) 2015-04-09 2018-04-03 Commvault Systems, Inc. Management of log data
US10311150B2 (en) 2015-04-10 2019-06-04 Commvault Systems, Inc. Using a Unix-based file system to manage and serve clones to windows-based computing clients
US9710253B2 (en) 2015-04-16 2017-07-18 Commvault Systems, Inc. Managing a software-patch submission queue
US9904598B2 (en) 2015-04-21 2018-02-27 Commvault Systems, Inc. Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology
US9639286B2 (en) 2015-05-14 2017-05-02 Commvault Systems, Inc. Restore of secondary data using thread pooling
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US10084873B2 (en) 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9563514B2 (en) 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US11763013B2 (en) 2015-08-07 2023-09-19 Workshare, Ltd. Transaction document management system and method
US10192065B2 (en) 2015-08-31 2019-01-29 Commvault Systems, Inc. Automated intelligent provisioning of data storage resources in response to user requests in a data storage management system
US10101913B2 (en) 2015-09-02 2018-10-16 Commvault Systems, Inc. Migrating data to disk without interrupting running backup operations
US10853406B2 (en) 2015-09-18 2020-12-01 Commvault Systems, Inc. Data storage management operations in a secondary storage subsystem using image recognition and image-based criteria
US10514986B2 (en) 2015-09-30 2019-12-24 Commvault Systems, Inc. Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities in a data storage management system
US10176036B2 (en) 2015-10-29 2019-01-08 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
US10102192B2 (en) 2015-11-03 2018-10-16 Commvault Systems, Inc. Summarization and processing of email on a client computing device based on content contribution to an email thread using weighting techniques
US10228962B2 (en) 2015-12-09 2019-03-12 Commvault Systems, Inc. Live synchronization and management of virtual machines across computing and virtualization platforms and using live synchronization to support disaster recovery
US10459648B1 (en) * 2015-12-14 2019-10-29 EMC IP Holding Company LLC Change rate estimation
US10387266B2 (en) 2015-12-23 2019-08-20 Commvault Systems, Inc. Application-level live synchronization across computing platforms including synchronizing co-resident applications to disparate standby destinations and selectively synchronizing some applications and not others
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
US10684924B2 (en) 2016-02-18 2020-06-16 Commvault Systems, Inc. Data restoration operations based on network path information
US10303557B2 (en) 2016-03-09 2019-05-28 Commvault Systems, Inc. Data transfer to a distributed storage environment
US10592350B2 (en) 2016-03-09 2020-03-17 Commvault Systems, Inc. Virtual server cloud file system for virtual machine restore to cloud operations
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
AU2017252566B2 (en) 2016-04-22 2022-01-27 Adeia Media Holdings Llc System and method for enhancing data handling in a network environment
WO2017185014A1 (en) * 2016-04-22 2017-10-26 Remote Media, Llc System and method for enhancing data handling in a network environment
US10248174B2 (en) 2016-05-24 2019-04-02 Hedvig, Inc. Persistent reservations for virtual disk using multiple targets
US10437937B2 (en) 2016-07-12 2019-10-08 Commvault Systems, Inc. Dynamic management of expandable cache storage for multiple network shares configured in a file server
US10572245B1 (en) * 2016-08-30 2020-02-25 Amazon Technologies, Inc. Identifying versions of running programs using signatures derived from object files
US10747630B2 (en) 2016-09-30 2020-08-18 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node
US10540516B2 (en) 2016-10-13 2020-01-21 Commvault Systems, Inc. Data protection within an unsecured storage environment
US10210048B2 (en) 2016-10-25 2019-02-19 Commvault Systems, Inc. Selective snapshot and backup copy operations for individual virtual machines in a shared storage
US10162528B2 (en) 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
US10152251B2 (en) 2016-10-25 2018-12-11 Commvault Systems, Inc. Targeted backup of virtual machine
US10389810B2 (en) 2016-11-02 2019-08-20 Commvault Systems, Inc. Multi-threaded scanning of distributed file systems
US10922189B2 (en) 2016-11-02 2021-02-16 Commvault Systems, Inc. Historical network data-based scanning thread generation
US11106632B2 (en) 2016-11-16 2021-08-31 Commvault Systems, Inc. Dynamically configuring a proxy server using containerization for concurrent and/or overlapping backup, restore, and/or test operations
US10678758B2 (en) 2016-11-21 2020-06-09 Commvault Systems, Inc. Cross-platform virtual machine data and memory backup and replication
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10459666B2 (en) 2017-03-03 2019-10-29 Commvault Systems, Inc. Using storage managers in respective data storage management systems for license distribution, compliance, and updates
US11032350B2 (en) 2017-03-15 2021-06-08 Commvault Systems, Inc. Remote commands framework to control clients
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US10896100B2 (en) 2017-03-24 2021-01-19 Commvault Systems, Inc. Buffered virtual machine replication
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US11108858B2 (en) 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US10613939B2 (en) 2017-03-28 2020-04-07 Commvault Systems, Inc. Backup index generation process
US11074138B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Multi-streaming backup operations for mailboxes
US10599527B2 (en) 2017-03-29 2020-03-24 Commvault Systems, Inc. Information management cell health monitoring system
US10387073B2 (en) 2017-03-29 2019-08-20 Commvault Systems, Inc. External dynamic virtual machine synchronization
US11074140B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Live browsing of granular mailbox data
US10949398B2 (en) 2017-03-29 2021-03-16 Commvault Systems, Inc. Synchronization operations for network-accessible folders
US11294786B2 (en) 2017-03-31 2022-04-05 Commvault Systems, Inc. Management of internet of things devices
US11221939B2 (en) 2017-03-31 2022-01-11 Commvault Systems, Inc. Managing data from internet of things devices in a vehicle
US10552294B2 (en) 2017-03-31 2020-02-04 Commvault Systems, Inc. Management of internet of things devices
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data
US10984041B2 (en) 2017-05-11 2021-04-20 Commvault Systems, Inc. Natural language processing integrated with database and data storage management
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US11036592B2 (en) 2017-09-14 2021-06-15 Commvault Systems, Inc. Distributed content indexing architecture with separately stored file previews
US10846180B2 (en) 2017-09-14 2020-11-24 Commvault Systems, Inc. Distributed framework for task splitting and task assignments in a content indexing system
US20190108341A1 (en) 2017-09-14 2019-04-11 Commvault Systems, Inc. Ransomware detection and data pruning management
US11263088B2 (en) 2017-09-14 2022-03-01 Commvault Systems, Inc. Distributed architecture for tracking content indexing
US11086834B2 (en) 2017-09-14 2021-08-10 Commvault Systems, Inc. Distributed framework for data proximity-based task splitting in a content indexing system
US10846266B2 (en) 2017-09-14 2020-11-24 Commvault Systems, Inc. Distributed architecture for content indexing emails
US10740300B1 (en) 2017-12-07 2020-08-11 Commvault Systems, Inc. Synchronization of metadata in a distributed storage system
US10635546B2 (en) 2017-12-07 2020-04-28 Commvault Systems, Inc. Synthesizing a restore image from one or more secondary copies to facilitate data restore operations to a file server
US10742735B2 (en) 2017-12-12 2020-08-11 Commvault Systems, Inc. Enhanced network attached storage (NAS) services interfacing to cloud storage
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US10795927B2 (en) 2018-02-05 2020-10-06 Commvault Systems, Inc. On-demand metadata extraction of clinical image data
US10740022B2 (en) 2018-02-14 2020-08-11 Commvault Systems, Inc. Block-level live browsing and private writable backup copies using an ISCSI server
US10642886B2 (en) 2018-02-14 2020-05-05 Commvault Systems, Inc. Targeted search of backup data using facial recognition
US10592145B2 (en) 2018-02-14 2020-03-17 Commvault Systems, Inc. Machine learning-based data object storage
US20190251204A1 (en) 2018-02-14 2019-08-15 Commvault Systems, Inc. Targeted search of backup data using calendar event data
US10848468B1 (en) 2018-03-05 2020-11-24 Commvault Systems, Inc. In-flight data encryption/decryption for a distributed storage platform
US10877928B2 (en) 2018-03-07 2020-12-29 Commvault Systems, Inc. Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations
US11531531B1 (en) 2018-03-08 2022-12-20 Amazon Technologies, Inc. Non-disruptive introduction of live update functionality into long-running applications
US10761942B2 (en) 2018-03-12 2020-09-01 Commvault Systems, Inc. Recovery point objective (RPO) driven backup scheduling in a data storage management system using an enhanced data agent
US10789387B2 (en) 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
US10628267B2 (en) 2018-05-02 2020-04-21 Commvault Systems, Inc. Client managed data backup process within an enterprise information management system
US11321183B2 (en) 2018-05-02 2022-05-03 Commvault Systems, Inc. Multi-tiered backup indexing
US10673943B2 (en) 2018-05-02 2020-06-02 Commvault Systems, Inc. Network storage backup using distributed media agents
US11249863B2 (en) 2018-05-02 2022-02-15 Commvault Systems, Inc. Backup-based media agent configuration
US10893103B2 (en) 2018-07-25 2021-01-12 Commvault Systems, Inc. Distributed and scalable storage management using a storage-microservices server
US10891304B2 (en) 2018-07-25 2021-01-12 Commvault Systems, Inc. Distributed and scalable client-based storage management
US10891198B2 (en) 2018-07-30 2021-01-12 Commvault Systems, Inc. Storing data to cloud libraries in cloud native formats
US11159469B2 (en) 2018-09-12 2021-10-26 Commvault Systems, Inc. Using machine learning to modify presentation of mailbox objects
US11016696B2 (en) 2018-09-14 2021-05-25 Commvault Systems, Inc. Redundant distributed data storage system
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US10860443B2 (en) 2018-12-10 2020-12-08 Commvault Systems, Inc. Evaluation and reporting of recovery readiness in a data storage management system
US11012508B2 (en) 2018-12-14 2021-05-18 Commvault Systems, Inc. Region-based distributed information management system
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
US10872069B2 (en) 2019-01-22 2020-12-22 Commvault Systems, Inc. File indexing for virtual machine backups in a data storage management system
US11347707B2 (en) 2019-01-22 2022-05-31 Commvault Systems, Inc. File indexing for virtual machine backups based on using live browse features
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
US10996974B2 (en) 2019-01-30 2021-05-04 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data
US11126365B2 (en) 2019-03-11 2021-09-21 Commvault Systems, Inc. Skipping data backed up in prior backup operations
US11269732B2 (en) 2019-03-12 2022-03-08 Commvault Systems, Inc. Managing structured data in a data storage system
US11321184B2 (en) 2019-03-26 2022-05-03 Commvault Systems, Inc. Streamlined secondary copy operations for data stored on shared file storage
US11579681B2 (en) 2019-04-08 2023-02-14 Commvault Systems, Inc. Power management of components within a storage management system
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11494273B2 (en) 2019-04-30 2022-11-08 Commvault Systems, Inc. Holistically protecting serverless applications across one or more cloud computing environments
US11100064B2 (en) 2019-04-30 2021-08-24 Commvault Systems, Inc. Automated log-based remediation of an information management system
US11442623B2 (en) 2019-05-02 2022-09-13 Commvault Systems, Inc. Faster browse of secondary copies of block-level data volumes
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11461184B2 (en) 2019-06-17 2022-10-04 Commvault Systems, Inc. Data storage management system for protecting cloud-based data including on-demand protection, recovery, and migration of databases-as-a-service and/or serverless database management systems
US20200401489A1 (en) 2019-06-24 2020-12-24 Commvault Systems, Inc. Content indexing of files in virtual disk block-level backup copies
US11308034B2 (en) 2019-06-27 2022-04-19 Commvault Systems, Inc. Continuously run log backup with minimal configuration and resource usage from the source machine
US20210011816A1 (en) 2019-07-10 2021-01-14 Commvault Systems, Inc. Preparing containerized applications for backup using a backup services container in a container-orchestration pod
US20210037112A1 (en) 2019-07-29 2021-02-04 Commvault Systems, Inc. Data storage system with rapid restore capability
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11263173B2 (en) 2019-07-30 2022-03-01 Commvault Systems, Inc. Transaction log index generation in an enterprise backup system
US11513922B2 (en) 2019-08-14 2022-11-29 Commvault Systems, Inc. Systems and methods for change block tracking for backing up changed data
US11256673B2 (en) 2019-09-11 2022-02-22 Commvault Systems, Inc. Anomaly detection in deduplication pruning operations
US11237935B2 (en) 2019-09-11 2022-02-01 Commvault Systems, Inc. Anomaly detection in data protection operations
US11218450B2 (en) 2019-09-11 2022-01-04 Commvault Systems, Inc. Data protection component scaling in a cloud-based data storage system
US12056483B2 (en) * 2019-10-31 2024-08-06 Google Llc Memory efficient software patching for updating applications on computing devices
US20210133150A1 (en) 2019-11-04 2021-05-06 Commvault Systems, Inc. Efficient implementation of multiple deduplication databases in a heterogeneous data storage system
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11237924B2 (en) 2019-12-11 2022-02-01 Commvault Systems, Inc. Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system
US11223535B2 (en) 2019-12-31 2022-01-11 Commvault Systems, Inc. Smart network topology systems and methods
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data
US11422900B2 (en) 2020-03-02 2022-08-23 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11321188B2 (en) 2020-03-02 2022-05-03 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11334442B2 (en) 2020-03-10 2022-05-17 Commvault Systems, Inc. Management database long-term archiving to a recovery manager
US11005935B1 (en) 2020-03-10 2021-05-11 Commvault Systems, Inc. Using multiple streams with network data management protocol to improve performance and granularity of backup and restore operations from/to a file server
US11442768B2 (en) 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11748143B2 (en) 2020-05-15 2023-09-05 Commvault Systems, Inc. Live mount of virtual machines in a public cloud computing environment
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11327663B2 (en) 2020-06-09 2022-05-10 Commvault Systems, Inc. Ensuring the integrity of data storage volumes used in block-level live synchronization operations in a data storage management system
US11537959B2 (en) 2020-06-16 2022-12-27 Commvault Systems, Inc. Dynamic computing progress tracker
US11487468B2 (en) 2020-07-17 2022-11-01 Commvault Systems, Inc. Healing failed erasure-coded write attempts in a distributed data storage system configured with fewer storage nodes than data plus parity fragments
US11494417B2 (en) 2020-08-07 2022-11-08 Commvault Systems, Inc. Automated email classification in an information management system
US11500566B2 (en) 2020-08-25 2022-11-15 Commvault Systems, Inc. Cloud-based distributed data storage system using block-level deduplication based on backup frequencies of incoming backup copies
US11108861B1 (en) 2020-08-26 2021-08-31 Commvault Systems, Inc. System for managing multiple information management cells
US11647075B2 (en) 2020-09-22 2023-05-09 Commvault Systems, Inc. Commissioning and decommissioning metadata nodes in a running distributed data storage system
US11789830B2 (en) 2020-09-22 2023-10-17 Commvault Systems, Inc. Anti-entropy-based metadata recovery in a strongly consistent distributed data storage system
US11314687B2 (en) 2020-09-24 2022-04-26 Commvault Systems, Inc. Container data mover for migrating data between distributed data storage systems integrated with application orchestrators
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US11474753B2 (en) 2020-10-30 2022-10-18 Commvault Systems, Inc. Systems and methods for backing up to a virtual tape library
US11323513B1 (en) 2021-01-22 2022-05-03 Commvault Systems, Inc. Geo-location-based data replication
US11604706B2 (en) 2021-02-02 2023-03-14 Commvault Systems, Inc. Back up and restore related data on different cloud storage tiers
US11645175B2 (en) 2021-02-12 2023-05-09 Commvault Systems, Inc. Automatic failover of a storage manager
US11574050B2 (en) 2021-03-12 2023-02-07 Commvault Systems, Inc. Media agent hardening against ransomware attacks
US11561978B2 (en) 2021-06-29 2023-01-24 Commvault Systems, Inc. Intelligent cache management for mounted snapshots based on a behavior model
US11954513B2 (en) 2021-07-29 2024-04-09 Commvault Systems, Inc. Scalable recovery and/or migration to cloud- based custom-made virtual machines without using failed machines' credentials
US12032855B2 (en) 2021-08-06 2024-07-09 Commvault Systems, Inc. Using an application orchestrator computing environment for automatically scaled deployment of data protection resources needed for data in a production cluster distinct from the application orchestrator or in another application orchestrator computing environment
US11615147B2 (en) 2021-08-23 2023-03-28 Commvault Systems, Inc. Mobile storage manager control application for managing a storage manager of an information management system
US11593223B1 (en) 2021-09-02 2023-02-28 Commvault Systems, Inc. Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants
US12033004B2 (en) 2021-09-28 2024-07-09 Commvault Systems, Inc. Dynamically provisioning computing pods in a computing resource cluster based on a resource request from a storage manager of an information management system
US12019525B2 (en) 2021-10-05 2024-06-25 Commvault Systems, Inc. Cloud-based recovery of backed up data using auxiliary copy replication and on-demand failover resources
US12008135B2 (en) 2021-12-21 2024-06-11 Commvault Systems, Inc. Controlling information privacy in a shared data storage management system
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)
US12056018B2 (en) 2022-06-17 2024-08-06 Commvault Systems, Inc. Systems and methods for enforcing a recovery point objective (RPO) for a production database without generating secondary copies of the production database

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US480182A (en) * 1892-08-02 Wilbur f
US4641274A (en) * 1982-12-03 1987-02-03 International Business Machines Corporation Method for communicating changes made to text form a text processor to a remote host
US4807182A (en) * 1986-03-12 1989-02-21 Advanced Software, Inc. Apparatus and method for comparing data groups
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
EP0541281B1 (de) * 1991-11-04 1998-04-29 Commvault Systems, Inc. Inkrementale Rechnerdateisicherung unter Verwendung von Kennzeichnungen
US5615287A (en) * 1994-12-02 1997-03-25 The Regents Of The University Of California Image compression technique
EP0733235B1 (de) * 1993-12-10 1999-05-12 Cheyenne Advanced Technology Limited Inkrementales datensicherungssystem
US5446888A (en) * 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
US5806078A (en) * 1994-06-09 1998-09-08 Softool Corporation Version management system
US5634052A (en) * 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
WO1996025801A1 (en) * 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5758358A (en) * 1996-01-29 1998-05-26 Microsoft Corporation Method and system for reconciling sections of documents
US5909677A (en) * 1996-06-18 1999-06-01 Digital Equipment Corporation Method for determining the resemblance of documents
US6266683B1 (en) * 1997-07-24 2001-07-24 The Chase Manhattan Bank Computerized document management system
US6216140B1 (en) * 1997-09-17 2001-04-10 Hewlett-Packard Company Methodology for the efficient management of hierarchically organized information
JP3912895B2 (ja) * 1998-04-15 2007-05-09 富士通株式会社 構造化データ管理システム、構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び構造化データ管理方法
US6198850B1 (en) * 1998-06-12 2001-03-06 Xerox Corporation System and method for segmentation dependent lossy and lossless compression for higher quality

Also Published As

Publication number Publication date
DE69913618D1 (de) 2004-01-29
GB2341249A8 (en) 2001-04-02
EP0981090B1 (de) 2003-12-17
GB2341249A (en) 2000-03-08
EP0981090A1 (de) 2000-02-23
GB9817922D0 (en) 1998-10-14
US6513050B1 (en) 2003-01-28
ATE256887T1 (de) 2004-01-15

Similar Documents

Publication Publication Date Title
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
DE112007003678B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE69413977T2 (de) Anordnung und verfahren zur verteilten datenverwaltung in vernetzten rechnersystemen
DE68926693T2 (de) System und Verfahren zur einem Systemfehler nachfolgenden Datenerholung in einer Datenbank eines Rechnersystems
DE60224030T2 (de) Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem
DE69615230T2 (de) Relationales Datenbanksystem und Verfahren mit grosser Verfügbarkeit der Daten bei der Umstrukturierung von Tabellendaten
DE60121231T2 (de) Datenverarbeitungsverfahren
DE69906488T2 (de) Verfahren zur Synchronisierung eines Datenbankschemas mit seiner Darstellung in einem objekt-orientierten Repository
DE112007003645B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE69831708T2 (de) Effiziente Erkennung von Computerviren und andere Dateneigenschaften
DE3852341T2 (de) Zeichenverarbeitungssystem mit Funktion zur Prüfung von Rechtschreibung.
DE69902752T2 (de) Vorrichtung und verfahren zur websiteentwicklung
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE102005023128B4 (de) System und Verfahren zum gemeinschaftlichen Verwenden von Speicherressourcen zwischen mehreren Dateien
DE69230452T2 (de) Verfahren und Vorrichtung zur Änderungskontrolle in mehreren Entwicklungsumgebungen
DE3854667T2 (de) Datenbasissystem mit einer Baumstruktur.
DE69530595T2 (de) System und verfahren für die x.500-datenbanknorm
DE69714344T2 (de) Vorrichtung und Verfahren für die Verfügbarkeit und Wiedergewinnung von Dateien unter Verwendung von Sammlungen von Kopierspeicher
DE69214828T2 (de) Kodeserver.
DE112008003826B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE102021102442A1 (de) Katalog der mit schnappschüssen verbundenen dateien
DE10255128A1 (de) Computer-implementierte PDF-Dokumentenverwaltung
DE10234736A1 (de) System und Verfahren zum Synchronisieren von Mediendaten
DE3485999T2 (de) Hochgeschwindigkeitverarbeitungssystem fuer rechneranlage.

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee