DE102016221813A1 - Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses - Google Patents

Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses Download PDF

Info

Publication number
DE102016221813A1
DE102016221813A1 DE102016221813.1A DE102016221813A DE102016221813A1 DE 102016221813 A1 DE102016221813 A1 DE 102016221813A1 DE 102016221813 A DE102016221813 A DE 102016221813A DE 102016221813 A1 DE102016221813 A1 DE 102016221813A1
Authority
DE
Germany
Prior art keywords
data
compression
compression ratio
file
processing system
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.)
Granted
Application number
DE102016221813.1A
Other languages
English (en)
Other versions
DE102016221813B4 (de
Inventor
Shah Mohammad R. Islam
Hiroyuki Miyoshi
Hiroshi Araki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102016221813A1 publication Critical patent/DE102016221813A1/de
Application granted granted Critical
Publication of DE102016221813B4 publication Critical patent/DE102016221813B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • 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
    • 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
    • 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/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es werden Mechanismen zum Durchführen einer Datenreplikationsoperation bereitgestellt, um Daten aus dem ersten Datenverarbeitungssystem auf ein zweites Datenverarbeitungssystem zu replizieren. Diese Mechanismen speichern einen Komprimierungsverhältnisverlauf im Zusammenhang mit den zu replizierenden Daten. In dem Komprimierungsverhältnisverlauf werden für eine oder mehrere zuvor ausgeführte Datenreplikationsoperation ein oder mehrere Komprimierungsverhältnisse gespeichert. Der Mechanismus ermittelt, ob auf der Grundlage des bzw. der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf bei einer aktuellen Datenreplikationsoperation eine Datenkomprimierungsoperation auf die Daten angewendet werden sollte. Als Reaktion auf ein Feststellen, dass eine Datenkomprimierung auf die Daten angewendet werden sollte, wird die Datenkomprimierungsoperation durchgeführt, und die komprimierten Daten werden auf das zweite Datenverarbeitungssystem repliziert. Als Reaktion auf ein Feststellen, dass keine Datenkomprimierung angewendet werden sollte, werden die Daten ohne Komprimierung repliziert.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein eine verbesserte Datenverarbeitungsvorrichtung und ein verbessertes Datenverarbeitungsverfahren und insbesondere Mechanismen zum Durchführen einer effizienten Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses.
  • Datenreplikation ist ein üblicher Mechanismus, der in einer Anzahl von Speicherprodukten realisiert ist, um Datenverluste aufgrund von Programmfehlern, menschlichen Fehlern oder Großschadensereignissen zu vermeiden. Normalerweise wird eine derartige Datenreplikation in regelmäßigen Abständen, beispielsweise einmal täglich, vorgenommen. Aus Gründen der Risikoverteilung sind ein Quellsystem an einem Produktionsstandort und ein Zielsystem am Datenreplikationsort in einem derartigen Fall normalerweise physisch voneinander entfernt. Daten im Quellsystem werden über einen oder mehrere Computer oder ein oder mehrere Datenübertragungsnetzwerke wie beispielsweise Weitverkehrsnetzwerke (Wide Area Networks, WANs), z. B. das Internet, und lokale Netzwerke (Local Area Networks, LANs) zum Zielsystem übertragen.
  • Bei einer derartigen Replikation über einen Computer oder ein Datenaustauschnetzwerk wird außerdem üblicherweise eine Datenkomprimierung verwendet, um die Größe der über das Netzwerk übertragenen Daten zu verringern, Der Grund hierfür liegt darin, dass in vielen Fällen das Netzwerk einen Engpass für den gesamten Replikationsprozess darstellt und es daher von Vorteil ist, die über das Netzwerk übertragene Datenmenge so gering wie möglich zu halten und dadurch die Geschwindigkeit zu erhöhen, mit der der Replikationsprozess durchgeführt wird.
  • Ein Beispiel eines Datenreplikationsmechanismus mit Komprimierung ist das Datenreplikationstool „rsync”, das eine Komprimierungsoption bereitstellt, um die Daten zu komprimieren, die über das Netzwerk übertragen werden. Das Datenreplikationstool „rsync” nutzt „zlib”, eine Linux-Bibliothek zur Datenkomprimierung. IBM SONAS und IBM Storwize V7000 Unified, die von International Business Machines (IBM) Corporation, Armonk, New York, erhältlich sind, nutzen für ihre Datenreplikationsfunktion das Datenreplikationstool „rsync” als Datenübertragungsmodul.
  • KURZDARSTELLUNG
  • Bei einer veranschaulichenden Ausführungsform wird in einem ersten Datenverarbeitungssystem ein Verfahren zum Durchführen einer Datenreplikationsoperation bereitgestellt, um Daten aus dem ersten Datenverarbeitungssystem auf ein zweites Datenverarbeitungssystem zu replizieren. Das Verfahren weist ein Speichern eines Komprimierungsverhältnisverlaufs im Zusammenhang mit Daten durch das erste Datenverarbeitungssystem auf, die auf das zweite Datenverarbeitungssystem zu replizieren sind. im Komprimierungsverhältnisverlauf ist für mindestens eine zuvor ausgeführte Datenreplikationsoperation mindestens ein Komprimierungsverhältnis gespeichert. Das Verfahren weist ferner ein Ermitteln durch das erste Datenverarbeitungssystem auf, ob auf der Grundlage mindestens eines Komprimierungsverhältnisses im Komprimierungsverhältnisverlauf bei einer aktuellen Datenreplikationsoperation eine Datenkomprimierungsoperation auf die Daten angewendet werden sollte. Das Verfahren weist außerdem als Reaktion auf ein Feststellen, dass eine Datenkomprimierung auf die Daten angewendet werden sollte, durch das Datenverarbeitungssystem ein Durchführen der Datenkomprimierungsoperation an den Daten und Durchführen der aktuellen Datenreplikationsoperation auf, um die komprimierten Daten auf das zweite Datenverarbeitungssystem zu replizieren. Das Verfahren weist darüber hinaus als Reaktion auf ein Feststellen, dass keine Datenkomprimierung auf die Daten angewendet werden sollte, durch das Datenverarbeitungssystem ein Durchführen der aktuellen Datenreplikationsoperation auf, um die Daten ohne Komprimierung auf das zweite Datenverarbeitungssystem zu replizieren.
  • Bei anderen veranschaulichenden Ausführungsformen wird ein Computerprogrammprodukt bereitgestellt, das ein durch einen Computer nutzbares oder ein computerlesbares Medium mit einem computerlesbaren Programm aufweist. Das computerlesbare Programm bewirkt, wenn es auf einer Datenverarbeitungseinheit ausgeführt wird, dass die Datenverarbeitungseinheit verschiedene Operationen oder Kombinationen davon durchführt, die oben in Bezug auf die Ausführungsform umrissen sind, die das Verfahren veranschaulicht.
  • Bei noch einer weiteren veranschaulichenden Ausführungsform wird ein System/eine Vorrichtung bereitgestellt. Das System/die Vorrichtung kann einen oder mehrere Prozessoren und einen Speicher aufweisen, der mit dem einen oder den mehreren Prozessoren verbunden ist. Der Speicher kann Anweisungen aufweisen, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehreren Prozessoren verschiedene Operationen oder Kombinationen davon durchführt bzw. durchführen, die oben in Bezug auf die Ausführungsform umrissen sind, die das Verfahren veranschaulicht.
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden in Anbetracht der folgenden detaillierten Beschreibung beispielhafter Ausführungsformen der vorliegenden Erfindung beschrieben bzw. werden dem Fachmann verständlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung sowie eine bevorzugte Art der Verwendung und weitere Zielsetzungen und Vorteile der Erfindung werden jedoch am besten unter Bezugnahme auf die folgende ausführliche Beschreibung veranschaulichender Ausführungsformen in Verbindung mit den beigefügten Zeichnungen deutlich, wobei:
  • 1 eine beispielhafte Darstellung eines beispielhaften verteilten Datenverarbeitungssystems ist, bei dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können;
  • 2 ein beispielhaftes Blockschema einer beispielhaften Datenverarbeitungseinheit ist, bei dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können;
  • 3 ein beispielhaftes Funktionsblockschema ist, das die hauptsächlichen Funktionselemente zum Durchführen einer Datenreplikationsoperation gemäß einer veranschaulichenden Ausführungsform zeigt;
  • 4 ein Flussdiagramm ist, das eine beispielhafte Operation zum Durchführen einer Datenreplikation gemäß einer veranschaulichenden Ausführungsform skizziert; und
  • 5 ein Flussdiagramm ist, das eine beispielhafte Operation zum Durchführen einer Datenreplikation bei einer einzelnen Datei gemäß einer weiteren veranschaulichenden Ausführungsform skizziert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die veranschaulichenden Ausführungsformen stellen Mechanismen zum Durchführen einer effizienten Datenreplikation auf der Grundlage eines Komprimierungsverhältnisverlaufs bereit. Wie oben angemerkt, sind in der Technik Datenreplikationsmechanismen bekannt, bei denen eine Datenkomprimierung verwendet wird, und ihre Verwendung ist durchaus gebräuchlich. Obwohl der Datenreplikationsprozess durch die Datenkomprimierung erleichtert wird, indem die Menge zu übertragender Daten sowie die Zeit zur Durchführung des Datenreplikationsprozesses minimiert werden, kann es bei derartigen Systemen, die Datenreplikation mit Datenkomprimierung verwenden, gelegentlich vorkommen, dass die Daten durch die Datenkomprimierung unzureichend komprimiert werden. Beispielsweise werden Daten, die bereits komprimiert sind, z. B. eine Datei des Typs xxx.gz oder xxx.zip oder Bilder/Videodateien, die bereits codiert sind, in vielen Fällen nicht sehr stark komprimiert, d. h., die Dateigröße wird entweder nicht oder nur geringfügig verringert. Infolgedessen steht der Aufwand zum Durchführen des Datenkomprimierungsprozesses hinsichtlich Zeit und Ressourcen unter Umständen in einem Missverhältnis zum Nutzwert des erzielten Kompressionsgrades. Daraus ergibt sich also, dass das Ausführen einer Datenreplikation mit Datenkomprimierung länger als eine Datenreplikation ohne Datenkomprimierung dauert, wenn sich die Datenkomprimierung nicht nennenswert auf die Dateigrößen auswirkt.
  • Es wäre also nützlich, wenn man feststellen könnte, wann eine Datenkomprimierung während einer Datenreplikation für den Datenreplikationsprozess von Vorteil ist und nicht zu einem Datenreplikationsprozess führt, der länger als die Datenreplikation ohne Datenkomprimierung dauert. Es ist jedoch schwer erkennbar, in welchem Ausmaß Daten komprimiert werden können, ohne die Daten zuvor zu komprimieren, da das Komprimierungsverhältnis vom tatsächlichen Datenmuster abhängt, d. h., der Nutzen einer Datenkomprimierung kann nicht von vornherein ermittelt, sondern nur beurteilt werden, indem die Datenkomprimierung durchgeführt und das Ausmaß der Abnahme der Dateigröße ermittelt wird, die mittels Durchführung der Dateikomprimierung erhalten wurde.
  • Die veranschaulichenden Ausführungsformen stellen einen Datenreplikationsmechanismus bereit, der von vornherein ermitteln kann, ob die Datenkomprimierung den Datenreplikationsprozess verbessert, und die Datenkomprimierung nur bei Dateien anwendet, die in ausreichendem Maß komprimiert werden können und zu einer Verbesserung beim Datenreplikationsprozess führen, indem die über das Datenaustauschnetzwerk zu übertragende Datenmenge verringert und somit die Geschwindigkeit verbessert wird, mit der der Datenreplikationsprozess durchgeführt wird.
  • Eine Möglichkeit würde darin bestehen, eine Liste von Dateitypen zu haben, bei denen keine Datenkomprimierung als Teil des Datenreplikationsprozess durchgeführt werden sollte. Beispielsweise kann bei Verwendung eines Datenreplikationstools „rsync” mit Komprimierungsoption eine Liste mit Dateierweiterungen wie beispielsweise .zip, .gz, .iso, .mp4, usw. bereitgestellt werden, und bei der im Moment replizierten Datei kann ihre Dateierweiterung mit der Liste verglichen werden, um zu ermitteln, ob eine Übereinstimmung vorliegt. Bei einer Übereinstimmung kann die Datenreplikation ohne Durchführen der Datenkomprimierung durchgeführt werden. Liegt keine Übereinstimmung vor, kann die Datenkomprimierung als Teil des Datenreplikationsprozesses angewendet werden. Obwohl dies gut funktioniert, ist diese Technik auf eine wirkungsvolle Arbeitsweise im Zusammenhang mit Dateien beschränkt, deren Dateierweiterungen in der Liste aufgeführt sind. Das heißt, die Wirksamkeit ist durch den Umfang der Dateierweiterungsliste beschränkt. Anders ausgedrückt, es können Dateien unterschiedlicher Arten vorliegen, die nicht in der Dateierweiterungsliste aufgeführt sind und nicht zu einer nennenswerten Verringerung der Dateigröße führen, wenn die Datenkomprimierung angewendet wird. Darüber hinaus können Dateien vorliegen, die keine ordnungsgemäße Dateierweiterung aufweisen, bei denen es sich aber in Wirklichkeit um Dateien des Typs .zip, .gz usw. handelt. In einem derartigen Fall wendet der Datenreplikationsprozess mit Datenkomprimierung die Datenkomprimierung auf die Datei an, da sie nicht die ordnungsgemäße Dateierweiterung enthält, obwohl die Datei bereits komprimiert ist und nicht zu einem nennenswerten Dateigrößenunterschied aufgrund der Anwendung der Datenkomprimierung als Teil des Datenreplikationsprozesses führt, d. h., dies benötigt zusätzliche Zeit und Ressourcen ohne ein wesentliches nutzbringendes Ergebnis.
  • Die veranschaulichenden Ausführungsformen nutzen einen Mechanismus auf der Grundlage der Speicherung eines Komprimierungsverhältnisverlaufs im Zusammenhang mit dem Datenabschnitt (zur Erleichterung der Erläuterung hierin als „Datei” betrachtet). Wenn eine Datei zum Übertragen mit Datenkomprimierung ausgewählt wird, wird als Teil des Datenreplikationsprozesses der entsprechende Komprimierungsverhältnisverlauf der Datei aktualisiert, sodass er das Komprimierungsverhältnis des aktuellen Datenreplikationsprozesses enthält, wobei das Komprimierungsverhältnis ein Verhältnis der Größe der komprimierten Datei zur Größe der nicht komprimierten Datei ist. Der zu einer Datei gehörende Komprimierungsverhältnisverlauf wird nur aktualisiert, wenn als Teil des Replikationsprozesses die Datei tatsächlich der Datenkomprimierung unterzogen wird. Wenn festgestellt wird, dass die Datei ohne Komprimierung zu replizieren ist, wird daher der zur Datei gehörende Komprimierungsverhältnisverlauf nicht aktualisiert.
  • Im Komprimierungsverhältnisverlauf können ein oder mehrere Komprimierungsverhältnisse gespeichert sein, die beim Durchführen des Datenreplikationsprozesses als Teil des durchgeführten Komprimierungsprozesses zu der Datei ermittelt wurden. Daher kann im Komprimierungsverhältnisverlauf bei einer veranschaulichenden Ausführungsform lediglich das neueste Komprimierungsverhältnis gespeichert sein. Bei anderen veranschaulichenden Ausführungsformen können im Komprimierungsverhältnisverlauf n Komprimierungsverhältnisse M(n) in einer FIFO-Weise (FIFO = First-in-First-Out) gespeichert sein, wobei M(0) das jüngste Komprimierungsverhältnis des letzten Mals speichert, als die Datenreplikation der Datei unter Verwendung der Datenkomprimierung durchgeführt wurde, und M(n – 1) das n Male zurückliegende älteste Komprimierungsverhältnis der Datei aufweist. Bei einigen veranschaulichenden Ausführungsformen kann das Komprimierungsverhältnis selbst ein Ganzzahlwert zwischen 1 und 100 sein, der einen Prozentsatz der durch die Datenkomprimierung erzielten Datengrößenverringerung wiedergibt, z. B. bedeutet 100, dass die Komprimierung die Daten überhaupt nicht komprimiert hat, während 50 bedeutet, dass die Datengröße der Datei nach der Datenkomprimierung die Hälfte der ursprünglichen Datengröße der Datei betrug. Verhältniswerte können auf die entsprechende Ganzzahl gerundet sein. Infolgedessen kann jeder Wert von M(i) 1 Byte betragen und als erweitertes Attribut der Datei gespeichert sein. Wenn N beispielsweise 1000 beträgt, was bedeutet, dass die letzten 1000 Komprimierungsverhältnisse einer Datei im Komprimierungsverhältnisverlauf gespeichert sind, beträgt die Größe von M lediglich 1 kB.
  • Beim Ermitteln, ob eine Datei unter Verwendung der Datenkomprimierung als Teil eines Datenreplikationsprozesses zu überfragen ist, kann ein Prozess einen auf der Grundlage des Komprimierungsverhältnisverlaufs erhaltenen Wert mit einem oder mehreren Schwellenwerten vergleichen, um zu ermitteln, ob die Datenkomprimierung auf die Datei anzuwenden ist. Der aus dem Komprimierungsverhältnisverlauf erhaltene Datenwert kann das neueste Komprimierungsverhältnis sein, ein Durchschnitt der im Komprimierungsverhältnisverlauf gespeicherten Komprimierungsverhältnisse oder eine Funktion eines oder mehrerer Komprimierungsverhältnisse, die im Komprimierungsverhältnisverlauf gespeichert sind. Bei einigen veranschaulichenden Ausführungsformen verläuft das Durchführen der Datenreplikationsoperation mit Datenkomprimierung schneller als das Durchführen der Datenreplikationsoperation ohne Datenkomprimierung, wenn das Komprimierungsverhältnis kleiner als ein Schwellenwert T ist, d. h., es liegt eine ausreichende Datenkomprimierung vor, sodass der Aufwand zur Datenkomprimierung durch die Verringerung der Datengröße und der zur Durchführung des Datenreplikationsprozesses notwendigen Zeit aufgewogen wird. Wenn das Komprimierungsverhältnis gleich oder größer als der Schwellenwert T ist, verläuft die Übertragung ohne Komprimierung schneller als die Übertragung mit Komprimierung, d. h., durch Anwenden der Datenkomprimierung wird kein nennenswertes Ausmaß der Datengrößenverringerung der Datei erreicht, und daher ist der zusätzliche Aufwand zur Datenkomprimierung nicht gerechtfertigt.
  • Der bzw. die Schwellenwerte können auf eine beliebige gewünschte Weise ermittelt werden, unter anderem anhand von Erfahrungswerten, indem Tests durchgeführt werden, um die am besten geeignete Einstellung des Schwellenwertes bzw. der Schwellenwerte zu ermitteln. Beispielsweise kann für einen bestimmten zu verwendenden Datenkomprimierungsalgorithmus ein Datenabschnitt, z. B. 32 kB Daten, bereitgestellt werden, der ein Komprimierungsverhältnis von 1% aufweist, d. h. der sehr gut komprimiert ist, und ein anderer mit 100%, d. h. der nicht sehr gut komprimiert ist. Für andere Werte von Komprimierungsverhältnissen können auch weitere Dateien erzeugt werden. Diese Dateien können unter Verwendung des Datenreplikationsprozesses mit und ohne Komprimierung und die entsprechenden gemessenen Übertragungszeiten übertragen werden. Ein Mindestkomprimierungsverhältnis, bei dem die Übertragung der Daten ohne Komprimierung schneller als die Übertragung mit Komprimierung verlauft, kann herausgefunden und verwendet werden, um den bzw. die Schwellenwerte einzustellen. Selbstverständlich können andere Ansätze zum Herausfinden der richtigen Werte für die Schwellenwerte verwendet werden, ohne vom Grundgedanken und Schutzbereich der vorliegenden Erfindung zu weichen.
  • Außer dem Komprimierungsverhältnisverlauf gehört ein Komprimierungsverhältnis-Prüfparameter zu der Datei und gibt ein Datum/eine Uhrzeit an, an dem bzw. zu der das Komprimierungsverhältnis der Datei zu prüfen ist. Das Datum/die Uhrzeit des Komprimierungsverhältnis-Prüfparameters gibt an, wann die Datei als Teil eines Datenreplikationsprozesses unter Verwendung der Datenkomprimierung übertragen werden muss, sodass das Komprimierungsverhältnis aktualisiert werden kann. Das heißt, dass, wenn das aktuelle Datum/die aktuelle Uhrzeit gleich dem bzw. der im Komprimierungsverhältnis-Prüfparameter angegebenen Datum/der Uhrzeit sind oder einen späteren Zeitpunkt bezeichnen, die Datei als Teil des Datenreplikationsprozess unter Verwendung der Datenkomprimierung übertragen wird, selbst wenn die Mechanismen der veranschaulichenden Ausführungsform auf der Grundlage des Komprimierungsverhältnisverlaufs feststellen, dass die Datei nicht als Teil des Datenreplikationsprozesses unter Verwendung der Komprimierung übertragen werden sollte (da aufgrund einer unerheblichen Verringerung der Größe der Daten keine nennenswerte Verbesserung beim Replikationsprozess erzielt wird). Auf diese Weise wird der Komprimierungsverhältnisverlauf mit einem neueren Datenkomprimierungsverhältniswert aktualisiert, der zu einem Vergleich mit den aktuellen Schwellenwerten verwendet werden kann, um zu ermitteln, ob die Datenreplikation mit/ohne Komprimierung geeignet ist.
  • Verschiedene Mechanismen können zum Speichern des Komprimierungsverhältnis-Prüfparameters realisiert sein, darunter Einstellen eines bestimmten Tages/einer bestimmten Uhrzeit als zukünftigen Zeitstempel als zur Datei gehörigen Parameter, Einstellen eines rückwärts zählenden Zeitgebers oder eines Zählerwertes, der nach jeder Zeiteinheit schrittweise erhöht wird, wenn z. B. der Komprimierungsverhältnis-Prüfparameter auf Tage eingestellt ist, kann der Wert im Komprimierungsverhältnis-Prüfparameter jeden Tag heruntergezählt werden, bis er null erreicht, wobei an diesem Punkt die oben erwähnte Operation zur Prüfung der Komprimierung durchgeführt wird. Der Komprimierungsverhältnis-Prüfparameter kann auf einen Standardwert eingestellt sein, sodass bei allen Dateien, deren Komprimierungsverhältnisse nach derselben Zeitdauer geprüft werden, die seit der letzten stattgefundenen Prüfung der Komprimierungsverhältnisse vergangen ist. Alternativ kann eine maximale abgelaufene Zeit zum Prüfen des Komprimierungsverhältnisses einer Datei eingestellt sein, und einzelne Komprimierungsverhältnis-Prüfparameter können auf der Grundlage von Komprimierungseigenschaften der Datei innerhalb dieser maximalen abgelaufenen Zeit eingestellt sein. Wenn die Komprimierungseigenschaften der Datei darauf hinweisen, dass die Komprimierungsverhältnisse von einem Datenkomprimierungsprozess zum nächsten oder im Laufe der Zeit erheblich schwanken, wird daher die Operation zur Prüfung des Komprimierungsverhältnisses häufiger als bei Dateien durchgeführt, deren Komprimierungsverhältnisse nicht so stark schwanken.
  • Bei einigen veranschaulichenden Ausführungsformen kann eine Funktion D(s) verwendet werden, um den Wert zurückzugeben, der als Komprimierungsverhältnis-Prüfparameter gespeichert werden soll, z. B. die Anzahl von Tagen, bis der nächste Komprimierungsprüfprozess durchzuführen ist. Das heißt, dass bei Verwendung der Zeiteinheit Tage der Komprimierungsprüfprozess verarbeitet wird, nachdem die Anzahl von Tagen abgelaufen ist, die durch die Funktion D(s) angegeben ist. Die Eingabe in die Funktion D(s) kann eine statistische Messgröße oder eine andere Funktion der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf M(n) sein. Beispielsweise gibt die statistische Messgröße oder eine andere Funktion eine Messgröße der Stabilität des Komprimierungsverhältnisses im Laufe der Zeit wieder. Bei einer veranschaulichenden Ausführungsform kann diese statistische Messgröße oder Funktion die Standardabweichung s von M bei einer Datei zu dem Zeitpunkt sein, zu dem die Funktion D(s) berechnet wird. Falls die Schwankung der Komprimierungsverhältniswerte in M sehr klein ist, ist das Komprimierungsverhältnis ziemlich konstant, und der Komprimierungsprüfprozess muss nicht so oft durchgeführt werden. Wenn andererseits die Komprimierungsverhältniswerte in M stark schwanken, ändert sich das Komprimierungsverhältnis drastisch, und die Operation zur Prüfung der Komprimierung sollte häufiger durchgeführt werden. Wenn beispielsweise eine Datei längstens innerhalb der nächsten 30 Tage geprüft werden soll, kann D(s) definiert werden als D(s) = ((50 – s)150)·30. Beispielsweise kann bei Verwendung dieser Funktion ein Komprimierungsverhältnis-Prüfparameter prüf_datum festgelegt werden als prüf_datum = D(s) + aktueller_zeitstempel.
  • Somit ordnen gemäß einer veranschaulichenden Ausführungsform die Mechanismen der veranschaulichenden Ausführungsform jeder Datei einen Komprimierungsverhältnisverlauf M(n) und einen Komprimierungsverhältnis-Prüfparameter prüf_datum zu. Die Mechanismen der veranschaulichenden Ausführungsform weisen ferner Elemente zum Ermitteln einer ersten statistischen Messgröße wie zum Beispiel eines Durchschnitts der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf M(n) auf, um das Komprimierungsverhältnis eines nächsten Replikationsprozesses vorherzusagen. Die Mechanismen der veranschaulichenden Ausführungsformen weisen ferner Elemente zum Berechnen einer zweiten statistischen Messgröße der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf M(n) wie zum Beispiel einer Standardabweichung M auf, um zu ermitteln, wie die Komprimierungsverhältnisse verteilt sind, und um Informationen über die Veränderlichkeit der Komprimierungsverhältnisse bei den letzten N Replikationsprozessen bereitzustellen. Diese zweite statistische Messgröße wird verwendet, um die Häufigkeit zu ermitteln, mit der Prüfungen des Komprimierungsverhältnisses durchzuführen sind.
  • Die Mechanismen der veranschaulichenden Ausführungsform weisen ferner Elemente zum Einrichten und Nutzen eines oder mehrerer Schwellenwerte T auf, um zu ermitteln, wann die Komprimierung als Teil des Replikationsprozesses zu verwenden ist. Darüber hinaus weisen die Mechanismen der veranschaulichenden Ausführungsform Elemente zum Anwenden einer Funktion D(s) auf, um zu ermitteln, wie auf der Grundlage der zweiten statistischen Messgröße der Komprimierungsverhältnisse der Komprimierungsverhältnis-Prüfparameter prüf_datum der Datei festgelegt werden soll. Die Mechanismen der veranschaulichenden Ausführungsformen weisen ferner Elemente zum Nutzen der oben aufgeführten Elemente auf, um zu jeder Datei, die Gegenstand eines Datenreplikationsprozesses ist, hauptsächlich auf der Grundlage des Komprimierungsverhältnisverlaufs und der ermittelten Häufigkeit zum Prüfen des Komprimierungsverhältnisses der Datei ein dynamisches Ermitteln zu ermöglichen, ob die Datenkomprimierung als Teil des Datenreplikationsprozesses zu verwenden ist.
  • Vor der Erörterung der verschiedenen Aspekte der veranschaulichenden Ausführungsformen sollte zunächst klar sein, dass der Begriff „Mechanismus” in der gesamten vorliegenden Beschreibung verwendet wird, um Elemente der vorliegenden Erfindung zu bezeichnen, die verschiedene Operationen, Funktionen und dergleichen durchführen. Ein „Mechanismus” im hierin verwendeten Sinne kann eine Realisierungsform der Funktionen oder Aspekte der veranschaulichenden Ausführungsformen in Form einer Vorrichtung, eines Verfahrens oder eines Computerprogrammprodukts sein. Im Falle eines Verfahrens ist das Verfahren durch eine oder mehrere Einheiten, Vorrichtungen, Computer, Datenverarbeitungssysteme oder dergleichen realisiert. Im Falle eines Computerprogrammprodukts wird die Logik, die durch Computercode oder Anweisungen wiedergegeben ist, die in oder auf dem Computerprogrammprodukt verkörpert sind, durch eine oder mehrere Hardwareeinheiten ausgeführt, um die Funktionalität zu realisieren oder die Operationen im Zusammenhang mit dem betreffenden „Mechanismus” durchzuführen. Daher können die hierin beschriebenen Mechanismen als Spezialhardware realisiert sein, als Software, die auf einer Mehrzweckhardware ausgeführt wird, als Softwareanweisungen, die so auf einem Medium gespeichert sind, dass die Anweisungen ohne Weiteres durch Spezial- oder Mehrzweckhardware ausführbar sind, als Verfahren oder Methode zum Ausführen der Funktionen oder als Kombination beliebiger der oben erwähnten Elemente.
  • In der vorliegenden Beschreibung und den vorliegenden Ansprüchen werden die Begriffe „ein/eine”, „mindestens eines/eine von” und „ein/eine oder mehrere von” im Hinblick auf bestimmte Merkmale und Elemente der veranschaulichenden Ausführungsformen verwendet. Es sollte klar sein, dass diese Begriffe und Ausdrücke dazu gedacht sind, anzugeben, dass bei der betreffenden veranschaulichenden Ausführungsform mindestens eines des betreffenden Merkmals oder Elements vorliegt, aber auch mehr als eines vorliegen kann. Das heißt, dass diese Begriffe/Ausdrücke nicht dazu gedacht sind, die Beschreibung oder Ansprüche auf ein einzelnes vorliegendes Merkmal/Element zu beschränken oder verlangen, dass eine Mehrzahl derartiger Merkmale/Elemente vorliegen muss. Im Gegensatz hierzu verlangen diese Begriffe/Ausdrücke lediglich mindestens ein einzelnes Merkmal/Element, wobei die Möglichkeit einer Mehrzahl derartiger Merkmale/Elemente in den Schutzbereich der Beschreibung und der Ansprüche fällt.
  • Darüber hinaus sollte klar sein, dass die folgende Beschreibung eine Mehrzahl verschiedener Beispiele für verschiedene Elemente der veranschaulichenden Ausführungsformen verwendet, um beispielhafte Realisierungsformen der veranschaulichenden Ausführungsformen weiter zu veranschaulichen und das Verständnis der Mechanismen der veranschaulichenden Ausführungsformen zu erleichtern. Diese Beispiele sind als nicht einschränkendes gedacht und hinsichtlich der verschiedenen Möglichkeiten zum Realisieren der Mechanismen der veranschaulichenden Ausführungsformen nicht erschöpfend. Angesichts der vorliegenden Beschreibung wird dem Fachmann klar sein, dass es für diese verschiedenen Elemente viele andere alternative Realisierungsformen gibt, die zusätzlich oder als Ersatz der hierin bereitgestellten Beispiele genutzt werden können, ohne vom Grundgedanken und Schutzbereich der vorliegenden Erfindung abzuweichen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit darauf befindlichen computerlesbaren Programmanweisungen enthalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Das computerlesbare Speichermedium kann eine materielle Einheit sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit aufbewahren und speichern kann. Das computerlesbare Speichermedium kann zum Beispiel, ohne auf diese beschränkt zu sein, eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Eine nicht erschöpfende Liste genauerer Beispiele des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein computerlesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene computerlesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk von einem computerlesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb der betreffenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei computerlesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembleranweisungen, ISA-Anweisungen (ISA = Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Daten zum Setzen von Zuständen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, zu denen eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen gehören. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltungen, Field-Programmable Gate Arrays (FPGA) oder programmierbare logische Arrays (PLA) gehören, die computerlesbaren Programmanweisungen ausführen, indem Zustandsinformationen der computerlesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Erfindung durchgeführt werden.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata durch Computerprogrammanweisungen realisiert werden kann bzw. können.
  • Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms und/oder des Blockschemas angegebenen Funktionen/Aktionen zu realisieren. Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das computerlesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die computerlesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Dementsprechend kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die im Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der damit verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschemata und/oder der dargestellten Flussdiagramme sowie Kombinationen von Blöcken in den dargestellten Blockschemata und/oder in dargestellten Flussdiagrammen mithilfe von bestimmten Zwecken dienenden hardwaregestützten Systemen zur Ausführung der angegebenen Funktionen bzw. Aktionen oder mithilfe von Kombinationen aus bestimmten Zwecken dienender Hardware und Computeranweisungen ausgeführt werden kann bzw. können.
  • Die veranschaulichenden Ausführungsformen können bei vielen unterschiedlichen Arten von Datenverarbeitungsumgebungen genutzt werden. Um einen Kontext für die Beschreibung der speziellen Elemente und speziellen Funktionalität der veranschaulichenden Ausführungsformen bereitzustellen, sind die 1 und 2 nachfolgend als beispielhafte Umgebungen bereitgestellt, in denen Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Es sollte klar sein, dass die 1 und 2 lediglich Beispiele sind und keinerlei Einschränkungen hinsichtlich der Umgebungen darstellen oder stillschweigend einschließen sollen, in denen Aspekte oder Ausführungsformen der vorliegenden Erfindung realisiert sein können. An den abgebildeten Umgebungen können viele Abänderungen vorgenommen werden, ohne vom Grundgedanken und Schutzbereich der vorliegenden Erfindung abzuweichen.
  • 1 ist eine bildliche Darstellung eines beispielhaften verteilten Datenverarbeitungssystems, bei dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Das verteilte Datenverarbeitungssystem 100 kann ein Netzwerk aus Computern aufweisen, in dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Das verteilte Datenverarbeitungssystem 100 enthält mindestens ein Netzwerk 102, bei dem es sich um das Medium handelt, das Datenaustauschverbindungen zwischen verschiedenen Einheiten und Computern bereitstellt, die innerhalb des verteilten Datenverarbeitungssystems 100 untereinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie beispielsweise drahtgebundene oder drahtlose Datenaustauschverbindungen oder Lichtwellenleiter aufweisen.
  • Bei dem abgebildeten Beispiel sind der Server 104 und der Server 106 sowie die Speichereinheit 108 mit dem Netzwerk 102 verbunden. Außerdem sind die Clients 110, 112 und 114 ebenfalls mit dem Netzwerk 102 verbunden. Bei den Clients 110, 112 und 114 kann es sich zum Beispiel um Personal Computer, Netzwerkcomputer oder Ähnliches handeln. Bei dem abgebildeten Beispiel stellt der Server 104 den Clients 110, 112 und 114 Daten wie beispielsweise Bootdateien, Betriebssystemabbilder und Anwendungen bereit. Bei dem abgebildeten Beispiel sind die Clients 110, 112 und 114 Clients des Servers 104. Das verteilte Datenverarbeitungssystem 100 kann weitere Server, Clients, Anzeigeeinheiten und andere, nicht gezeigte Einheiten enthalten.
  • Bei dem abgebildeten Beispiel handelt es sich bei dem verteilten Datenverarbeitungssystem 100 um das Internet, wobei das Netzwerk 102 für eine weltweit verteilte Ansammlung von Netzwerken und Gateways steht, die zum Datenaustausch untereinander die Protokollreihe des Transmission Control Protocol/Internet Protocol (TCP/IP) nutzen. Das Herzstück des Internets bildet ein Hauptstrang (Backbone) mit schnellen Datenübertragungsleitungen zwischen Hauptknoten bzw. Host-Computern, die aus tausenden von Computersystemen für Wirtschaft, Behörden und Bildungsinstitutionen sowie anderen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann die verteilte Datenverarbeitungsumgebung 100 auch in Form einer Anzahl unterschiedlicher Arten von Netzwerken realisiert sein, zum Beispiel in Form eines Intranets, eines lokalen Netzwerks (LAN), eines Weitverkehrsnetzwerks (WAN) oder dergleichen. Wie oben erwähnt, ist 1 als Beispiel und nicht als Einschränkung der Architektur unterschiedlicher Ausführungsformen der vorliegenden Erfindung gedacht, und daher sind die in 1 gezeigten einzelnen Elemente nicht als Einschränkung in Bezug auf die Umgebungen zu betrachten, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung realisiert sein können.
  • Gemäß den veranschaulichenden Ausführungsformen können eine oder mehrere der in 1 dargestellten Datenverarbeitungseinheiten so konfiguriert sein, dass Aspekte der veranschaulichenden Ausführungsformen beispielsweise in Form eines Datenreplikationsmoduls 120 realisiert werden. Das Datenreplikationsmodul 120 weist neben anderen, in 1 nicht dargestellten Elementen eine Replikationssteuerlogik 122 und eine Datenkomprimierungslogik 124 auf. Die Replikationssteuerlogik 122 weist die Logik für die Steuereinheit für die Datenreplikationsoperationen auf, die durch das Datenreplikationsmodul 120 durchgeführt werden, zu denen gemäß den veranschaulichenden Ausführungsformen ein Ermitteln gehört, wann Datenkomprimierungsoperationen als Teil der Datenreplikationsoperation durchzuführen sind. Die Datenkomprimierungsoperation selbst kann durch die Datenkomprimierungslogik 124 gemäß einem oder mehreren Datenkomprimierungsalgorithmen durchgeführt werden und enthält ferner weitere Logik, um bei jeder Datei, die im Moment als Teil der Datenreplikationsoperation repliziert wird, ein durch die Datenkomprimierungslogik 124 erzieltes Komprimierungsverhältnis zu ermitteln und diese Komprimierungsverhältnisinformationen in einem Datenkomprimierungsverhältnisverlauf zu speichern, der zu der komprimierten Datei gehört. Die Replikationssteuerlogik 124 kann ferner Logik aufweisen, um einen Komprimierungsprüfparameter zu ermitteln, der einer Datei zuzuordnen ist, die Gegenstand einer Datenreplikationsoperation ist, und den Komprimierungsprüfparameter der Datei zuzuordnen, sowie, um den Komprimierungsprüfparameter beim Ermitteln zu prüfen, ob als Teil der Datenreplikationsoperation eine Datenkomprimierung der Datei durchzuführen ist.
  • Daher führt das Datenreplikationsmodul 120 die Datenreplikationsoperation unter der Steuerung der Replikationssteuerlogik 122 zum Beispiel dann durch, wenn auf einem Server 104 (Quell-Datenverarbeitungseinheit) eine Datenreplikationsoperation zum Replizieren von Daten über das Netzwerk 102 auf einen entfernt angeordneten Server 106 (Ziel-Datenverarbeitungseinheit) ausgelöst wird. Als Teil der durch die Replikationssteuerlogik 122 durchgeführten Steuerungsoperationen liest die Replikationssteuerlogik 122 die erweiterten Attribute und/oder Parameter, die zu den auf den Server 106 zu replizierenden Dateien gehören, und ermittelt, ob auf der Grundlage der erweiterten Attribute und/oder Parameter eine Datenkomprimierung auf die Dateien anzuwenden ist, die im Moment repliziert werden. Wie oben erwähnt, weisen die erweiterten Attribute und/oder Parameter einen Komprimierungsverhältnisverlauf M(n) auf, bei dem n die Anzahl von Datenreplikationsoperationen ist, zu denen Komprimierungsverhältnisinformationen im Komprimierungsverhältnisverlauf M verwaltet werden, z. B. die letzten N Replikationsoperationen. Hierbei weist die Replikationssteuerlogik 122 Logik zum Erzeugen statistischer Messgrößen der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf M(n) auf und verwendet anschließend diese statistischen Messgrößen, um zu ermitteln, ob als Teil des Datenreplikationsmoduls 120 eine Komprimierung auf die Dateien angewendet werden sollte. Darüber hinaus weist die Replikationssteuerlogik 122 Logik auf, um den Komprimierungsprüfparameter der Dateien zu prüfen und daraus zu ermitteln, ob als Teil der Datenreplikationsoperation eine Komprimierung angewendet werden sollte, unabhängig davon, ob die statistische Messgröße des Komprimierungsverhältnisverlaufs M(n) anzeigt, dass eine Komprimierung angewendet werden sollte. Dies gewährleistet, dass der Komprimierungsverhältnisverlauf M(m) bei den Dateien, bei denen ermittelt wurde, dass sie nicht von einer Komprimierung als Teil des Replikationsprozesses profitieren, nach wie vor in regelmäßigen Abständen mit deren Komprimierungsverhältnisinformationen aktualisiert wird, sodass dynamische Bedingungen berücksichtigt werden, die sich darauf auswirken können, ob während eines nachfolgenden Datenreplikationsprozesses eine Komprimierung auf die Dateien anzuwenden ist.
  • 2 ist ein beispielhaftes Blockschema eines beispielhaften Datenverarbeitungssystems, bei dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Das Datenverarbeitungssystem 200 ist ein Beispiel eines Computers wie beispielsweise des Clients 110 in 1, in dem sich durch einen Computer nutzbarer Programmcode oder durch einen Computer nutzbare Anweisungen befinden können, die die Prozesse veranschaulichender Ausführungsformen der vorliegenden Erfindung realisieren.
  • Im dargestellten Beispiel nutzt das Datenverarbeitungssystem 200 eine Hub-Architektur mit einem North-Bridge- und Speichercontroller-Hub (North Bridge and Memory Controller Hub, NB/MCH) 202 und einem South-Bridge- und Eingabe/Ausgabe-Controller-Hub (South Bridge and input/output (I/O) Controller Hub, SB/ICH) 204. Eine Verarbeitungseinheit 206, ein Hauptspeicher 208 und ein Grafikprozessor 210 sind mit dem North-Bridge- und Speichercontroller-Hub 202 verbunden. Der Grafikprozessor 210 kann über einen AGP-Anschluss (AGP = Accelerated Graphics Port) mit dem NB/MCH 202 verbunden sein.
  • Im dargestellten Beispiel ist ein LAN-Adapter (LAN = Local Area Network, lokales Netzwerk) 212 mit dem SB/ICH 204 verbunden. Ein Audioadapter 216, ein Tastatur- und Mausadapter 220, ein Modem 222, ein Nur-Lese-Speicher (ROM) 224, ein Festplattenlaufwerk (HDD) 226, ein CD-ROM-Laufwerk 230, USB-Anschlüsse (USB Universal Serial Bus) und andere Datenübertragungsanschlüsse 232 sowie PCI/PCIe-Einheiten (PCI = Peripheral Component Interconnect, PCIe = Peripheral Component Interconnect Express) 234 sind über einen Bus 238 und 240 mit dem SB/ICH 204 verbunden. Zu PCI/PCIe-Einheiten können zum Beispiel Ethernet-Adapter, Zusatzkarten und PC-Karten für Notebook-Computer gehören. Beim PCI-System wird eine Steuereinheit für den Kartenbus verwendet, bei PCIe jedoch nicht. Beim ROM 224 kann es sich zum Beispiel um ein Flash-BIOS-System (BIOS = Binary Input/Output System) handeln.
  • Das Festplattenlaufwerk 226 und das CD-ROM-Laufwerk 230 sind über den Bus 240 mit dem SB/ICH 204 verbunden. Beim Festplattenlaufwerk 226 und beim CD-ROM-Laufwerk 230 kann zum Beispiel eine IDE-Schnittstelle (IDE = Integrated Drive Electronics) oder eine SATA-Schnittstelle (SATA = Serial Advanced Technology Attachment) verwendet werden. Eine SIO-Einheit (SIO = Super I/O) 236 kann mit dem SB/ICH 204 verbunden sein.
  • Auf der Verarbeitungseinheit 206 wird ein Betriebssystem ausgeführt. Das Betriebssystem koordiniert verschiedene Komponenten im Datenverarbeitungssystem 200 in 2 und stellt die Steuerung für diese Komponenten bereit. Bei einem Client kann als Betriebssystem ein handelsübliches Betriebssystem wie zum Beispiel Microsoft® Windows 7® ausgeführt werden. Ein objektorientiertes Programmiersystem wie zum Beispiel das Programmiersystem JavaTM kann in Verbindung mit dem Betriebssystem ausgeführt werden und stellt dem Betriebssystem Aufrufe aus JavaT-Programmen oder JavaTM-Anwendungen bereit, die auf dem Datenverarbeitungssystem 200 ausgeführt werden.
  • Als Server kann das Datenverarbeitungssystem 200 zum Beispiel ein Computersystem des Typs IBM eServerTM System p®, ein auf einem PowerTM-Prozessor beruhendes Computersystem oder dergleichen sein, auf dem das Betriebssystem Advanced Interactive Executive (AIX®) oder das Betriebssystem LINUX® ausgeführt wird. Bei dem Datenverarbeitungssystem 200 kann es sich um ein symmetrisches Multiprozessorsystem (SMP) mit einer Mehrzahl von Prozessoren in der Verarbeitungseinheit 206 handeln. Alternativ kann ein System mit einem einzigen Prozessor verwendet werden.
  • Anweisungen für das Betriebssystem, das objektorientierte Programmiersystem und Anwendungen oder Programme befinden sich auf Speichereinheiten wie zum Beispiel auf dem Festplattenlaufwerk 226 und können zur Ausführung durch die Verarbeitungseinheit 206 in den Hauptspeicher 208 geladen werden. Die Prozesse veranschaulichender Ausführungsformen der vorliegenden Erfindung können durch die Verarbeitungseinheit 206 unter Verwendung von durch einen Computer nutzbarem Programmcode durchgeführt werden, der sich in einem Hauptspeicher wie zum Beispiel dem Hauptspeicher 208, dem ROM 224 oder in einer oder mehreren Peripherieeinheiten 226 und 230 befinden kann.
  • Ein Bussystem wie zum Beispiel der in 2 gezeigte Bus 238 oder Bus 240 kann aus einem oder mehreren Bussen bestehen. Selbstverständlich kann das Bussystem mithilfe einer beliebigen Art von Datenaustauschstruktur bzw. Datenaustauscharchitektur realisiert sein, die eine Übertragung von Daten zwischen verschiedenen Komponenten oder Einheiten bereitstellt, die mit der Struktur bzw. Architektur verbunden sind. Eine Datenaustauscheinheit wie zum Beispiel der Modem 222 oder der Netzwerkadapter 212 aus 2 kann eine oder mehrere Einheiten aufweisen, die zum Senden und Empfangen von Daten verwendet werden. Bei einem Hauptspeicher kann es sich zum Beispiel um den Hauptspeicher 208, den ROM 224 oder einen Cache handeln, wie er zum Beispiel im NB/MCH 202 in 2 zu finden ist.
  • Dem Fachmann wird klar sein, dass die Hardware in den 1 und 2 je nach Realisierungsform variieren kann. Andere interne Hardware- oder Peripherieeinheiten wie zum Beispiel Flash-Speicher, gleichwertige nicht flüchtige Speicher oder optische Plattenlaufwerke und dergleichen können zusätzlich oder anstelle der in den 1 und 2 dargestellten Hardware verwendet werden. Außerdem können die Prozesse der veranschaulichenden Ausführungsformen im Gegensatz zu dem zuvor erwähnten symmetrischen Multiprozessorsystem auf ein Mehrprozessor-Datenverarbeitungssystem angewendet werden, ohne vom Grundgedanken und Schutzbereich der vorliegenden Erfindung abzuweichen.
  • Darüber hinaus kann das Datenverarbeitungssystem 200 die Form einer beliebigen Anzahl unterschiedlicher Datenverarbeitungssysteme annehmen, unter anderem die Form von Client-Datenverarbeitungseinheiten, Server-Datenverarbeitungseinheiten, eines Tablet-Computers, eines Notebook-Computers, eines Telefons oder einer anderen Datenaustauscheinheit, eines Personal Digital Assistant (PDA) oder ähnlicher Einheiten. Bei einigen veranschaulichenden Ausführungsformen kann das Datenverarbeitungssystem 200 eine transportable Datenverarbeitungseinheit sein, die mit Flash-Speicher ausgestattet ist, um nicht flüchtige Speicher zum Beispiel zum Speichern von Betriebssystemdateien und/oder vom Benutzer erzeugten Daten bereitzustellen. Im Grunde genommen kann es sich bei dem Datenverarbeitungssystem 200 um ein beliebiges bekanntes oder später entwickeltes Datenverarbeitungssystem ohne architektonische Einschränkung handeln.
  • 3 ist ein beispielhaftes Funktionsblockschema, das die hauptsächlichen Funktionselemente zum Durchführen einer Datenreplikationsoperation gemäß einer veranschaulichenden Ausführungsform zeigt. Die in 3 dargestellten Elemente können beispielsweise in einer Replikationssteuerlogik 122 und/oder einer Datenkomprimierungslogik 124 des Datenreplikationsmoduls 120 in 1 realisiert sein. Die Elemente in 3 können als spezialisierte Hardwareeinheiten einer Datenverarbeitungseinheit realisiert sein, als Mehrzweckhardwareeinheiten, die Softwareanweisungen ausführen und somit so konfiguriert sind, dass die Operationen gemäß einer oder mehreren der veranschaulichenden Ausführungsformen durchgeführt werden, oder als beliebige Kombination aus spezialisierten Hardwareeinheiten und Mehrzweckhardwareeinheiten, die Softwareanweisungen ausführen. Bei einer veranschaulichenden Ausführungsform wird angenommen, dass die Elemente in 3 als Softwareanweisungen/Daten realisiert sind, die – wie zum Beispiel in 2 in den Hauptspeicher 208 geladen und durch die Verarbeitungseinheiten 206 ausgeführt – in den Speicher geladen und durch einen oder mehrere Prozessoren einer Datenverarbeitungseinheit ausgeführt/verarbeitet werden.
  • Wie in 3 dargestellt, wird eine Datei 310 oder ein anderer Datenabschnitt, der Gegenstand der Datenreplikation ist, durch eine Replikationssteuerlogik 320 eines Datenreplikationsmoduls 300 analysiert, wenn zum Beispiel als Reaktion auf ein Ereignis, auf eine von einem Benutzer eingeleitete Anforderung zur Durchführung einer Datenreplikation oder auf einen Zeitplan zur Datenreplikation eine Datenreplikationsoperation oder ein Datenreplikationsprozess eingeleitet wird. Obwohl in 3 eine einzelne Datei 310 dargestellt ist, sollte jedoch klar sein, dass die Datenreplikationsoperation mit einer Mehrzahl von Dateien oder Datenabschnitten durchgeführt werden kann und die hierin beschriebenen Prozesse und Operationen auf jede Datei oder jeden Datenabschnitt angewendet werden können, der Gegenstand einer Datenreplikationsoperation ist.
  • Der Datei 310 zugehörig sind ein Kompressionsverhältnisverlauf 312 und ein Kompressionsverhältnis-Prüfparameter 314, zum Beispiel in Form von erweiterten Attributen oder Parametern der Datei 310. Im Komprimierungsverhältnisverlauf 312 sind für die Datei 310 N Komprimierungsverhältniswerte für die letzten N Datenreplikationsoperationen gespeichert, bei denen eine Datenkomprimierung genutzt wurde, d. h. einen Verlauf von M(0) bis M(N – 1) Komprimierungsverhältniswerten. Die Komprimierungsverhältniswerte können in einem beliebigen geeigneten Format gespeichert werden. Bei einer veranschaulichenden Ausführungsform werden die Komprimierungsverhältniswerte als gerundete Ganzzahlwerte gespeichert, die Prozentsätze des Komprimierungsverhältnisses darstellen, wobei die veranschaulichenden Ausführungsformen jedoch nicht darauf beschränkt sind und eine beliebige Darstellung verwendet werden kann, ohne vom Grundgedanken und Schutzbereich der vorliegenden Erfindung abzuweichen.
  • Als Komprimierungsverhältnis-Prüfparameter 314 wird ein Datums-/Uhrzeitwert für den Zeitpunkt gespeichert, zu dem eine Prüfung des Komprimierungsverhältnisses der Datei 310 unabhängig davon durchzuführen ist, ob die Replikationssteuerlogik 320 auf der Grundlage des Komprimierungsverhältnisverlaufs 312 feststellt, dass die Komprimierung der Datei 310 beim Durchführen der Datenreplikationsoperation angewendet werden sollte. Je nach der betreffenden gewünschten Realisierungsform kann der Komprimierungsverhältnis-Prüfparameter 314 viele unterschiedliche Formen annehmen, gibt aber im Allgemeinen einen Zeitpunkt, eine Anzahl von Datenreplikationsoperationen oder andere Auslösekriterien zum Prüfen des Komprimierungsverhältnisses der zugehörigen Datei 310 an. Bei einer veranschaulichenden Ausführungsform gibt der Komprimierungsverhältnis-Prüfparameter 314 entweder ein bestimmtes Datum und/oder eine bestimmte Uhrzeit, eine Anzahl von Datenreplikationsoperationen, eine abgelaufene Zeit oder dergleichen an, wann die nächste Prüfung des Komprimierungsverhältnisses stattfinden sollte. Der Wert im Komprimierungsverhältnis-Prüfparameter 314 kann mit einem aktuellen Datum/einer aktuellen Uhrzeit verglichen werden, im Laufe der Zeit über Instanzen von Datenreplikationsoperation heruntergezählt werden oder es kann in einer beliebigen anderen Art ermittelt werden, ob die im Komprimierungsverhältnis-Prüfparameter 314 angegebenen Auslösekriterien erfüllt sind und folglich eine Prüfung des Komprimierungsverhältnisses eingeleitet wird. Bei einer veranschaulichenden Ausführungsform ist der Komprimierungsverhältnis-Prüfparameter 314 ein Zeitstempel einer zukünftigen Zeit, zu der die Prüfung des Komprimierungsverhältnisses durchzuführen ist, und eine Prüfparameter-Auswertelogik 328 vergleicht diesen Zeitstempel mit einem aktuellen Zeitstempel, und wenn der aktuelle Zeitstempel gleich dem Zeitstempel des Komprimierungsverhältnis-Prüfparameters 314 ist oder diesen überschreitet, wird die Operation zur Prüfung des Komprimierungsverhältnisses eingeleitet.
  • Der Datei 310 sind somit gemäß einer veranschaulichenden Ausführungsform zwei neue Attribute 312 und 314 zugeordnet, wie aus der folgenden Tabelle hervorgeht:
    Komprimierungsverhältnisverlauf M(n) First-in-First-out (FIFO) mit n Komprimierungsverhältnissen der Datei. M(0) enthält das Komprimierungsverhältnis der jüngsten Replikation und M(n – 1) weist das älteste Komprimierungsverhältnis von vor n Replikationen auf. Ein Komprimierungsverhältnis kann eine Ganzzahl zwischen 1 und 100 sein, die einen Prozentsatz der durch die Datenkomprimierung erzielten Verringerung der Datengröße wiedergibt. Jedes M(i) beträgt lediglich 1 Byte, und bei N = 1000 beträgt die Gesamtgröße von M lediglich 1 kB. Dieser Wert ist klein genug, um in einem erweiterten Attribut der Datei gespeichert werden zu können.
    Komprimierungsverhältnis-Prüfparameter prüf_datum Datum/Uhrzeit zum Prüfen des Komprimierungsverhältnisses der zugehörigen Datei, sodass die Datei an diesem Datum/zu dieser Uhrzeit oder danach als Teil der Datenreplikationsoperation übertragen wird, wobei die Komprimierung und das Komprimierungsverhältnis für diese Datei in M(n) aktualisiert werden.
    Tabelle 1: Neue Dateiattribute zum Steuern der Komprimierung während der Replikation
  • Wie in 3 dargestellt, enthält das Datenreplikationsmodul 300 die Replikationssteuerlogik 320, die wiederum eine Komprimierungsverhältnis-Statistiklogik 322, eine Schwellenwert-Auswertelogik 324, eine Logik 326 zur Einstellung des Komprimierungsverhältnis-Prüfparameters und eine Logik 328 zur Auswertung des Komprimierungsverhältnis-Prüfparameters aufweist. Die Komprimierungsverhältnis-Statistiklogik 322 erzeugt auf der Grundlage der Komprimierungsverhältnisse, die im Komprimierungsverhältnisverlauf 312 der Datei 310 gespeichert sind, statistische Messgrößen bzw. Werte. Die Komprimierungsverhältnis-Statistiklogik 322 kann einen beliebigen Wert zur Auswertung und Verwendung durch die Logiken 324 und 236 erzeugen, damit diese auf der Grundlage einer ermittelten Schwankung der Komprimierungsverhältnisse der Datei 310 ihre Operationen des Auswertens der Werte gegenüber einem Schwellenwert und des Ermittelns eines geeigneten Komprimierungsverhältnis-Prüfparameters durchführen können. Bei einer veranschaulichenden Ausführungsform erzeugt die Komprimierungsverhältnis-Statistiklogik 322 einen Durchschnitt der Komprimierungsverhältnisse M(n) im Komprimierungsverhältnisverlauf 312 und eine Standardabweichung der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf 312. Der Durchschnitt der Komprimierungsverhältnisse wird verwendet, um das Komprimierungsverhältnis für eine nächste Datenreplikationsoperation vorherzusagen. Die Standardabweichung der Komprimierungsverhältnisse wird verwendet, um festzustellen, wie das Komprimierungsverhältnis der Datei 310 verteilt ist, und um zu ermitteln, wie der Komprimierungsverhältnis-Prüfparameter 314 der Datei 310 eingestellt werden muss. Wenn zum Beispiel die Standardabweichung nahezu 0 beträgt, weisen die Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf 312 eine geringe Schwankung auf (schwanken nicht sehr stark) und können daher leicht vorhergesagt werden. Wenn der Wert der Standardabweichung jedoch größer wird, werden stärkere Schwankungen der Komprimierungsverhältnisse festgestellt, und deren Vorhersage wird schwieriger. Daher ist eine Standardabweichung mit einem niedrigeren Wert ein Hinweis auf eine weniger häufige Notwendigkeit zur Prüfung des Komprimierungsverhältnisses der Datei 310, während eine Standardabweichung mit einem höheren Wert ein Hinweis auf eine Notwendigkeit ist, das Komprimierungsverhältnis der Datei 310 häufiger zu prüfen.
  • Daher erzeugt die Komprimierungsverhältnis-Statistiklogik 322 gemäß einer veranschaulichenden Ausführungsform zwei statistische Werte, wie in der folgenden Tabelle dargestellt:
    Durchschnitt von M(n) Dieser Wert wird verwendet, um das Komprimierungsverhältnis für eine nächste Datenreplikation vorherzusagen.
    Standardabweichung von M(n) Dieser Wert wird verwendet, um zu ermitteln, wie das Komprimierungsverhältnis der Datei verteilt ist. Beträgt dieser Wert 0, wird angenommen, dass das Komprimierungsverhältnis der Datei nicht sehr stark schwankt und im Allgemeinen vorhersagbar ist. Mit größer werdendem Wert wird es schwieriger, das Komprimierungsverhältnis vorherzusagen.
    Tabelle 2: Statistische Messgrößen auf der Grundlage des Komprimierungsverhältnisverlaufs der Datei
  • Die Komprimierungsverhältnis-Statistiklogik 322 stellt den Durchschnitt der Komprimierungsverhältnisse, d. h. den Durchschnitt von M(n), der Schwellenwert-Auswertelogik 324 bereit, die den Durchschnitt der Komprimierungsverhältnisse mit einem oder mehreren Schwellenwerten vergleicht, um zu ermitteln, ob während der aktuellen Datenreplikationsoperation eine Datenkomprimierung angewendet werden sollte. Wenn zum Beispiel das aus den Komprimierungsverhältnissen im Komprimierungsverhältnisverlauf 312 ermittelte durchschnittliche Komprimierungsverhältnis der Datei 310 größer als der Schwellenwert T oder gleich diesem ist, sollte die Datei 310 ohne Komprimierung auf das Ziel-Datenverarbeitungssystem repliziert werden, da dies gegenüber der Datenreplikation mit Komprimierung als schneller vorhergesagt wird, d. h., über die Datenkomprimierung wird vorhergesagt, dass sie die Datei 310 nicht so wesentlich komprimiert, dass der Aufwand der Datenkomprimierungsoperation hinsichtlich Zeit und Ressourcen nicht aufgewogen wird, der zur Durchführung der Datenkomprimierung benötigt wird.
  • Wenn der Durchschnitt der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf 312 kleiner als der Schwellenwert T ist, wird festgestellt, dass eine Datenreplikation mit Komprimierung schneller als eine Datenreplikation ohne Komprimierung ist. Das heißt, es wird festgestellt, dass die Vorteile einer Datenkomprimierung, d. h. Verringerung der Datengröße, den zusätzlichen Aufwand zur Durchführung der Datenkomprimierungsoperation aufwiegen und daher eine Datenkomprimierung angewendet werden sollte. In einem derartigen Fall weist die Replikationssteuerlogik 320 eine Komprimierungslogik 330 an, einen oder mehrere Komprimierungsalgorithmen 332 auf die Datei 310 anzuwenden und die komprimierte Datei zur Replikation auf das Ziel-Datenverarbeitungssystem auszugeben. Außerdem weist die Komprimierungslogik 330 eine Komprimierungsverhältnislogik 334 auf, die das Komprimierungsverhältnis berechnet, das unter Verwendung des Komprimierungsalgorithmus 332 durch die Durchführung der Komprimierungsoperation an der Datei 310 erzielt wurde. Dieses Komprimierungsverhältnis wird anschließend in dem zur Datei 310 gehörenden Komprimierungsverhältnisverlauf 312 gespeichert. Wie oben angemerkt, kann der Komprimierungsverhältnisverlauf 312 eine Datenstruktur des Typs FIFO sein, bei der M(0) das jüngste Komprimierungsverhältnis ist und daher das durch die Komprimierungslogik 330 gesendete Komprimierungsverhältnis in diesem Eintrag gespeichert wird.
  • Falls die Schwellenwert-Auswertelogik 324 feststellt, dass als Teil der Datenreplikationsoperation keine Komprimierung auf die Datei 310 angewendet werden sollte, gibt das Datenreplikationsmodul 320 die nicht komprimierte Datei 310 zur Datenreplikation auf das Ziel-Datenverarbeitungssystem aus, sofern nicht der Komprimierungsverhältnis-Prüfparameter anzeigt, dass eine Komprimierung ungeachtet der Tatsache angewendet werden sollte, dass die Schwellenwert-Auswertelogik 324 anzeigt, dass keine Komprimierung angewendet werden sollte. Das heißt, dass in dem Fall, in dem die Schwellenwert-Auswertelogik 324 feststellt, dass das durchschnittliche Komprimierungsverhältnis größer als der Schwellenwert T oder gleich diesem ist, durch die Logik 328 zur Auswertung des Komprimierungsverhältnis-Prüfparameters eine zusätzliche Prüfung des Komprimierungsverhältnis-Prüfparameters durchgeführt wird, um zu ermitteln, ob die Prüfung des Komprimierungsverhältnisses ausgelöst werden muss. Wenn die Kriterien des Komprimierungsverhältnis-Prüfparameters 314 erfüllt sind, gibt die Replikationssteuerlogik 320 selbst dann, wenn die Schwellenwert-Auswertelogik 324 anzeigt, dass keine Komprimierung angewendet werden sollte, einen Befehl an die Komprimierungslogik 330 aus, um unter Verwendung der Komprimierungsalgorithmen 332 die Datenkomprimierungsoperation an der Datei 310 mit Berechnung des sich ergebenden Komprimierungsverhältnisses durch die Komprimierungsverhältnislogik 334 und Aktualisierung des Komprimierungsverhältnisverlaufs 312 durchzuführen.
  • Wie oben erwähnt, kann diese Prüfung der Auslösekriterien des Komprimierungsverhältnis-Prüfparameters 314 bei einer veranschaulichenden Ausführungsform ein Vergleichen eines im Komprimierungsverhältnis-Prüfparameter 314 angegebenen Zeitstempel mit einem aktuellen Zeitstempel aufweisen, um zu ermitteln, ob der aktuelle Zeitstempel gleich dem Zeitstempel des Komprimierungsverhältnis-Prüfparameters 314 ist oder einen späteren Zeitpunkt angibt. Wenn ja, sollte die Operation zur Prüfung des Komprimierungsverhältnisses eingeleitet werden. Wenn nicht, wird die Operation zur Prüfung des Komprimierungsverhältnisses nicht eingeleitet. Wenn die Operation zur Prüfung des Komprimierungsverhältnisses eingeleitet wird, wird außerdem durch die Logik 326 zur Einstellung des Prüfparameters eine Aktualisierung des Komprimierungsverhältnis-Prüfparameters 314 durchgeführt. Die Logik 326 zur Einstellung des Prüfparameters empfängt von der Komprimierungsverhältnis-Statistiklogik 322 die Schwankungsstatistik, z. B. die Messgröße der Standardabweichung der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf 312, und ermittelt eine Einstellung für den Komprimierungsverhältnis-Prüfparameter 314. Diese Einstellung kann auf dem aktuellen Zeitstempel beruhen, z. B. indem eine bestimmte Zeitdauer zum aktuellen Zeitstempel addiert wird, um einen Zeitstempel für ein zukünftiges Datum/eine zukünftige Uhrzeit zu erzeugen, an dem bzw. zu der die Operation zur Prüfung des Komprimierungsverhältnisses erneut ausgelöst werden sollte.
  • Wie oben erwähnt, kann die Logik 326 zur Einstellung des Prüfparameters bei einer veranschaulichenden Ausführungsform eine Funktion D(s) nutzen, die eine Anzahl von Tagen zurückgibt, an denen die Prüfung des Komprimierungsverhältnisses nicht ausgeführt wird, d. h. eine Anzahl von Tagen bis zur nächsten Prüfung des Komprimierungsverhältnisses. Der Eingangswert dieser Funktion ist die Standardabweichung s des Komprimierungsverhältnisverlaufs M(n) 312 der Datei 310. Wenn die Schwankung der Komprimierungsverhältnisse in M(n) sehr klein ist, wird angenommen, dass das Komprimierungsverhältnis ziemlich konstant ist, und der Komprimierungsprüfprozess muss nicht häufig eingeleitet werden. Wenn andererseits festgestellt wird, dass die Komprimierungsverhältnisse in M(n) stark schwanken, wird angenommen, dass sich das Komprimierungsverhältnis drastisch ändert, und daher sollte die Operation zur Prüfung des Komprimierungsverhältnisses häufiger eingeleitet werden. Eine maximale Zeitdauer oder Anzahl von Datenreplikationsoperationen oder dergleichen kann für die Operation zur Prüfung des Komprimierungsverhältnisses eingestellt werden, und die Funktion D(s) kann diesen maximalen Wert aufnehmen. Wenn zum Beispiel bei einer Realisierungsform die Datei 310 innerhalb der nächsten 30 Tage zu prüfen ist (d. h., 30 Tage ist die maximale Zeitdauer), kann D(s) definiert werden als D(s) = ((50– s)150)·30. Bei Verwendung dieser Funktion D(s) kann der Komprimierungsverhältnis-Prüfparameter 314 prüf_datum gefüllt werden, indem
    prüf_datum = D(s) + aktueller_zeitstempel eingestellt wird. Dieses prüf_datum kann im Zusammenhang mit der Datei 310 als Komprimierungsprüfparameter 314 gespeichert werden.
  • Daher ermöglichen die Mechanismen der veranschaulichenden Ausführungsformen eine dynamische Ermittlung, ob auf der Grundlage eines Verlaufs von Komprimierungsverhältnissen, die bei zurückliegenden Datenreplikationsoperationen bei der Datei bzw. bei dem Datenabschnitt erzielt wurden, eine Datenkomprimierung auf eine Datei oder einen Datenabschnitt angewendet werden muss. Infolgedessen können Instanzen erkannt werden, bei denen eine Datenkomprimierung die Datenreplikationsoperation nicht nennenswert verbessert, und eine Datenkomprimierung kann vermieden werden. Somit wird jede Datenreplikationsoperation in der bestmöglichen Zeit bei optimaler Verwendung von Ressourcen durchgeführt.
  • Zur weiteren Veranschaulichung der Funktionsweise veranschaulichender Ausführungsformen sollen die folgende beispielhafte Gruppe von Dateien und die Werte, Statistiken und Komprimierungsverhältnis-Prüfparameter der entsprechenden Komprimierungsverhältnisverläufe betrachtet werden:
    Datei M(0) M(1) M(2) M(3) M(4) Durchschnitt Standardabweichung D(s)
    Datei 1 30% 32% 24% 42% 42% 34% 7,04 25,77
    Datei 2 10% 74% 65% 8% 13% 34% 29,17 12,50
    Datei 3 34% 34% 34% 34% 34% 34% 0 30
    Datei 4 100% 100% 1% 1% 1% 40,6% 48,5 (48,499...) 0,9
    Tabelle 3: Beispiel mit Verläufen von Dateikomprimierungsverhältnissen, Statistiken und Prüfwerten
  • Bei diesem Beispiel wird die oben beschriebene Funktion D(s) verwendet und ein Bereich von Komprimierungsverhältnissen angenommen, der von 0% bis 100% reicht, wobei 0% für eine optimal komprimierte Datei steht und 100% bedeuten, dass keine Komprimierung erzielt wurde. Für die Zwecke dieses Beispiels wird ein Schwellenwert T von 40% angenommen. Wie in Tabelle 3 dargestellt, wurde auf der Grundlage des Vergleichs mit dem Schwellenwert T festgestellt, dass lediglich Datei 4 eine Datei ist, die ohne Komprimierung übertragen werden sollte, da ihr durchschnittliches Komprimierungsverhältnis gleich oder größer als T ist. Die Operation zur Prüfung des Komprimierungsverhältnisses für Datei 4 wird jedoch alle 0 Tage durchgeführt, d. h. jeden Tag, und somit bei der nächsten Datenreplikationsoperation. Der Grund hierfür liegt darin, dass die Standardabweichung der Komprimierungsverhältnisse M(0)–M(4) der Datei 4 ziemlich groß ist. Obwohl bei den anderen Dateien wegen der Tatsache, dass ihre durchschnittlichen Komprimierungsverhältnisse unter dem Schwellenwert T liegen, eine Komprimierung angewendet wird, wenn sie einer Datenreplikationsoperation unterzogen werden, werden ihre Komprimierungsverhältnisse auf der Grundlage der durch die Standardabweichung angegebenen Schwankung ihrer Komprimierungsverhältnisse zu verschiedenen Zeiten geprüft. Beispielsweise wird bei Datei 1 ihr Komprimierungsverhältnis nach 25 Tagen geprüft, bei Datei 2 wird ihr Komprimierungsverhältnis nach 12 Tagen geprüft und bei Datei 3 wird ihr Komprimierungsverhältnis nach 30 Tagen geprüft.
  • Der Unterschied bei den Prüfzeiten beruht auf der Schwankung der Komprimierungsverhältnisse, wobei zu erkennen ist, dass die Schwankung bei Datei 3 sehr klein ist und somit die Prüfung nicht sehr oft durchgeführt werden muss, aber durch den oben erwähnten Maximalwert von 30 Tagen begrenzt ist. Die Schwankung des Komprimierungsverhältnisses bei Datei 2 ist viel größer als bei Datei 3, und somit wird die Prüfoperation viel öfter durchgeführt. Die Schwankung bei Datei 1 ist größer als die bei Datei 3, aber kleiner als die bei Datei 2, und somit wird die Prüfoperation weniger oft als bei Datei 2, aber öfter als bei Datei 3 durchgeführt.
  • Somit ordnen gemäß einer veranschaulichenden Ausführungsform die Mechanismen der veranschaulichenden Ausführungsform jeder Datei einen Komprimierungsverhältnisverlauf M(n) und einen Komprimierungsverhältnis-Prüfparameter prüf_datum zu. Die Mechanismen der veranschaulichenden Ausführungsform weisen ferner Elemente zum Ermitteln einer ersten statistischen Messgröße wie zum Beispiel eines Durchschnitts der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf M(n) auf, um das Komprimierungsverhältnis eines nächsten Replikationsprozess vorherzusagen. Die Mechanismen der veranschaulichenden Ausführungsformen weisen ferner Elemente zum Berechnen einer zweiten statistischen Messgröße der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf M(n) wie zum Beispiel einer Standardabweichung M auf, um zu ermitteln, wie die Komprimierungsverhältnisse verteilt sind, und um Informationen über die Veränderlichkeit der Komprimierungsverhältnisse bei den N letzten Replikationsprozessen bereitzustellen. Diese zweite statistische Messgröße wird verwendet, um die Häufigkeit zu ermitteln, mit der Prüfungen des Komprimierungsverhältnisses durchzuführen sind.
  • Die Mechanismen der veranschaulichenden Ausführungsform weisen ferner Elemente zum Einrichten und Nutzen eines oder mehrerer Schwellenwerte T auf, um zu ermitteln, wann die Komprimierung als Teil des Replikationsprozesses zu verwenden ist. Darüber hinaus weisen die Mechanismen der veranschaulichenden Ausführungsform Elemente zum Anwenden einer Funktion auf, z. B. der oben erwähnten Funktion D(s), um zu ermitteln, wie auf der Grundlage der zweiten statistischen Messgröße der Komprimierungsverhältnisse der Komprimierungsverhältnis-Prüfparameter, z. B. der Parameter prüf_datum, der Datei festgelegt werden soll. Die Mechanismen der veranschaulichenden Ausführungsformen weisen ferner Elemente zum Nutzen der oben aufgeführten Elemente auf, um zu jeder Datei, die Gegenstand eines Datenreplikationsprozesses ist, hauptsächlich auf der Grundlage des Komprimierungsverhältnisverlaufs und der ermittelten Häufigkeit zum Prüfen des Komprimierungsverhältnisses der Datei ein dynamisches Ermitteln zu ermöglichen, ob die Datenkomprimierung als Teil des Datenreplikationsprozesses zu verwenden ist. Somit können bei einer einzelnen Datenreplikationsoperation einige der Dateien komprimiert werden, während andere in Abhängigkeit von den Entscheidungen, die durch das Datenreplikationsmodul bei jeder der Dateien einzeln getroffen werden, unter Umständen nicht komprimiert werden.
  • 4 ist ein Flussdiagramm, das eine beispielhafte Operation zum Durchführen einer Datenreplikation gemäß einer veranschaulichenden Ausführungsform skizziert. Die in 4 skizzierte Operation kann beispielsweise durch die Logik eines Datenreplikationsmoduls gemäß einer veranschaulichenden Ausführungsform realisiert sein.
  • Wie in 4 dargestellt, beginnt die Operation durch Einleiten einer Datenreplikationsoperation (Schritt 410). Wie oben angemerkt, kann die Einleitung der Datenreplikationsoperation als Reaktion auf die Erkennung eines Ereignisses, einer durch einen Benutzer eingeleiteten Anforderung zur Durchführung einer Datenreplikation, eines geplanten Datenreplikationsereignisses oder dergleichen durchgeführt werden. Als Reaktion darauf, dass die Datenreplikationsoperation eingeleitet ist, werden der Komprimierungsverhältnisverlauf und der Komprimierungsverhältnis-Prüfparameter für die nächste Datei in der Datenreplikationsoperation gelesen (Schritt 420) und Statistiken auf der Grundlage des Komprimierungsverhältnisverlaufs erzeugt (Schritt 430). Es wird eine Ermittlung dahingehend vorgenommen, ob die Statistiken anzeigen, dass als Teil der Datenreplikationsoperation eine Datenkomprimierung auf die Datei angewendet werden sollte (Schritt 440). Wie oben erwähnt, kann dies bei einer veranschaulichenden Ausführungsform mit einem Vergleichen einer Statistik des Komprimierungsverhältnisverlaufs der Datei mit einem oder mehreren Schwellenwerten verbunden sein. Wenn die Statistiken anzeigen, dass eine Komprimierung angewendet werden sollte, werden die Datei komprimiert und auf die Ziel-Datenverarbeitungseinheit repliziert und der Komprimierungsverhältnisverlauf für die Datei aktualisiert (Schritt 450).
  • Wenn die Statistiken nicht anzeigen, dass Komprimierungen angewendet werden sollten, wird eine Ermittlung dahingehend vorgenommen, ob der Komprimierungsverhältnis-Prüfparameter anzeigt, dass eine Komprimierung angewendet werden sollte (Schritt 460). Wie oben erwähnt, kann dies mit einem Auswerten eines Komprimierungsverhältnis-Prüfparameters verbunden sein, um zu erkennen, ob eine Auslösebedingung des Komprimierungsverhältnis-Prüfparameters erfüllt ist, z. B. liegt eine aktuelle Uhrzeit nach einem Zeitstempel des Komprimierungsverhältnis-Prüfparameters. Wenn ja, wird die Datei komprimiert und auf das Ziel-Datenverarbeitungssystem repliziert, und der Komprimierungsverhältnisverlauf der Datei und der Komprimierungsverhältnis-Prüfparameter werden dementsprechend aktualisiert (Schritt 470). Wenn nicht, wird die Datei auf das Ziel-Datenverarbeitungssystem repliziert, ohne dass eine Komprimierung angewendet wird (Schritt 480).
  • Anschließend wird eine Ermittlung dahingehend vorgenommen, ob weitere Dateien vorliegen, die als Teil der Datenreplikationsoperation verarbeitet werden müssen. Wenn ja, kehrt die Operation zu Schritt 420 zurück, in dem der Prozess bei der nächsten Datei in der Datenreplikationsoperation wiederholt wird (Schritt 490). Liegen keine weiteren Dateien vor, endet die Operation.
  • 5 ist ein Flussdiagramm, das eine beispielhafte Operation zum Durchführen einer Datenreplikation bei einer einzelnen Datei gemäß einer weiteren veranschaulichenden Ausführungsform skizziert. Um noch einmal darauf hinzuweisen, die in 5 dargestellte Operation kann durch Logik eines Datenreplikationsmoduls realisiert sein und nutzt den Schwellenwert T, den Parameter prüf_datum, den Komprimierungsverhältnisverlauf M(n) und die Funktion D(s) zum Einstellen des Parameters prüf_datum wie oben beschrieben.
  • Wie in 5 dargestellt, beginnt die Operation wiederum mit der Einleitung einer Datenreplikationsoperation (Schritt 510), auf die ein Lesen eines Komprimierungsverhältnisverlaufs M(n) und eines Komprimierungsverhältnis-Prüfdatumparameters prüf_datum aus der Datei folgt (Schritt 520). Es wird eine Ermittlung dahingehend vorgenommen, ob der älteste Eintrag im Komprimierungsverhältnisverlauf (M(n) leer ist (Schritt 530). Falls der Eintrag leer ist, wird eine Komprimierung auf die Datei angewendet (Schritt 580). Dies gewährleistet in erster Linie, dass der Komprimierungsverhältnisverlauf gefüllt ist, bevor die Entscheidung getroffen wird, während einer Datenreplikationsoperation keine Komprimierung zu verwenden. Auf diese Weise wird ein vollständiger Verlauf von Komprimierungsverhältnissen für nachfolgende Entscheidungen bereitgestellt, um vollständige Informationen bereitzustellen, aufgrund deren zu entscheiden ist, ob eine Datenkomprimierung anzuwenden ist.
  • Wenn der letzte Eintrag M(n – 1) im Komprimierungsverhältnisverlauf nicht leer ist, wird eine Prüfung dahingehend vorgenommen, ob das prüf_datum älter als das aktuelle Datum ist (Schritt 540). Wenn ja, wird eine Komprimierung auf die Datei angewendet (Schritt 580). Wenn das prüf_datum nicht älter als das aktuelle Datum ist, wird der Durchschnitt der Komprimierungsverhältnisse im Komprimierungsverhältnisverlauf berechnet (Schritt 550). Wenn der Durchschnitt gleich dem oder größer als der Schwellenwert T ist, wird die Replikation der Datei ohne Komprimierung durchgeführt (Schritt 570). Wenn der Durchschnitt kleiner als ein eingerichteter Schwellenwert T ist (Schritt 560), wird die Replikation mit Datenkomprimierung der Datei durchgeführt (Schritt 580). Wenn eine Komprimierung angewendet wird, weil entweder M(n – 1) leer ist, dass prüf_datum älter als das aktuelle Datum ist oder der Durchschnitt der Komprimierungsverhältnisse kleiner als der Schwellenwert T ist, wird anschließend das Komprimierungsverhältnis, das durch Anwenden einer Datenkomprimierung auf die Datei erzielt wurde, in den Komprimierungsverhältnisverlauf übertragen (Schritt 590). Danach wird eine Ermittlung dahingehend vorgenommen, ob der letzte Eintrag im Komprimierungsverhältnisverlauf leer ist (Schritt 600). Wenn er leer ist, endet die Operation. Wenn er nicht leer ist, wird die Standardabweichung s der Komprimierungsverhältnisse berechnet, und der Parameter prüf_datum wird auf die Summe der Funktion D(s) und das aktuelle Datum gesetzt (Schritt 610).
  • Wie oben erwähnt sollte klar sein, dass die veranschaulichenden Ausführungsformen die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform oder einer Ausführungsform annehmen kann, die sowohl Hardware- als auch Softwareelemente enthält. Bei einer bevorzugten Ausführungsform sind die Mechanismen der veranschaulichenden Ausführungsformen in Software oder Programmcode realisiert, zu denen, ohne auf diese beschränkt zu sein, Firmware, residente Software, Mikrocode usw. gehören.
  • Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, enthält mindestens einen Prozessor, der über einen Systembus direkt oder indirekt mit Speicherelementen verbunden ist. Zu den Speicherelementen können lokale Speicher, die während der eigentlichen Ausführung des Programmcodes genutzt werden, Massenspeicher und Cache gehören, die eine zeitweilige Speichermöglichkeit für mindestens einen Teil des Programmcodes bereitstellen, um während der Ausführung die Anzahl der Codeabrufe aus dem Massenspeicher zu verringern.
  • Eingabe-/Ausgabe-Einheiten bzw. E/A-Einheiten (einschließlich und ohne auf diese beschränkt zu sein, Tastaturen, Anzeigeeinheiten, Zeigeeinheiten usw.) können entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein. Netzwerkadapter können ebenfalls mit dem System verbunden sein, sodass das Datenverarbeitungssystem über zwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen, entfernt angeordneten Druckern oder Speichereinheiten verbunden werden kann. Modems, Kabelmodems und Ethernet-Karten sind nur einige der gegenwärtig erhältlichen Arten von Netzwerkadaptern.
  • Die Beschreibung der vorliegenden Erfindung soll der Veranschaulichung und Beschreibung dienen und ist jedoch nicht vollständig oder auf die Erfindung in der offenbarten Form beschränkt. Für den Fachmann sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der beschriebenen Ausführungsformen darstellen würden. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken und die praktische Anwendung der Erfindung auf bestmögliche Weise zu erklären und anderen Fachleuten ein Verständnis dafür zu ermöglichen, dass verschiedene Ausführungsformen der Erfindung mit verschiedenen Modifikationen denkbar sind, die sich für die jeweils beabsichtigte Verwendung eignen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hier offenbarten Ausführungsform zu ermöglichen.

Claims (12)

  1. Verfahren in einem ersten Datenverarbeitungssystem zum Durchführen einer Datenreplikationsoperation, um Daten aus dem ersten Datenverarbeitungssystem auf ein zweites Datenverarbeitungssystem zu replizieren, wobei das Verfahren aufweist: Speichern, durch das erste Datenverarbeitungssystem, eines Komprimierungsverhältnisverlaufs im Zusammenhang mit Daten, die auf das zweite Datenverarbeitungssystem zu replizieren sind, wobei in dem Komprimierungsverhältnisverlauf für mindestens eine zuvor ausgeführte Datenreplikationsoperation mindestens ein Komprimierungsverhältnis gespeichert wird; Ermitteln, durch das erste Datenverarbeitungssystem, ob auf der Grundlage mindestens eines Komprimierungsverhältnisses im Komprimierungsverhältnisverlauf bei einer aktuellen Datenreplikationsoperation eine Datenkomprimierungsoperation auf die Daten angewendet werden sollte; als Reaktion auf ein Feststellen, dass eine Datenkomprimierung auf die Daten angewendet werden sollte, Durchführen, durch das Datenverarbeitungssystem, der Datenkomprimierungsoperation an den Daten und Durchführen der aktuellen Datenreplikationsoperation, um die komprimierten Daten auf das zweite Datenverarbeitungssystem zu replizieren; und als Reaktion auf ein Feststellen, dass keine Datenkomprimierung auf die Daten angewendet werden sollte, Durchführen, durch das Datenverarbeitungssystem, der aktuellen Datenreplikationsoperation, um die Daten ohne Komprimierung auf das zweite Datenverarbeitungssystem zu replizieren.
  2. Verfahren nach Anspruch 1, das als Reaktion auf ein Feststellen, dass auf die Daten eine Datenkomprimierung angewendet werden sollte, ferner aufweist: Berechnen eines aktuellen Komprimierungsverhältnisses für die Datenkomprimierungsoperation; und Aktualisieren der Datenstruktur des Komprimierungsverhältnisverlaufs auf der Grundlage des aktuellen Komprimierungsverhältnisses.
  3. Verfahren nach Anspruch 1, wobei der Komprimierungsverhältnisverlauf für die Daten nur ein jüngstes Komprimierungsverhältnis für eine jüngst zurückliegende ausgeführte Datenreplikationsoperation speichert.
  4. Verfahren nach Anspruch 1, wobei in dem Komprimierungsverhältnisverlauf auf der Grundlage einer Mehrzahl von Datenkomprimierungsoperationen, die als Teil einer Mehrzahl von zuvor ausgeführten Datenreplikationsoperationen zuvor an den Daten ausgeführt wurden, für die erzeugten Daten eine Mehrzahl von Komprimierungsverhältnissen gespeichert wird.
  5. Verfahren nach Anspruch 1, wobei es sich bei den Daten um eine Datei handelt und wobei der Komprimierungsverhältnisverlauf als erweitertes Attribut der Datei gespeichert wird.
  6. Verfahren nach Anspruch 5, wobei das erweiterte Attribut der Datei eine Mehrzahl von Ganzzahlwerten aufweist, wobei jeder Ganzzahlwert zu einer zuvor ausgeführten Datenreplikationsoperation gehört und ein Komprimierungsverhältnis für die zuvor ausgeführte Datenreplikationsoperation darstellt.
  7. Verfahren nach Anspruch 1, wobei ein Ermitteln, ob die Datenkomprimierungsoperation bei der aktuellen Datenreplikationsoperation auf die Daten angewendet werden sollte, ein Vergleichen des mindestens einen Komprimierungsverhältnisses mit einem Schwellenwert aufweist, und wobei festgestellt wird, dass die Datenkomprimierungsoperation als Reaktion darauf angewendet werden sollte, dass das mindestens eine Komprimierungsverhältnis eine vorgegebene Beziehung zum Schwellenwert hat.
  8. Verfahren nach Anspruch 1, wobei ein Ermitteln, ob die Datenkomprimierung bei der aktuellen Datenreplikationsoperation auf die Daten angewendet werden sollte, aufweist: Berechnen eines Wertes auf der Grundlage des mindestens einen Komprimierungsverhältnisses; Vergleichen des Wertes mit einem Schwellenwert; und Feststellen, dass die Datenkomprimierungsoperation bei der aktuellen Datenreplikationsoperation auf die Daten als Reaktion darauf angewendet werden sollte, dass der Wert eine vorgegebene Beziehung zum Schwellenwert hat.
  9. Verfahren nach Anspruch 1, das ferner aufweist: Speichern, in Zusammenhang mit den Daten, eines Komprimierungsverhältnis-Prüfparameters, der ein Datum und/oder eine Uhrzeit angibt, an dem bzw. zu der ein Komprimierungsverhältnis der Daten zu prüfen ist; und als Reaktion darauf, dass der Komprimierungsverhältnis-Prüfparameter ein Datum und/oder eine Uhrzeit vor einem aktuellen Datum und/oder einer aktuellen Uhrzeit anzeigt, Feststellen, dass die Datenkomprimierungsoperation bei der aktuellen Datenreplikationsoperation auf die Daten angewendet werden sollte.
  10. Verfahren nach Anspruch 9, wobei der Komprimierungsverhältnis-Prüfparameter auf der Grundlage einer Funktion berechnet wird, die als Reaktion darauf, dass die Unterschiede zwischen Komprimierungsverhältnissen in dem mindestens einen Komprimierungsverhältnis relativ konstant sind, einen größeren zeitlichen Unterschied ab einem gegenwärtigen Datum bzw. ab einer gegenwärtigen Uhrzeit berechnet, und wobei die Funktion als Reaktion darauf, dass die Unterschiede zwischen Komprimierungsverhältnissen in dem mindestens einen Komprimierungsverhältnis relativ ungleich sind, einen kleineren zeitlichen Unterschied ab einem gegenwärtigen Datum bzw. ab einer gegenwärtigen Uhrzeit berechnet.
  11. Computerprogrammprodukt, das ein computerlesbares Speichermedium mit einem darin gespeicherten computerlesbaren Programm aufweist, wobei das computerlesbare Programm bei Ausführung auf einer Datenverarbeitungseinheit bewirkt, dass die Datenverarbeitungseinheit: einen Komprimierungsverhältnisverlauf im Zusammenhang mit Daten speichert, die auf ein Datenverarbeitungssystem zu replizieren sind, wobei in dem Komprimierungsverhältnisverlauf für mindestens eine zuvor ausgeführte Datenreplikationsoperation mindestens ein Komprimierungsverhältnis gespeichert wird; ermittelt, ob auf der Grundlage mindestens eines Komprimierungsverhältnisses im Komprimierungsverhältnisverlauf bei einer aktuellen Datenreplikationsoperation eine Datenkomprimierungsoperation auf die Daten angewendet werden sollte; als Reaktion auf ein Feststellen, dass eine Datenkomprimierung auf die Daten angewendet werden sollte, die Datenkomprimierungsoperation an den Daten und die aktuelle Datenreplikationsoperation durchführt, um die komprimierten Daten auf das Datenverarbeitungssystem zu replizieren; und als Reaktion auf ein Feststellen, dass keine Datenkomprimierung auf die Daten angewendet werden sollte, die aktuelle Datenreplikationsoperation durchführt, um die Daten ohne Komprimierung auf das Datenverarbeitungssystem zu replizieren.
  12. Vorrichtung, die aufweist: einen Prozessor; und einen mit dem Prozessor verbundenen Speicher, wobei der Speicher Anweisungen aufweist, die bei Ausführung durch den Prozessor bewirken, dass der Prozessor: einen Komprimierungsverhältnisverlauf im Zusammenhang mit Daten speichert, die auf ein Datenverarbeitungssystem zu replizieren sind, wobei in dem Komprimierungsverhältnisverlauf für mindestens eine zuvor ausgeführte Datenreplikationsoperation mindestens ein Komprimierungsverhältnis gespeichert wird; ermittelt, ob auf der Grundlage mindestens eines Komprimierungsverhältnisses im Komprimierungsverhältnisverlauf bei einer aktuellen Datenreplikationsoperation eine Datenkomprimierungsoperation auf die Daten angewendet werden sollte; als Reaktion auf ein Feststellen, dass eine Datenkomprimierung auf die Daten angewendet werden sollte, die Datenkomprimierungsoperation an den Daten und die aktuelle Datenreplikationsoperation durchführt, um die komprimierten Daten auf das Datenverarbeitungssystem zu replizieren; und als Reaktion auf ein Feststellen, dass keine Datenkomprimierung auf die Daten angewendet werden sollte, die aktuelle Datenreplikationsoperation durchführt, um die Daten ohne Komprimierung auf das Datenverarbeitungssystem zu replizieren.
DE102016221813.1A 2015-12-07 2016-11-08 Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses Active DE102016221813B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/960,557 2015-12-07
US14/960,557 US11281691B2 (en) 2015-12-07 2015-12-07 Data replication based on compression ratio history

Publications (2)

Publication Number Publication Date
DE102016221813A1 true DE102016221813A1 (de) 2017-06-08
DE102016221813B4 DE102016221813B4 (de) 2024-05-29

Family

ID=58159698

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016221813.1A Active DE102016221813B4 (de) 2015-12-07 2016-11-08 Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses

Country Status (4)

Country Link
US (1) US11281691B2 (de)
CN (1) CN106844090B (de)
DE (1) DE102016221813B4 (de)
GB (1) GB2546163B (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10324635B1 (en) * 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10310951B1 (en) 2016-03-22 2019-06-04 EMC IP Holding Company LLC Storage system asynchronous data replication cycle trigger with empty cycle detection
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US9959073B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Detection of host connectivity for data migration in a storage system
US10095428B1 (en) 2016-03-30 2018-10-09 EMC IP Holding Company LLC Live migration of a tree of replicas in a storage system
US9959063B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Parallel migration of multiple consistency groups in a storage system
US10013200B1 (en) 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes
US10048874B1 (en) 2016-06-29 2018-08-14 EMC IP Holding Company LLC Flow control with a dynamic window in a storage system with latency guarantees
US9983937B1 (en) 2016-06-29 2018-05-29 EMC IP Holding Company LLC Smooth restart of storage clusters in a storage system
US10152232B1 (en) 2016-06-29 2018-12-11 EMC IP Holding Company LLC Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system
US10083067B1 (en) 2016-06-29 2018-09-25 EMC IP Holding Company LLC Thread management in a storage system
US10715618B2 (en) * 2016-12-12 2020-07-14 Hughes Network Systems, Llc Compressibility estimation for lossless data compression
US10747638B2 (en) * 2018-04-18 2020-08-18 Oracle International Corporation Computing memory health metrics
CN109558088B (zh) * 2018-12-03 2021-12-17 郑州云海信息技术有限公司 一种压缩方法、系统、设备及计算机可读存储介质
US10732884B1 (en) * 2019-03-28 2020-08-04 International Business Machines Corporation Implementing redundant array of independent disks (RAID) arrays having compressed data stored therein
CN111935261B (zh) * 2020-07-30 2023-08-08 北京达佳互联信息技术有限公司 应答消息处理方法、装置、电子设备及存储介质
US11675809B2 (en) * 2021-03-02 2023-06-13 International Business Machines Corporation Replicating data changes using multiple storage devices and tracking records of pending data changes stored on the storage devices
US11836388B2 (en) * 2021-04-21 2023-12-05 EMC IP Holding Company LLC Intelligent metadata compression
US11687560B2 (en) 2021-07-16 2023-06-27 International Business Machines Corporation Database replication using adaptive compression
US11791835B1 (en) 2022-06-13 2023-10-17 International Business Machines Corporation Compression improvement in data replication
CN116860183B (zh) * 2023-09-04 2023-12-01 北京安天网络安全技术有限公司 一种数据存储方法、电子设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664763B1 (en) * 2003-12-17 2010-02-16 Symantec Operating Corporation System and method for determining whether performing a particular process on a file will be useful
US7719443B1 (en) 2008-06-27 2010-05-18 Emc Corporation Compressing data in a continuous data protection environment
CN102469142A (zh) 2010-11-16 2012-05-23 英业达股份有限公司 重复数据删除程序的数据传输方法
WO2013136339A1 (en) * 2012-03-15 2013-09-19 Hewlett-Packard Development Company, L.P. Regulating replication operation
US8949488B2 (en) 2013-02-15 2015-02-03 Compellent Technologies Data replication with dynamic compression
US9052828B2 (en) 2013-05-31 2015-06-09 International Business Machines Corporation Optimal volume placement across remote replication relationships
GB2533342A (en) 2014-12-17 2016-06-22 Ibm Checkpointing module and method for storing checkpoints

Also Published As

Publication number Publication date
GB201620659D0 (en) 2017-01-18
GB2546163B (en) 2017-12-06
CN106844090A (zh) 2017-06-13
US20170161348A1 (en) 2017-06-08
GB2546163A (en) 2017-07-12
DE102016221813B4 (de) 2024-05-29
CN106844090B (zh) 2021-06-08
US11281691B2 (en) 2022-03-22

Similar Documents

Publication Publication Date Title
DE102016221813B4 (de) Datenreplikation auf der Grundlage des Verlaufs des Komprimierungsverhältnisses
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE112013001905B4 (de) Erhöhte Inline-Deduplizierungseffizienz
DE112012004042T5 (de) Adaptives Ermitteln der Antwortzeitverteilung von Transaktionsprozessen
DE112017007224T5 (de) Momentaufnahmen-Verwaltung in einer Blockchain
DE60004507T2 (de) Schnelle gruppierung durch spärlich bestückte datensätze
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE102012216035A1 (de) Aktivierung der drosselung auf den durchschnittlichen schreibdurchsatz bei festkörperspeichereinheiten
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE102016216843A1 (de) Verteiltes Zusammenführen von Dateien
DE112012005639T5 (de) Auslösen von Fensterbedingungen bei Anwendungen des Stream-Computing
DE102014113692A1 (de) Verdichtung von longitudinalen epa für eine verbesserte phänotypisierung
DE102014116367A1 (de) Verwaltung von leistungsstufen von informationstechnologiesystemen
DE112008004014T5 (de) Analysieren von Serverkopien von Clientdateien
DE112015003926T5 (de) Publish/Subscribe-Messaging unter Verwendung einer Nachrichtenstruktur
DE112018003087T5 (de) On-chip-rauschunterdrückung oder -minderung der versorgungsspannung unter verwendung von lokalen detektionsschleifen in einem prozessorkern
DE102012204167A1 (de) Vorauslaufende genäherte Berechnungen
DE112011103367T5 (de) Replizieren von Daten
DE112021003747T5 (de) Erkennen von anomalien in einer netzwerktopologie
DE102012223167A1 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen
DE112012005557T5 (de) Erzeugen eines Code-Alphabets von Symbolen zum Erzeugen von Codewörtern für Wörter, die mit einem Programm verwendet werden
DE112013003300T5 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE112020004116T5 (de) Dynamisches abändern der parallelität einer aufgabe in einer pipeline

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R084 Declaration of willingness to licence
R016 Response to examination communication
R018 Grant decision by examination section/examining division