DE112014000251T5 - Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen - Google Patents

Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen Download PDF

Info

Publication number
DE112014000251T5
DE112014000251T5 DE112014000251.8T DE112014000251T DE112014000251T5 DE 112014000251 T5 DE112014000251 T5 DE 112014000251T5 DE 112014000251 T DE112014000251 T DE 112014000251T DE 112014000251 T5 DE112014000251 T5 DE 112014000251T5
Authority
DE
Germany
Prior art keywords
data
write operations
compression
arbitrarily selected
classification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112014000251.8T
Other languages
English (en)
Inventor
Lilia DEMIDOV
Sergey MARENKOV
Dmitry Sotnikov
Ronen Itshak Kat
Nir HALOWANI
Chaim Koifman
Jonathan Amit
George Goldberg
Danny Harnik
Oded Margalit
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 DE112014000251T5 publication Critical patent/DE112014000251T5/de
Ceased legal-status Critical Current

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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof

Abstract

Für eine Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen wird eine Entscheidung darüber, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken getroffen, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird. Die Schreiboperationen mit einem ähnlichen Fingerabdruck werden zusammen in einem ähnlichen Komprimierungsstrom komprimiert.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich allgemein auf Computer und im Besonderen auf eine Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen in einer Datenverarbeitungsumgebung.
  • HINTERGRUND
  • Computersysteme sind in der heutigen Gesellschaft weit verbreitet. Computersysteme sind am Arbeitsplatz, zuhause oder in der Schule zu finden. Computersysteme können Datenspeichersysteme oder Plattenspeichersysteme zum Verarbeiten und Speichern von Daten beinhalten. Datenspeichersysteme oder Plattenspeichersysteme werden zum Verarbeiten und Speichern von Daten verwendet. Ein Speichersystem kann ein oder mehrere Plattenlaufwerke beinhalten. Diese Datenverarbeitungssysteme erfordern üblicherweise eine große Menge an Datenspeicherplatz. Kundendaten oder Daten, die durch Benutzer innerhalb des Datenverarbeitungssystems erzeugt werden, nehmen einen großen Teil dieses Datenspeicherplatzes in Anspruch. Viele dieser Computersysteme beinhalten virtuelle Speicherkomponenten.
  • Datenkomprimierung ist weit verbreitet, um die Menge an Daten, die zum Verarbeiten, Übertragen oder Speichern eines bestimmten Informationsumfangs erforderlich sind, zu verringern. Bei Datenkomprimierung handelt es sich um das Codieren von Daten so, dass ihre Darstellung minimiert wird. Komprimierung kann zum Beispiel verwendet werden, um die Speicheranforderungen für Dateien zu verringern, um die Datenübertragungsgeschwindigkeit über einen Kanal zu erhöhen oder um Redundanz vor einer Verschlüsselung für erhöhte Sicherheit zu verringern.
  • KURZDARSTELLUNG
  • Bei einer Ausführungsform wird ein Verfahren zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen mithilfe einer Prozessoreinheit bereitgestellt. Für eine Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen wird eine Entscheidung darüber, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken getroffen, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird. Die Schreiboperationen mit einem ähnlichen Fingerabdruck werden zusammen in einem ähnlichen Komprimierungsstrom komprimiert.
  • Bei einer weiteren Ausführungsform wird ein Computersystem zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen bereitgestellt. Das Computersystem beinhaltet ein computerlesbares Medium und einen Prozessor, der mit dem computerlesbaren Medium in betriebsfähiger Verbindung steht. Für eine Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen entscheidet der Prozessor, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird. Die Schreiboperationen mit einem ähnlichen Fingerabdruck werden zusammen in demselben Komprimierungsstrom komprimiert.
  • Bei einer weiteren Ausführungsform wird ein Computerprogrammprodukt zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen bereitgestellt. In dem computerlesbaren Speichermedium sind Abschnitte des computerlesbaren Programmcodes gespeichert. Die Abschnitte des computerlesbaren Programmcodes beinhalten einen ersten ausführbaren Abschnitt, der durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken entscheidet, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird. Die Schreiboperationen mit einem ähnlichen Fingerabdruck werden zusammen in demselben Komprimierungsstrom komprimiert.
  • Zusätzlich zu der obigen beispielhaften Verfahrensausführungsform werden sonstige beispielhafte Ausführungsformen von Systemen und Computerprogrammprodukten bereitgestellt und bieten damit in Zusammenhang stehende Vorteile. Die obige Kurzdarstellung ist bereitgestellt worden, um eine Auswahl von Konzepten in vereinfachter Form vorzustellen, die im Folgenden in der ausführlichen Beschreibung näher beschrieben werden. Diese Kurzdarstellung soll weder dazu dienen, Schlüsselmerkmale oder Wesensmerkmale des beanspruchten Gegenstandes zu kennzeichnen, noch soll sie als Hilfsmittel zur Festlegung des Umfangs des beanspruchten Gegenstandes verwendet werden. Der beanspruchte Gegenstand ist nicht auf Implementierungen beschränkt, die beliebige oder sämtliche Nachteile beseitigen, die im Hintergrund angemerkt wurden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der Erfindung werden nun lediglich als Beispiel unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1 ein Blockschaubild ist, das eine Computerspeicherumgebung mit einer beispielhaften Speichereinheit veranschaulicht, in der Aspekte der vorliegenden Erfindung umgesetzt werden können;
  • 2 ein Blockschaubild ist, das eine Hardware-Struktur eines beispielhaften Datenspeichersystems in einem Computersystem veranschaulicht, in der Aspekte der vorliegenden Erfindung umgesetzt werden können;
  • 3 ein Ablaufplan ist, der ein beispielhaftes Verfahren zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen veranschaulicht, in dem Aspekte der vorliegenden Erfindung umgesetzt werden können; und
  • 4 ein Ablaufplan ist, der ein zusätzliches beispielhaftes Verfahren zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen veranschaulicht, in dem Aspekte der vorliegenden Erfindung umgesetzt werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie zuvor erwähnt, werden Computersysteme dazu verwendet, eine Vielfalt von Datentypen zu speichern und zu verwalten. Ähnliche Daten mithilfe desselben Komprimierungsstroms zu komprimieren, verbessert das Komprimierungsverhältnis und verringert den erforderlichen Speicherplatz. Wenn Daten geschrieben werden, selbst in aufeinanderfolgende Blöcke in einer Datei, ist der Inhalt jedoch nicht immer ähnlich. Man denke zum Beispiel an ein Dokument mit Abbildungen und Text. Wenn zwei getrennte Komprimierungsströme für das Dokument mit Abbildungen und Text erstellt werden und anschließend jeder Datentyp an einen eigenen Komprimierungsstrom gesendet wird, wird die Datenkomprimierung effizienter, und das Komprimierungsverhältnis der Daten insgesamt wird verbessert.
  • Bei einem Blockspeichersystem werden Datenblöcke ohne jegliche Angabe, welcher Datentyp geschrieben wird, in den Speicher geschrieben, und es erfolgt keine Angabe einer Beziehung zwischen Schreibvorgängen (z. B. Schreibvorgänge derselben Datei und Schreibvorgänge desselben Datentyps). Infolgedessen ist es beim Komprimieren einer Schreiboperation der Daten möglich, Daten zusammen zu komprimieren, die keine gemeinsamen Attribute (und keine Wiederholungen) aufweisen, was zu einem verschlechterten Komprimierungsverhältnis führt. Ein Blockspeichersystem weist keine Informationen über den Typ (oder die Klasse) der geschriebenen Daten auf und kann daraus keinen Vorteil ziehen. Zu Versuchen, dieses Problem zu lösen, zählt ein Ansatz zu einem Blocksystem unter Verwendung der räumlichen Lokalität des Raums der logischen Blockadressen (LBA). Jegliche Schreibvorgänge in einen bestimmten LBA-Bereich werden zusammen komprimiert, und dabei wird in gewisser Hinsicht eine Dateisystem-/Datenbank-Zuordnungsstrategie verfolgt – fortlaufendes Zuordnen von Dateien oder zusammengehöriger Dateien. Ein solcher Ansatz folgt der verbreiteten Heuristik, dass Daten in einer einzelnen Datei sich ähneln und in einem einzigen Komprimierungsstrom komprimiert werden sollten – einer Heuristik, die sich als nicht immer zutreffend herausgestellt hat, weshalb die Effizienz der Datenkomprimierung verringert ist. Insofern ist es erforderlich, in Echtzeit eine Entscheidung darüber zu treffen, welcher Komprimierungsstrom verwendet werden sollte, anderenfalls ist die Verwendung getrennter Komprimierungsströme nicht zweckmäßig. Infolgedessen sollte ein Entscheidungsalgorithmus, der auswählt, welcher Komprimierungsstrom verwendet werden sollte, schnell sein (wobei schnell ein relativer Begriff ist und es sich um einen Bruchteil der Zeit handeln sollte, die zum Komprimieren der Daten mithilfe der verfügbaren Hardware nach dem Stand der Technik erforderlich ist).
  • Folglich stellt die vorliegende Erfindung bei einer Ausführungsform ein Verfahren zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen mithilfe einer Prozessoreinheit bereit. Für eine Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen wird eine Entscheidung darüber, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken getroffen, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird. Die Schreiboperationen mit einem ähnlichen Fingerabdruck werden zusammen in einem ähnlichen Komprimierungsstrom komprimiert.
  • Wie im Folgenden beschrieben wird, „erkennt” die vorliegende Erfindung die „Klasse” (oder Merkmale) der Daten ohne vorherige Informationen (z. B. werden die Komprimierungsdomänen oder Komprimierungsströme klassifiziert). Die vorliegende Erfindung ermöglicht ein Schreiben in mehrere Komprimierungsströme auf Grundlage von Domänen von Daten. Die vorliegende Erfindung identifiziert und entscheidet, an welche Komprimierungsdomäne eine Schreiboperation weitergeleitet werden sollte, und entscheidet, welcher Komprimierungsstrom verwendet wird. Eine Komprimierungsdomäne kann einen oder mehrere aktive Komprimierungsströme aufweisen. Das Erkennungsverfahren liest kleine Fragmente der Eingabedaten, die beliebig ausgewählt werden, und berechnet einen Satz von Klassifizierungsheuristiken, sodass ein Fingerabdruck für die Daten erstellt wird. Daten mit ähnlichen Fingerabdrücken werden zusammen in einem einzigen Komprimierungsstrom komprimiert, wohingegen Schreiboperationen, die Daten mit unterschiedlichen Fingerabdrücken und Merkmalen (z. B. Abbildung gegenüber Text) enthalten, in unterschiedliche Komprimierungsströme aufgeteilt werden. Eine solche Klassifizierung und Aufteilung von Daten erhöht die Effizienz und ermöglicht eine bessere Verwendung eines verteilten Systems (d. h. mehrerer Komprimierungsknoten), indem zugelassen wird, dass mehr Knoten die Komprimierung der Daten unterstützen, indem ähnliche Daten in einem einzigen Strom gehalten werden, jedoch mehrere Maschinen verwendet werden. Der Identifizierungs- und Erkennungsalgorithmus ist schnell und muss die Daten nicht komprimieren, um zu entscheiden, welche Komprimierungsdomäne und welchen Komprimierungsstrom er verwenden sollte.
  • Unter Bezugnahme auf 1 wird nun eine beispielhafte Architektur 10 eines Datenspeichersystems in einer Datenverarbeitungsumgebung dargestellt. Das Computersystem 10 beinhaltet eine Zentraleinheit (central processing unit, CPU) 12, die mit einer oder mehreren Massenspeichereinheiten 14 und einer Speichereinheit 16 verbunden ist. Zu Massenspeichereinheiten können Festplattenlaufwerk(hard disk drive, HDD)-Einheiten, Halbleitereinheiten (solid-state devices, SSD) usw. zählen, die in einem redundanten Array unabhängiger Platten (redundant array of independent disks, RAID) konfiguriert sein können. Die ferner beschriebenen Sicherungsvorgänge können auf der/den Einheit(en) 14 ausgeführt werden, die sich in dem System 10 oder anderswo befinden. Die Speichereinheit 16 kann einen Speicher wie zum Beispiel einen elektrisch löschbaren, programmierbaren Festwertspeicher (electrically erasable programmable read only memory, EEPROM) oder einen Host zusammengehöriger Einheiten beinhalten. Die Speichereinheit 16 und die Massenspeichereinheit 14 sind über ein Signalträgermedium mit der CPU 12 verbunden. Darüber hinaus ist die CPU 12 durch einen Datenübertragungsanschluss 18 mit einem Datenübertragungsnetzwerk 20 verbunden, an das eine Mehrzahl von zusätzlichen Computersystemen 22 und 24 angeschlossen ist.
  • 2 ist ein beispielhaftes Blockschaubild 200, das eine Hardware-Struktur eines Datenspeichersystems in einem Computersystem gemäß der vorliegenden Erfindung veranschaulicht. Unter Bezugnahme auf 2 werden Host-Computer 210, 220, 225 dargestellt, die jeweils als Zentraleinheit zum Durchführen einer Datenverarbeitung als Teil eines Datenspeichersystems 200 fungieren. Bei den Hosts (physischen oder virtuellen Einheiten) 210, 220 und 225 kann es sich um eine oder mehrere neue physische Einheiten oder logische Einheiten handeln, um die Ziele der vorliegenden Erfindung in dem Datenspeichersystem 200 zu erreichen. Bei einer Ausführungsform kann, nur als Beispiel, ein Datenspeichersystem 200 als IBM® System StorageTM DS8000TM implementiert werden. Eine Netzwerkverbindung 260 kann ein Fibre-Channel-Fabric, eine Fibre-Channel-Punkt-zu-Punkt-Verbindung, ein(e) Fibre-Channel-over-Ethernet-Fabric oder -Punkt-zu-Punkt-Verbindung, eine FICON- oder ESCON-E/A-Schnittstelle, ein beliebiger sonstiger E/A-Schnittstellentyp, ein drahtloses Netzwerk, ein drahtgebundenes Netzwerk, ein LAN, ein WAN, heterogen, homogen, öffentlich (d. h. das Internet), privat oder eine beliebige Kombination davon sein. Die Hosts 210, 220 und 225 können lokal oder an einem oder mehreren Orten verteilt sein und können mit einer beliebigen Art von Fabric (oder Fabric-Channel) (in 2 nicht dargestellt) oder Netzwerkadapter 260 für die Speichersteuereinheit 240 wie zum Beispiel Fibre-Channel-, FICON-, ESCON-, Ethernet-, Lichtwellenleiter-, drahtlosen oder Koaxialadaptern ausgestattet sein. Das Datenspeichersystem 200 ist dementsprechend mit einem geeigneten Fabric (in 2 nicht dargestellt) oder Netzwerkadapter 260 für eine Datenübertragung ausgestattet. Das Datenspeichersystem 200 wird in 1 so dargestellt, dass es die Speichersteuereinheit 240 und einen Speicher 230 aufweist.
  • Um ein völliges Verständnis der hierin beschriebenen Verfahren zu erleichtern, wird die Speichersteuereinheit 240 in 2 als einzelne Verarbeitungseinheit dargestellt, die einen Mikroprozessor 242, einen Systemspeicher 243 und nichtflüchtigen Speicher (nonvolatile storage, „NVS”) 216 beinhaltet, die im Folgenden ausführlicher beschrieben werden. Es wird darauf hingewiesen, dass bei einigen Ausführungsformen die Speichersteuereinheit 240 aus mehreren Verarbeitungseinheiten besteht, die jeweils ihren eigenen Prozessorkomplex und Systemspeicher aufweisen und durch ein dediziertes Netzwerk innerhalb des Datenspeichersystems 200 untereinander verbunden sind. Der Speicher 230 kann aus einer oder mehreren Speichereinheiten wie zum Beispiel Speicher-Arrays bestehen, die durch ein Speichernetzwerk mit der Speichersteuereinheit 240 verbunden sind.
  • Bei einigen Ausführungsformen können die in dem Speicher 230 enthaltenen Einheiten in einer Loop-Architektur verbunden sein. Die Speichersteuereinheit 240 verwaltet den Speicher 230 und erleichtert das Verarbeiten von Schreib- und Lese-Anforderungen, die für den Speicher 230 bestimmt sind. Der Systemspeicher 243 der Speichersteuereinheit 240 speichert Programmbefehle und Daten, auf die der Prozessor 242 zum Ausführen von Funktionen und Verfahrensschritten, die dem Verwalten des Speichers 230 zugehörig sind, und zum Ausführen der Schritte und Verfahren der vorliegenden Erfindung in einer Computerspeicherumgebung zugreifen kann. Bei einer Ausführungsform beinhaltet der Systemspeicher 243 die Betriebs-Software 250 in einer Computerspeicherumgebung einschließlich der hierin beschriebenen Verfahren und Operationen, ist dieser zugehörig oder steht mit dieser in Verbindung. Wie in 2 dargestellt, kann der Systemspeicher 243 auch einen Cache 245 für den Speicher 230, der hierin auch als „Cache-Speicher” bezeichnet wird, zum Puffern von „Schreibdaten” und „Lesedaten”, die sich jeweils auf Schreib-/Lese-Anforderungen und ihre zugehörigen Daten beziehen, beinhalten oder mit diesem in Verbindung stehen. Bei einer Ausführungsform ist der Cache 245 in einer Einheit außerhalb des Systemspeichers 243 zugeordnet, bleibt jedoch durch einen Mikroprozessor 242 zugreifbar und kann dazu dienen, zusätzlich zum Ausführen der hierin beschriebenen Operationen zusatzliche Sicherheit vor Datenverlust bereitzustellen.
  • Bei einigen Ausführungsformen ist der Cache 245 mit einem flüchtigen Speicher und nichtflüchtigen Speicher implementiert und über einen lokalen Bus (in 2 nicht dargestellt) für eine verbesserte Leistungsfähigkeit des Datenspeichersystems 200 mit dem Mikroprozessor 242 verbunden. Auf den in der Datenspeicher-Steuereinheit enthaltenen NVS 216 kann durch den Mikroprozessor 242 zugegriffen werden, und er dient dazu, zusätzliche Unterstützung für Operationen und die Ausführung der vorliegenden Erfindung bereitzustellen, wie in sonstigen Figuren beschrieben. Der NVS 216 kann auch als „persistenter” Cache oder „Cache-Speicher” bezeichnet werden und ist mit einem nichtflüchtigen Speicher implementiert, der Strom von außen nutzen kann, um darin gespeicherte Daten zu halten. Der NVS kann für jegliche Zwecke, die geeignet sind, die Ziele der vorliegenden Erfindung zu erreichen, in und mit dem Cache 245 gespeichert sein. Bei einigen Ausführungsformen versorgt eine Notstromquelle (in 2 nicht dargestellt) wie zum Beispiel eine Batterie den NVS 216 im Fall eines Stromausfalls an dem Datenspeichersystem 200 mit genügend Strom, um die darin gespeicherten Daten zu halten. Bei bestimmten Ausführungsformen ist die Kapazität des NVS 216 geringer als oder gleich wie die Gesamtkapazität des Cache 245.
  • Der Speicher 230 kann physisch aus einer oder mehreren Speichereinheiten wie zum Beispiel Speicher-Arrays bestehen. Bei einem Speicher-Array handelt es sich um eine logische Gruppierung einzelner Speichereinheiten, wie zum Beispiel einer Festplatte. Bei bestimmen Ausführungsformen besteht der Speicher 230 aus einem JBOD(Just a Bunch of Disks, ein Bündel unabhängiger Platten)-Array oder einem RAID(Redundant Array of Independent Disks)-Array. Eine Sammlung physischer Speicher-Arrays kann ferner so kombiniert werden, dass eine Rangordnung ausgebildet wird, die den physischen Speicher von der logischen Konfiguration trennt. Der Speicherplatz bei einer Rangordnung kann logischen Datenträgern zugeordnet werden, die den in einer Schreib-/Lese-Anforderung angegebenen Speicherort definieren.
  • Bei einer Ausführungsform kann, nur als Beispiel, das Speichersystem, wie es in 2 dargestellt wird, einen logischen Datenträger oder einfach einen „Datenträger” beinhalten, der verschiedene Arten von Zuordnungen aufweisen kann. Speicher 230a, 230b und 230n werden als Ränge in dem Datenspeichersystem 200 dargestellt und werden hierin als Rang 230a, 230b und 230n bezeichnet. Die Ränge können sich lokal bei dem Datenspeichersystem 200 befinden oder sich an einem physisch entfernten Ort befinden. Mit anderen Worten, eine Steuereinheit für einen lokalen Speicher kann eine Verbindung mit einer Steuereinheit für einen entfernt angeordneten Speicher herstellen und einen Speicher an dem entfernten Ort verwalten. Der Rang 230a wird mit zwei vollständigen Datenträgern 234 und 236 wie auch mit einem Teildatenträger 232a konfiguriert dargestellt. Der Rang 230b wird mit einem weiteren Teildatenträger 232b dargestellt. Folglich ist der Datenträger 232 über die Ränge 230a und 230b hinweg zugeordnet. Der Rang 230n wird als vollständig dem Datenträger 238 zugeordnet dargestellt – das heißt, der Rang 230n bezieht sich auf den gesamten physischen Speicher für den Datenträger 238. Aus den obigen Beispielen wird ersichtlich, dass ein Rang so konfiguriert sein kann, dass er einen oder mehrere Teil- und/oder gesamte Datenträger beinhalten kann. Datenträger und Ränge können des Weiteren in sogenannte „Spuren” unterteilt werden, die einen festen Speicherblock darstellen. Eine Spur ist daher einem bestimmten Datenträger zugehörig und kann einen bestimmten Rang bekommen.
  • Die Speichersteuereinheit 240 kann ein Komprimierungsstrommodul 255, ein Datenkomprimierungsdomänenmodul 257 und ein Daten klassifizierungsmodul 259 in einer Computerspeicherumgebung beinhalten. Das Komprimierungsstrommodul 255, das Datenkomprimierungsdomänenmodul 257 und das Datenklassifizierungsmodul 259 können mit jeder einzelnen Komponente der Speichersteuereinheit 240, den Hosts 210, 220, 225 und den Speichereinheiten 230 gemeinsam arbeiten. Bei dem Komprimierungsstrommodul 255, dem Datenkomprimierungsdomänenmodul 257 und dem Datenklassifizierungsmodul 259 kann es sich strukturell um ein vollständiges Modul handeln, das so zusammen und gemeinsam miteinander arbeitet, dass eine solche Funktionalität durchgeführt wird, wie sie im Folgenden beschrieben wird, oder es kann sich um einzelne Module handeln. Das Komprimierungsstrommodul 255, das Datenkomprimierungsdomänenmodul 257 und das Datenklassifizierungsmodul 259 können sich auch in dem Cache 245 oder sonstigen Komponenten der Speichersteuereinheit 240 befinden, sodass sie die Ziele der vorliegenden Erfindung erreichen.
  • Die Speichersteuereinheit 240 kann mit einem Steuer-Switch 241 zum Steuern des Fibre-Channel-Protokolls für die Host-Computer 210, 220, 225, einem Mikroprozessor 242 zum Steuern sämtlicher Speichersteuereinheiten 240, einem nichtflüchtigen Steuerspeicher 243 zum Speichern eines Mikroprogramms (Betriebs-Software) 250 zum Steuern des Betriebs der Speichersteuereinheit 240, Daten zum Steuern und jeder Tabelle, das im Folgenden beschrieben wird, dem Cache 245 zum vorübergehenden Speichern (Puffern) von Daten und Puffern 244 zum Unterstützen des Cache 245 beim Lesen und Schreiben von Daten, einem Steuer-Switch 241 zum Steuern eines Protokolls zum Steuern einer Datenübertragung zu oder von den Speichereinheiten 230, dem Komprimierungsstrommodul 255, dem Datenkomprimierungsdomänenmodul 257 und dem Datenklassifizierungsmodul 259 aufgebaut sein, in dem Informationen festgelegt werden können. Mehrere Puffer 244 können mit der vorliegenden Erfindung in einer Datenverarbeitungsumgebung implementiert werden oder eine sonstige Funktionalität entsprechend den Mechanismen der veranschaulichten Ausführungsformen durchführen.
  • Bei einer Ausführungsform sind, nur als Beispiel, die Host-Computer oder eine oder mehrere physische oder virtuelle Einheiten 210, 220, 225 und die Speichersteuereinheit 240 durch einen Netzwerkadapter (dabei könnte es sich um einen Fibre Channel handeln) 260 als Schnittstelle, d. h. über einen Switch, der bisweilen als „Fabric” bezeichnet wird, verbunden. Bei einer Ausführungsform wird, nur als Beispiel, der Betrieb des in 2 dargestellten Systems beschrieben. Der Mikroprozessor 242 kann den Speicher 243 so steuern, dass er Befehisinformationen von der Host-Einheit (physisch oder virtuell) 210 und Informationen zum Identifizieren der Host-Einheit (physisch oder virtuell) 210 speichert. Der Steuer-Switch 241, die Puffer 244, der Cache 245, die Betriebs-Software 250, der Mikroprozessor 242, der Speicher 243, der NVS 216, das Komprimierungsstrommodul 255, das Datenkomprimierungsdomänenmodul 257 und das Datenklassifizierungsmodul 259 stehen miteinander in Verbindung und können getrennte Komponenten oder eine einzige Komponente sein. Darüber hinaus können mehrere, wenn nicht sämtliche der Komponenten wie zum Beispiel die Betriebs-Software 245 mit dem Speicher 243 in einer Computerspeicherumgebung enthalten sein. Zu für die vorliegende Erfindung geeigneten Zwecken können alle Komponenten innerhalb der Speichereinheit miteinander verknüpft sein und können miteinander in Verbindung stehen.
  • Unter Bezugnahme auf 3 wird nun ein beispielhaftes Verfahren 300 für eine Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen veranschaulicht. Das Verfahren 300 beginnt (Schritt 302) mit einem Entscheiden, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird (Schritt 304). Das Verfahren 300 komprimiert in einem Komprimierungsstrom diejenigen der Schreiboperationen zusammen, die einen ähnlichen Fingerabdruck aufweisen (Schritt 306). Das Verfahren 300 endet (Schritt 308).
  • Auf Grundlage des Obigen wird nun unter Bezugnahme auf 4 ein zusätzliches beispielhaftes Verfahren 400 für eine Echtzeitklassifizierung von Daten in Daten komprimierungsdomänen dargestellt. Zum Identifizieren und Entscheiden, an welche Komprimierungsdomänen eine Schreiboperation weitergeleitet werden sollte, und zum Entscheiden, welcher Komprimierungsstrom verwendet werden sollte, wie in 3 beschrieben, beginnt das Verfahren 400 (Schritt 402) mit einem Auswählen einer Datenstichprobe (z. B. einer kleinen Datenstichprobe, die eine vorgegebene Größe haben kann, die durch einen Benutzer definiert werden kann) des Eingabedatenpuffers (Schritt 404). Bei einer Ausführungsform kann es sich bei dem Eingabedatenpuffer um eine Anwendungsdatei oder einen Datenblock handeln. Außerdem kann es sich bei der ausgewählten Datenstichprobe um den gesamten Eingabepuffer, beliebig ausgewählte (oder vordefinierte) Sequenzen von Bytes aus dem Puffer mit einer vordefinierten oder vielleicht einer anpassbaren Größe (z. B. an die bisher als Stichprobe genommenen Daten anpassbar) handeln.
  • Das Verfahren 400 berechnet einen Fingerabdruck für die Daten durch Anwenden des Satzes von Heuristiken an der Datenstichprobe (Schritt 406). Die Heuristiken können sehr schnell berechnet werden (wobei schnell ein relativer Begriff im Vergleich mit der Zeit ist, die zum Komprimieren erforderlich ist), und die Heuristiken sind in der Lage anzugeben, welche Daten zusammen komprimiert werden sollten und welche Daten nicht zusammen komprimiert werden sollten. Der berechnete Fingerabdruck wird mit den Fingerabdrücken vorheriger Daten verglichen, die an jeden der aktiven/offenen Komprimierungsströme gesendet worden sind (Schritt 408). Auf Grundlage des Vergleichs werden Daten an die/den am besten passenden Komprimierungsdomäne/-strom gesendet, die/der ähnliche Daten komprimiert hat (entsprechend dem Abstand von dem Datenfingerabdruck) (Schritt 410). Der Begriff Abstand bezieht sich auf den Grad der Ähnlichkeit zwischen den Fingerabdrücken. Beispielsweise Berechnen des Hamming-Abstands zwischen dem aktuellen Fingerabdruck und den Fingerabdrücken der Daten, die durch jede(n) der Komprimierungsdomänen/-ströme komprimiert worden sind und Auswählen des Stroms mit dem kleinsten Abstand. Der Abstand zwischen den Fingerabdrücken kann als Abstandsvektor oder beliebige sonstige mathematische Vektorabstandsfunktionen berechnet werden. Alternativ kann das Verfahren 400 die Daten an eine neue Komprimierungsdomäne senden, wenn keine am besten passende Komprimierungsdomäne aktiv/offen ist (z. B. wird ein neuer Komprimierungsstrom erstellt) (Schritt 412). Das Verfahren 400 endet (Schritt 414).
  • Bei einer Ausführungsform kann es sich bei der Fingerabdruckheuristik um ein beliebiges und/oder eine Kombination der folgenden Beispiele handeln: (1) die Entropie der Stichprobendaten; (2) den Kernzeichensatz (Kernsatz) – den Satz (und die Größe) von Zeichen, die die Mehrzahl (die als vordefinierter Prozentsatz festgelegt wird) der Bytes in der Stichprobe bilden. Beispielsweise den Satz von Zeichen, die 90% der Stichprobe ausmachen; (3) ein vollständiges oder Teilhistogramm der Stichprobendaten oder des Kernsatzes einschließlich einer kompakten Form (weniger Bits zum Zählen) des Histogrammzählwerts; (4) Gruppen dominanter oder nichtdominanter Zeichen aus der Stichprobe; (5) einen Mittelwert, eine Streuung und/oder ein unterschiedliches Moment des Histogramms oder Kernsatzes; und (6) eine Angabe der in den Daten festgestellten Datenstruktur. Beispielsweise das Vorhandensein eines Headers(Joint Photographic Experts Group (JPEG)/Graphics Interchange Format (GIF)-Header), die Struktur der Daten oder das Vorhandensein von Trennzeichen.
  • Bei einer Ausführungsform besteht eine zusätzliche Möglichkeit für die Fingerabdruckheuristik darin, einige Similarity-Preserving-Hash(SPH)-Verfahren zu verwenden. Bei SPH handelt es sich um eine Funktion über einen Datensatz oder einen Teil des Datensatzes, wobei Datensätze mit gemeinsamen Zeichenfolgen auch einen ähnlichen Wert aufweisen. Beispielsweise kann beim Berechnen des Kernsatzes die vorliegende Erfindung den Kernsatz als 256 Bit langen Vektor betrachten (unter der Annahme, dass es sich bei dem Kernsatz um Zeichen handelt) und einen Fehlerkorrekturcode (error correcting code, ECC) auf den Kernsatz anwenden. Wenn zum Beispiel in einer Datei der Kernsatz A bis Z lautet und er in einem weiteren A bis Z ohne J lautet, würde sie folglich ein ECC als ähnlich befinden. Es ist außerdem zu beachten, dass sich Komprimierungsdomänen auf einer einzigen Maschine oder auf mehreren Maschinen befinden können, die zum Komprimieren der Daten zusammenarbeiten.
  • Wie für einen Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung eine reine Hardware-Ausführungsform, eine reine Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform annehmen, in der Software- und Hardware-Aspekte kombiniert werden, die sämtlich hierin verallgemeinernd als „Schaltung”, „Modul” oder „System” bezeichnet werden können.
  • Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
  • Es kann eine beliebige Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder um eine beliebige geeignete Kombination aus Obigen handeln, ohne auf diese beschränkt zu sein. Zu konkreteren Beispielen (einer nicht erschöpfenden Liste) des computerlesbaren Speichermediums würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (random access memory, RAM), ein Festwertspeicher (read-only memory, ROM), ein löschbarer, programmierbarer Festwertspeicher (erasable programmable read-only memory, EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine Magnetspeichereinhelt oder eine beliebige geeignete Kombination der Obigen. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Befehlsausführung bzw. in Verbindung mit diesen enthalten oder speichern kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann mithilfe eines beliebigen geeigneten Mediums übertragen werden, zum Beispiel über Funk, Kabel, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder über eine beliebige geeignete Kombination des Obigen, ohne darauf beschränkt zu sein. Computerprogrammcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben werden, zum Beispiel in einer objektorientierten Programmiersprache wie etwa Java, Smalltalk, C++ oder dergleichen und in herkömmlichen verfahrensorientierten Programmiersprachen wie zum Beispiel der Programmiersprache „C” oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, zum Teil auf dem Computer des Benutzers, als eigenständiges Software-Paket, zum Teil auf dem Computer des Benutzers und zum Teil auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jede Art von Netzwerk verbunden sein, zum Beispiel durch ein lokales Netzwerk (LAN) oder ein Weitverkehrs-Netzwerk (WAN), oder die Verbindung kann mit einem externen Computer (zum Beispiel über das Internet mithilfe eines Internet-Diensteanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung sind oben unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben worden. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogrammbefehle implementiert werden kann/können. Diese Computerprogrammbefehle können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Befehle, die über den Prozessor des Computers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Implementieren der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten so steuern kann, dass sie in einer bestimmten Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand (article of manufacture) erzeugen, der Befehle beinhaltet, die die/den Funktion/Vorgang implementieren, die/der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist. Die Computerprogrammbefehle können außerdem auf einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten geladen werden, um zu bewirken, dass eine Reihe von Schritten eines Vorgangs auf dem Computer, einer sonstigen programmierbaren Vorrichtung oder sonstigen Einheiten ausgeführt wird, um einen computerimplementierten Prozess zu erzeugen, sodass die auf dem Computer oder einer sonstigen programmierbaren Vorrichtung ausgeführten Befehle Prozesse bereitstellen, um die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Vorgänge zu implementieren.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Abschnitt eines Codes darstellen, der einen oder mehrere ausführbare Befehle zum Implementieren der angegebenen logischen Funktion(en) aufweist. Es ist außerdem zu beachten, dass bei einigen alternativen Implementierungen die in dem Block vermerkten Funktionen in einer anderen Reihenfolge als in den Figuren vermerkt auftreten können. Beispielsweise können je nach einbezogener Funktionalität zwei nacheinander dargestellte Blöcke sogar im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen in der umgekehrten Reihenfolge ausgeführt werden. Es ist ferner zu beachten, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne und Kombinationen von Blöcken in den Blockschaubildern und/oder in den Ablaufplänen durch Spezialsysteme auf Grundlage von Hardware, die die angegebenen Funktionen oder Vorgänge ausführen, oder durch Kombinationen von Spezial-Hardware und Computerbefehlen implementiert werden können.
  • Es sind zwar eine oder mehrere Ausführungsformen der vorliegenden Erfindung genau veranschaulicht worden, dem Fachmann ist jedoch ersichtlich, dass Modifizierungen und Anpassungen an diesen Ausführungsformen vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung, wie sie in den folgenden Ansprüchen dargelegt wird, abzuweichen.

Claims (20)

  1. Verfahren zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen durch eine Prozessoreinheit in einer Datenverarbeitungsumgebung, wobei das Verfahren aufweist: Entscheiden, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird; und zusammen Komprimieren in einem Komprimierungsstrom diejenigen der Schreiboperationen, die einen ähnlichen Fingerabdruck aufweisen.
  2. Verfahren nach Anspruch 1, das des Weiteren ein Aufteilen der Schreiboperationen, die unterschiedliche Fingerabdrücke aufweisen, in unterschiedliche Komprimierungsströme beinhaltet.
  3. Verfahren nach Anspruch 2, das des Weiteren ein Vergleichen jedes der Fingerabdrücke für jede der Schreiboperationen mit denjenigen der Schreiboperationen beinhaltet, die zuvor an jede der Datenkomprimierungsdomänen weitergeleitet worden waren.
  4. Verfahren nach Anspruch 3, das des Weiteren ein Senden der Schreiboperationen, die den ähnlichen Fingerabdruck aufweisen, an die Datenkomprimierungsdomäne beinhaltet, die ähnliche Daten der Schreiboperationen komprimiert.
  5. Verfahren nach Anspruch 4, das des Weiteren ein Senden der Schreiboperation an eine neue Datenkomprimierungsdomäne beinhaltet, wobei ein neuer Komprimierungsstrom erstellt wird.
  6. Verfahren nach Anspruch 1, das des Weiteren zum Berechnen des Satzes von Klassifizierungsheuristiken mithilfe einer Kombination von oder zumindest einer der Heuristiken beinhaltet: Entropie der beliebig ausgewählten Daten, eines Kernzeichensatzes und einer Größe von Zeichen, die eine Mehrzahl von Bytes in den beliebig ausgewählten Daten bilden, eines vollständigen oder Teilhistogramms der beliebig ausgewählten Daten oder des Kernzeichensatzes, von Gruppen dominanter Zeichen oder Gruppen nichtdominanter Zeichen der beliebig ausgewählten Daten, eines aus einem Mittelwert, einer Streuung und einem alternativen Moment des vollständigen oder Teilhistogramms oder des Kernzeichensatzes, und einer Angabe einer Datenstruktur der Daten.
  7. Verfahren nach Anspruch 1, das des Weiteren ein Verwenden eines Similarity Preserving Hash (SPH) zum Berechnen des Satzes von Klassifizierungsheuristiken beinhaltet.
  8. System zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen in einer Datenverarbeitungsumgebung, wobei das System aufweist: eine Prozessoreinheit, die in der Datenverarbeitungs-Speicherumgebung betriebsfähig ist, wobei die Prozessoreinheit: durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken, entscheidet, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird, und in einem Komprimierungsstrom diejenigen der Schreiboperationen zusammen komprimiert, die einen ähnlichen Fingerabdruck aufweisen.
  9. System nach Anspruch 8, wobei die Prozessoreinheit die Schreiboperationen, die unterschiedliche Fingerabdrücke aufweisen, in unterschiedliche Komprimierungsströme aufteilt.
  10. System nach Anspruch 9, wobei die Prozessoreinheit jeden der Fingerabdrücke für jede der Schreiboperationen mit denjenigen der Schreiboperationen vergleicht, die zuvor an jede der Datenkomprimierungsdomänen weitergeleitet worden waren.
  11. System nach Anspruch 10, wobei die Prozessoreinheit die Schreiboperationen, die den ähnlichen Fingerabdruck aufweisen, an die Datenkomprimierungsdomäne sendet, die ähnliche Daten der Schreiboperationen komprimiert.
  12. System nach Anspruch 11, wobei die Prozessoreinheit die Schreiboperation an eine neue Datenkomprimierungsdomäne sendet, wobei ein neuer Komprimierungsstrom erstellt wird.
  13. System nach Anspruch 8, wobei die Prozessoreinheit zum Berechnen des Satzes von Klassifizierungsheuristiken eine Kombination von oder zumindest eine der Heuristiken verwendet: Entropie der beliebig ausgewählten Daten, eines Kernzeichensatzes und einer Größe von Zeichen, die eine Mehrzahl von Bytes in den beliebig ausgewählten Daten bilden, eines vollständigen oder Teilhistogramms der beliebig ausgewählten Daten oder des Kernzeichensatzes, von Gruppen dominanter Zeichen oder Gruppen nichtdominanter Zeichen der beliebig ausgewählten Daten, eines aus einem Mittelwert, einer Streuung und einem alternativen Moment des vollständigen oder Teilhistogramms oder des Kernzeichensatzes, und einer Angabe einer Datenstruktur der Daten.
  14. System nach Anspruch 8, wobei die Prozessoreinheit einen Similarity Preserving Hash (SPH) zum Berechnen des Satzes von Klassifizierungsheuristiken verwendet.
  15. Computerprogrammprodukt zur Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen durch eine Prozessoreinheit, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, in dem computerlesbare Programmcodeabschnitte gespeichert sind, wobei die computerlesbaren Programmcodeabschnitte aufweisen: einen ersten ausführbaren Abschnitt, der durch Lesen beliebig ausgewählter Daten der Schreiboperationen zum Berechnen eines Satzes von Klassifizierungsheuristiken, entscheidet, an welche der Datenkomprimierungsdomänen Schreiboperationen weitergeleitet werden sollten, wodurch ein Fingerabdruck für jede der Schreiboperationen erstellt wird; und einen zweiten ausführbaren Abschnitt, der in einem Komprimierungsstrom diejenigen der Schreiboperationen zusammen komprimiert, die einen ähnlichen Fingerabdruck aufweisen.
  16. Computerprogrammprodukt nach Anspruch 15, das des Weiteren einen dritten ausführbaren Abschnitt beinhaltet, der die Schreiboperationen, die unterschiedliche Fingerabdrücke aufweisen, in unterschiedliche Komprimierungsströme aufteilt.
  17. Computerprogrammprodukt nach Anspruch 16, das des Weiteren einen vierten ausführbaren Abschnitt beinhaltet, der jeden der Fingerabdrücke für jede der Schreiboperationen mit denjenigen der Schreiboperationen vergleicht, die zuvor an jede der Datenkomprimierungsdomänen weitergeleitet worden waren.
  18. Computerprogrammprodukt nach Anspruch 17, das des Weiteren einen fünften ausführbaren Abschnitt beinhaltet, der die Schreiboperationen, die den ähnlichen Fingerabdruck aufweisen, an die Datenkomprimierungsdomäne sendet, die ähnliche Daten der Schreiboperationen komprimiert.
  19. Computerprogrammprodukt nach Anspruch 18, das des Weiteren einen sechsten ausführbaren Abschnitt beinhaltet, der die Schreiboperation an eine neue Datenkomprimierungsdomäne sendet, wobei ein neuer Komprimierungsstrom erstellt wird.
  20. Computerprogrammprodukt nach Anspruch 15, das des Weiteren einen dritten ausführbaren Abschnitt beinhaltet, der zum Berechnen des Satzes von Klassifizierungsheuristiken: eine Kombination von oder zumindest eine der Heuristken verwendet: einer Entropie der beliebig ausgewählten Daten, eines Kernzeichensatzes und einer Größe von Zeichen, die eine Mehrzahl von Bytes in den beliebig ausgewählten Daten bilden, eines vollständigen oder Teilhistogramms der beliebig ausgewählten Daten oder des Kernzeichensatzes, von Gruppen dominanter Zeichen oder Gruppen nichtdominanter Zeichen der beliebig ausgewählten Daten, eines aus einem Mittelwert, einer Streuung und einem alternativen Moment des vollständigen oder Teilhistogramms oder des Kernzeichensatzes, und einer Angabe einer Datenstruktur der Daten, und einen Similarity Preserving Hash (SPH) zum Berechnen des Satzes von Klassifizierungsheuristiken verwendet.
DE112014000251.8T 2013-01-10 2014-01-03 Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen Ceased DE112014000251T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/738,333 2013-01-10
US13/738,333 US9792350B2 (en) 2013-01-10 2013-01-10 Real-time classification of data into data compression domains
PCT/IB2014/058037 WO2014108818A1 (en) 2013-01-10 2014-01-03 Real-time classification of data into data compression domains

Publications (1)

Publication Number Publication Date
DE112014000251T5 true DE112014000251T5 (de) 2015-10-01

Family

ID=51061791

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014000251.8T Ceased DE112014000251T5 (de) 2013-01-10 2014-01-03 Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen

Country Status (6)

Country Link
US (1) US9792350B2 (de)
JP (1) JP6227007B2 (de)
CN (1) CN104919430B (de)
DE (1) DE112014000251T5 (de)
GB (1) GB2523943B (de)
WO (1) WO2014108818A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2888819B1 (de) * 2012-08-21 2020-09-16 EMC Corporation Formaterkennung für fragmentierte bilddaten
US9053121B2 (en) 2013-01-10 2015-06-09 International Business Machines Corporation Real-time identification of data candidates for classification based compression
US9792350B2 (en) 2013-01-10 2017-10-17 International Business Machines Corporation Real-time classification of data into data compression domains
US9564918B2 (en) 2013-01-10 2017-02-07 International Business Machines Corporation Real-time reduction of CPU overhead for data compression
US9798731B2 (en) * 2013-03-06 2017-10-24 Dell Products, Lp Delta compression of probabilistically clustered chunks of data
US9213715B2 (en) * 2013-06-03 2015-12-15 International Business Machines Corporation De-duplication with partitioning advice and automation
US9652152B2 (en) 2014-10-29 2017-05-16 Qualcomm Incorporated Efficient decompression locality system for demand paging
US9600420B2 (en) 2014-10-29 2017-03-21 Qualcomm Incorporated Reducing decompression time without impacting compression ratio
CN109716660B (zh) * 2017-01-24 2021-08-13 华为技术有限公司 数据压缩装置和方法
US10628058B1 (en) 2017-02-15 2020-04-21 Bank Of America Corporation System for electronic data verification, storage, and transfer
WO2019056358A1 (en) * 2017-09-25 2019-03-28 Intel Corporation EFFICIENT MEMORIZATION OF COMPUTER PROCESSOR DATA STRUCTURES IN COMPUTER MACHINE
CN109451866B (zh) * 2018-02-13 2023-06-16 北京小米移动软件有限公司 信息配置方法及装置、基站和用户设备
US10965786B2 (en) 2018-10-31 2021-03-30 At&T Intellectual Property I, L.P. Adaptive fixed point mapping for uplink and downlink fronthaul
CN109597572B (zh) * 2018-11-22 2022-05-03 上海新储集成电路有限公司 一种存储管理方法
CN109886862B (zh) * 2019-01-25 2023-01-17 上海赜睿信息科技有限公司 一种数据处理的方法及装置
US11209984B2 (en) 2019-02-18 2021-12-28 Silicon Motion, Inc. Method and apparatus for performing data-compression management in a storage server

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69323460T2 (de) 1992-09-07 1999-07-08 Denso Corp Kommunikationssystem
GB2270811B (en) 1992-09-17 1996-02-07 Sony Broadcast & Communication Video data compression
CA2108833A1 (en) 1992-10-22 1994-04-23 Masanori Ishii File compression processor
US5546477A (en) 1993-03-30 1996-08-13 Klics, Inc. Data compression and decompression
US5486826A (en) 1994-05-19 1996-01-23 Ps Venture 1 Llc Method and apparatus for iterative compression of digital data
US5701463A (en) * 1994-09-09 1997-12-23 Cheyenne Advanced Technology Limited Method of replacing the identity of a file with another as part of a file open request in a computer system
US5768445A (en) 1996-09-13 1998-06-16 Silicon Graphics, Inc. Compression and decompression scheme performed on shared workstation memory by media coprocessor
EP0965171B1 (de) * 1997-03-07 2005-11-30 Intelligent Compression Technologies Netzwerk zur datencodierung
US6339616B1 (en) 1997-05-30 2002-01-15 Alaris, Inc. Method and apparatus for compression and decompression of still and motion video data based on adaptive pixel-by-pixel processing and adaptive variable length coding
US6049797A (en) 1998-04-07 2000-04-11 Lucent Technologies, Inc. Method, apparatus and programmed medium for clustering databases with categorical attributes
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6195024B1 (en) 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US20010054131A1 (en) 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US6751354B2 (en) * 1999-03-11 2004-06-15 Fuji Xerox Co., Ltd Methods and apparatuses for video segmentation, classification, and retrieval using image class statistical models
US7069264B2 (en) * 1999-12-08 2006-06-27 Ncr Corp. Stratified sampling of data in a database system
AU2610701A (en) 2000-01-03 2001-07-16 Efeckta Technologies Corporation Efficient and lossless conversion for transmission or storage of data
US6731814B2 (en) 2000-05-01 2004-05-04 Xerox Corporation Method for compressing digital documents with control of image quality and compression rate
US6947483B2 (en) 2000-08-18 2005-09-20 Nortel Networks Limited Method, apparatus, and system for managing data compression in a wireless network
US20030030575A1 (en) 2001-05-07 2003-02-13 Harmonic Data Systems Ltd. Lossless data compression
US7461392B2 (en) 2002-07-01 2008-12-02 Microsoft Corporation System and method for identifying and segmenting repeating media objects embedded in a stream
CN100426861C (zh) * 2002-07-01 2008-10-15 微软公司 对嵌于媒介流中的重复对象提供用户控制的系统和方法
US7551787B2 (en) 2003-01-28 2009-06-23 International Business Machines Corporation Adaptive compression quality
US7197189B2 (en) 2003-05-15 2007-03-27 Hewlett-Packard Development Company, L.P. System and method having removable storage medium with data compression
US7565024B2 (en) 2003-12-19 2009-07-21 Intel Corporation Run length coding and decoding
US7281004B2 (en) 2004-02-27 2007-10-09 International Business Machines Corporation Method, system and program for optimizing compression of a workload processed by a database management system
US7774456B1 (en) * 2004-02-27 2010-08-10 Packeteer, Inc. Methods, apparatuses and systems facilitating classification of web services network traffic
US7574451B2 (en) 2004-11-02 2009-08-11 Microsoft Corporation System and method for speeding up database lookups for multiple synchronized data streams
US7653643B2 (en) 2005-03-24 2010-01-26 Microsoft Corporation Method and apparatus for compressing a data set
US7382376B2 (en) 2005-04-01 2008-06-03 Seiko Epson Corporation System and method for effectively utilizing a memory device in a compressed domain
CN100517979C (zh) 2005-10-10 2009-07-22 中兴通讯股份有限公司 一种数据压缩及解压缩方法
CN100546196C (zh) 2005-12-01 2009-09-30 武汉大学 一种二维矢量数据的压缩方法
US7773731B2 (en) 2005-12-14 2010-08-10 At&T Intellectual Property I, L. P. Methods, systems, and products for dynamically-changing IVR architectures
US8214530B2 (en) 2007-02-27 2012-07-03 Nec Corporation Data collection in which data is recompressed without conversion of code into symbol
US8295615B2 (en) 2007-05-10 2012-10-23 International Business Machines Corporation Selective compression of synchronized content based on a calculated compression ratio
CN100493197C (zh) 2007-05-24 2009-05-27 北京航空航天大学 一种面向图像压缩的小波基分类构造方法
US8238669B2 (en) * 2007-08-22 2012-08-07 Google Inc. Detection and classification of matches between time-based media
KR101503829B1 (ko) 2007-09-07 2015-03-18 삼성전자주식회사 데이터 압축 장치 및 방법
US7719443B1 (en) 2008-06-27 2010-05-18 Emc Corporation Compressing data in a continuous data protection environment
US8108442B2 (en) 2008-07-22 2012-01-31 Computer Associates Think, Inc. System for compression and storage of data
JP4303312B1 (ja) 2008-07-31 2009-07-29 国立大学法人広島大学 圧縮処理装置および圧縮処理方法
US8135762B2 (en) * 2008-09-15 2012-03-13 Bruce R. Backa System and method for determining true computer file type identity
US10430415B2 (en) 2008-12-23 2019-10-01 International Business Machines Corporation Performing predicate-based data compression
US7930436B1 (en) 2009-03-09 2011-04-19 Znosko Dmitry Y System and method for dynamically adjusting data compression parameters
IL197882A (en) 2009-03-24 2015-03-31 Oleg Litvak A method and device for compression of communication signals
US8676725B1 (en) * 2009-06-05 2014-03-18 Google Inc. Method and system for entropy-based semantic hashing
US8706727B2 (en) 2009-06-19 2014-04-22 Sybase, Inc. Data compression for reducing storage requirements in a database system
EP2493194A4 (de) 2009-10-22 2014-07-16 Univ Zhejiang Video- und bild-kodierungs-/dekodierungssystem auf basis der vorhersage räumlicher domänen
KR101643273B1 (ko) 2010-04-09 2016-08-01 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템
US8396905B2 (en) 2010-11-16 2013-03-12 Actifio, Inc. System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies
US8516580B2 (en) * 2011-04-27 2013-08-20 Owl Computing Technologies, Inc. Method and system for processing a file to identify unexpected file types
KR101862341B1 (ko) 2012-01-09 2018-05-30 삼성전자주식회사 데이터 압축 기능을 갖는 데이터 저장 장치
US9246511B2 (en) 2012-03-20 2016-01-26 Sandisk Technologies Inc. Method and apparatus to process data based upon estimated compressibility of the data
US9048862B2 (en) 2012-04-11 2015-06-02 Netapp, Inc. Systems and methods for selecting data compression for storage data in a storage system
US8712978B1 (en) 2012-06-13 2014-04-29 Emc Corporation Preferential selection of candidates for delta compression
US9053121B2 (en) 2013-01-10 2015-06-09 International Business Machines Corporation Real-time identification of data candidates for classification based compression
US9792350B2 (en) 2013-01-10 2017-10-17 International Business Machines Corporation Real-time classification of data into data compression domains
US9564918B2 (en) 2013-01-10 2017-02-07 International Business Machines Corporation Real-time reduction of CPU overhead for data compression

Also Published As

Publication number Publication date
GB2523943B (en) 2015-12-23
WO2014108818A1 (en) 2014-07-17
GB2523943A (en) 2015-09-09
JP6227007B2 (ja) 2017-11-08
US9792350B2 (en) 2017-10-17
US20140195499A1 (en) 2014-07-10
JP2016512625A (ja) 2016-04-28
CN104919430A (zh) 2015-09-16
GB201511837D0 (en) 2015-08-19
CN104919430B (zh) 2018-10-12

Similar Documents

Publication Publication Date Title
DE112014000251T5 (de) Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE112013001905B4 (de) Erhöhte Inline-Deduplizierungseffizienz
DE102013205069B4 (de) Erhöhte effizienz bei inline-deduplizierungen
DE112013000734B4 (de) Multiplex-Klassifizierung zum Komprimieren von Tabellendaten
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE112014000448T5 (de) Auszugabruf beruhend auf Ähnlichkeitssuche bei Datendeduplizierung
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112015005211T5 (de) Systeme und verfahren für die speicherfehler-verwaltung
DE112014003349T5 (de) Verfahren und Gerät zum Ausführen atomarer Schreibvorgänge
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE112010003262B4 (de) Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten
DE102013205738A1 (de) Erfassung von tabellengrenzen in datenblöcken zur kompression
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE112015005742B4 (de) Lastadaptiver algorithmus zum packen von daten
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112015003540T5 (de) Zwischenspeichertechnologien unter Einsatz von Datenkomprimierung
DE112017000167B4 (de) Verteilte Datendeduplizierung in einem Prozessorraster
DE102010053282A1 (de) Modifizierter B+ Baum zum Speichern von Nand-Speicher Umleitungszuordnungen
DE102017104073B4 (de) Verallgemeinertes Verifikationsverfahren für Schreiboperationen
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G06F0012020000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G06F0012080000

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R084 Declaration of willingness to licence
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final