DE102013205738A1 - Erfassung von tabellengrenzen in datenblöcken zur kompression - Google Patents

Erfassung von tabellengrenzen in datenblöcken zur kompression Download PDF

Info

Publication number
DE102013205738A1
DE102013205738A1 DE102013205738A DE102013205738A DE102013205738A1 DE 102013205738 A1 DE102013205738 A1 DE 102013205738A1 DE 102013205738 A DE102013205738 A DE 102013205738A DE 102013205738 A DE102013205738 A DE 102013205738A DE 102013205738 A1 DE102013205738 A1 DE 102013205738A1
Authority
DE
Germany
Prior art keywords
data
symbol
computer
sorting
compression
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
DE102013205738A
Other languages
English (en)
Inventor
Nir HALOWANI
Jonathan Amit
Demidov Lilia
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 DE102013205738A1 publication Critical patent/DE102013205738A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Daten werden unter Verwendung eines Suffixbaums in eine minimierte Datendarstellung umgesetzt durch Sortieren von Datenströmen gemäß symbolischen Darstellungen zum Bilden von Tabellengrenzen-Erzeugungsmustern. Die umgesetzten Daten sind für eine Rekonstruktion vollständig umkehrbar, während minimale Vorsatzinformationen gesichert werden.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Computer und insbesondere auf die Erfassung von Tabellengrenzen in Datenblöcken zur Kompression in einer Datenverarbeitungsumgebung.
  • Beschreibung des Standes der Technik
  • In der heutigen Gesellschaft sind Computersysteme allgemein üblich. Computersysteme findet man am Arbeitsplatz, zu Hause oder in der Schule. Zu Computersystemen können Datenspeichersysteme oder Plattenspeichersysteme zum Verarbeiten und Speichern von Daten gehören. Datenspeichersysteme oder Plattenspeichersysteme werden zum Verarbeiten und Speichern von Daten verwendet. Ein Speichersystem kann ein oder mehrere Plattenlaufwerke enthalten. Diese Datenverarbeitungssysteme erfordern üblicherweise einen umfangreichen Datenspeicher. Kundendaten oder Daten, die von Benutzern in dem Datenverarbeitungssystem erzeugt werden, belegen einen großen Teil dieses Datenspeichers. Viele dieser Computersysteme enthalten virtuelle Speicherkomponenten.
  • Datenkompression wird häufig dazu verwendet, den Umfang von Daten zu reduzieren, die erforderlich sind, um eine gegebene Menge von Informationen zu verarbeiten, zu übertragen oder zu speichern. Datenkompression ist die Codierung von Daten zur Minimierung ihrer Darstellung. Kompression kann z. B. verwendet werden, um die Speicheranforderungen für Dateien zu reduzieren, um die Datenübertragungsrate in einem Kanal zu vergrößern oder um die Redundanz vor einer Verschlüsselung für eine größere Sicherheit zu reduzieren.
  • KURZDARSTELLUNG DER BESCHRIEBENEN AUSFÜHRUNGSFORMEN
  • Datenverarbeitungssysteme werden verwendet, um eine Vielzahl von Datentypen zu speichern und zu verwalten, wie etwa so genannte „Tabellendaten”. Tabellendaten werden üblicherweise in Zeilen und Spalten organisiert, um gebräuchliche Tabellen zu bilden, die z. B. in relationalen Tabellen, Textverarbeitungsdokumenten, Arbeitsblättern oder arbeitsblattähnlichen Strukturen oder ähnlichen Datenbankstrukturen verwendet werden. Zur Bildung dieser Tabellen gehört eine Vielzahl von organisierten Arrays und Anordnungen für die Zeilen und Spalten. Die eigentliche physische Speicherung der Tabellendaten kann jedoch eine Vielzahl von Formen annehmen. Obwohl die logische Struktur der Tabellendaten mehrdimensional sein kann, können die Tabellendaten z. B. physisch in einem linearen Format, wie etwa in einem zeilenweisen oder spaltenweisen Format, gespeichert werden. In dem zeilenweisen Format werden Spaltenwerte einer Zeile aus der tabellenähnlichen Struktur in einer dauerhaften Speichereinrichtung fortlaufend gespeichert. Bei den meisten Dateien werden wichtige Informationen üblicherweise in Tabellenform gespeichert und angeordnet. Die Daten in den Tabellen können gespeichert und extrahiert werden. Die Identifizierung der Bildung der Daten in den Tabellen ist jedoch wesentlich für das Abfragen und Kombinieren der Daten mit Daten, bei denen andere unterschiedliche Managementsysteme verwendet werden. Gegenwärtig ist es infolge von verschiedenen Problemen schwierig, die Erfassung von Tabellengrenzen in den Datenblöcken zur Kompression zu verbessern.
  • Dementsprechend und im Hinblick auf das oben Gesagte werden verschiedene beispielhafte Ausführungsformen für Verfahren, Systeme und Computerprogrammprodukte zum Erfassen von Tabellengrenzen in Datenblöcken zur Kompression durch eine Prozessoreinheit in einer Datenverarbeitungsumgebung bereitgestellt. Bei einer Ausführungsform werden lediglich beispielhaft Daten unter Verwendung eines Suffixbaums in eine minimierte Datendarstellung umgesetzt, indem Datenströme gemäß symbolischen Darstellungen zum Bilden von Tabellengrenzen-Bildungsmustern sortiert werden. Die umgesetzten Daten sind für eine Rekonstruktion vollständig umkehrbar, während minimale Vorsatzinformationen gesichert werden.
  • Zusätzlich zu der vorhergehenden beispielhaften Ausführungsform des Verfahrens werden weitere beispielhafte Ausführungsformen von Systemen und Computerprogrammprodukten bereitgestellt und liefern ähnliche Vorteile. Die vorhergehende Darstellung wurde bereitgestellt, um eine Auswahl von Konzepten in einer vereinfachten Form vorzustellen, die nachfolgend in der ausführlichen Beschreibung weiter beschrieben werden. Es ist weder vorgesehen, dass diese Kurzdarstellung Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Gegenstands identifiziert, noch ist vorgesehen, dass sie als Hilfe beim Festlegen des Schutzumfangs des beanspruchten Gegenstands zu verwenden ist. Der beanspruchte Gegenstand ist nicht auf Umsetzungen beschränkt, die einige oder alle beim Hintergrund angegebenen Nachteile beheben.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Damit die Vorteile der Erfindung leicht verstanden werden, wird eine genauere Beschreibung der Erfindung, die oben kurz beschrieben wurde, durch Bezugnahme auf spezifische Ausführungsformen gegeben, die in den angefügten Zeichnungen dargestellt sind. Unter dem Verständnis, dass diese Zeichnungen Ausführungsformen der Erfindung darstellen und deshalb nicht als Einschränkung ihres Schutzumfangs betrachtet werden dürfen, wird die Erfindung mit größerer Genauigkeit und zusätzlichen Einzelheiten durch die Verwendung der beigefügten Zeichnungen beschrieben und erklärt, in denen:
  • 1 ein Blockschaubild ist, das eine Computerspeicherumgebung veranschaulicht, die eine beispielhafte Speichereinheit aufweist, bei der Aspekte der Verwendung realisiert sein können;
  • 2 ein Blockschaubild ist, das eine Hardware-Struktur eines beispielhaften Datenspeichersystems in einem Computersystem veranschaulicht, bei dem Aspekte der vorliegenden Erfindung realisiert sein können;
  • 3 eine Ablaufplandarstellung ist, die ein beispielhaftes Verfahren zum Identifizieren eines „besten” empfohlenen Datentabellenformats veranschaulicht, bei dem Aspekte der vorliegenden Erfindung realisiert sein können;
  • 4 eine Ablaufplandarstellung ist, die ein zusätzliches beispielhaftes Verfahren zum Identifizieren des besten empfohlenen Datentabellenformats veranschaulicht, bei dem ebenfalls Aspekte der vorliegenden Erfindung realisiert sein können;
  • 5A bis B eine Ablaufplandarstellung ist, die ein zusätzliches beispielhaftes Verfahren zum Identifizieren des besten empfohlenen Datentabellenformats veranschaulicht, bei dem gleichfalls Aspekte der vorliegenden Erfindung realisiert sein können; und
  • 6 ein Blockschaubild ist, das eine beispielhafte Ausgabedatendatei mit Vorsatzinformationen veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Wie oben erwähnt werden Datenverarbeitungssysteme verwendet, um eine Vielzahl von Datentypen wie etwa Tabellendaten zu speichern und zu verwalten. Tabellendaten sind üblicherweise in Zeilen und Spalten organisiert, die gewöhnliche Tabellen bilden, wie sie z. B. in relationalen Tabellen, Textverarbeitungsdokumenten, Arbeitsblättern, arbeitsblattähnlichen Strukturen oder ähnlichen Datenbankstrukturen verwendet werden. Ein Tabellendaten-Spaltenformat wird häufig als spezifische Dokumentkomponente in Webseiten, in wissenschaftlichen Dokumenten, Finanzberichten usw. verwendet. Forscher verwenden üblicherweise z. B. Tabellen, um Daten der neuesten experimentellen Ergebnisse oder statistische Finanzdaten in konzentrierter Weise anzuzeigen. Gemeinsam mit der raschen Ausdehnung des Internets werden Tabellen zu einer wertvollen Informationsquelle auf dem Gebiet des Informationsabrufs. In den meisten Dateien (z. B. Artikel/Datenbank/Excel/Word) werden die wichtigsten Informationen, die angegeben werden, in Tabellenform präsentiert. Des Weiteren können die meisten Daten, die in Tabellen angegeben werden, extrahiert und in einer Weise gespeichert werden, die die Datensuche und Kompression verbessert. Nachdem die Bildung der Daten identifiziert wurde, können die Daten abgefragt werden und mit Daten, bei denen andere Managementsysteme verwendet werden, kombiniert werden.
  • Es ist jedoch infolge der folgenden Probleme nahezu unmöglich, die Identifizierung und Erfassung von Tabellengrenzen in einem Speicherarray zu verbessern. 1) Die meisten Tabellenerfassungsarbeiten sind im Voraus definierte layoutbasierte Algorithmen, die üblicherweise für eine Domäne gut funktionieren, jedoch schwierig zu erweitern sind. 2) Bei den regelbasierten Verfahren wird die Leistungsfähigkeit stets durch die Qualität der Regeln stark beeinflusst. Wenn der Prüfdatensatz ausreichend groß ist, ist es schwierig, die „günstigen” Werte für Schwellenwerte festzulegen. 3) Das Schreiben von Daten in den Speicher erfolgt in einer progressiven Betriebsart, was bedeutet, dass der Speicher lediglich einen Teil des Datenstroms empfängt. 4) Die meisten Sortiererfassungsoperationen verändern den ursprünglichen Datenstrom in einer Weise, die möglicherweise nicht rekonstruiert werden kann. 5) Die meisten Sortiererfassungsoperationen erfordern eine umfangreiche Ressource, die in den Ausgabedaten zum Rekonstruieren des ursprünglichen Blocks geführt wird. Aufgrund dieser Probleme können Effizienz und Produktivität vermindert sein.
  • Im Gegensatz dazu, und um sich den beschriebenen Ineffizienzen und Leistungsproblemen zu widmen, stellen die dargestellten Ausführungsformen Mechanismen zum Verbessern der Tabellenbildungserfassung in Speicherarrays bereit. Die Mechanismen stellen eine effiziente Vorverarbeitungsoperation zum Erfassen einer Tabellengrenze bereit, indem ein Schema einer minimierten Datenblockabbildung gebildet und der Abbildungsblock in einer Weise sortiert wird, die „beste” (z. B. die längste Musterdarstellung und/oder die gebräuchlichsten Muster) Übereinstimmungen der Tabellengrenzenbildung identifiziert. Somit vereinfachen die Mechanismen das Problem der Tabellengrenzenerfassung und sortieren den Datenstrom in einer Weise, die vollständig umkehrbar ist, während sehr geringe Vorsatzinformationen gesichert werden, die für eine Ausgabeerzeugung benötigt werden. Mit anderen Worten können die Daten durch das Bereitstellen einer Operation zum Erfassen von Tabellengrenzen durch Bilden eines Abbildungsschemas für einen minimierten Datenblock und das anschließende Sortieren des Abbildungsblocks in einer Weise, die „beste” Tabellenerzeugungsübereinstimmungen identifiziert, effizient in einen umgeordneten Datenausgabestrom zur Kompression sortiert werden. In der sortierten Datenausgabedatei können Vorsatzinformationen gelistet sein, die das identifizierte Tabellengrenzenmuster enthalten. Außerdem kann in dem umgeordneten (sortierten) Datenausgabestrom vor jedem erfassten Tabellengrenzenmuster ein Trennsymbol angefügt werden, um die Tabellengrenzen zu unterscheiden. Die Ausgabedatei kann außerdem die Größe (z. B. die Anzahl von Zeilen) und die Anzahl von gefundenen Tabellen enthalten. Mit den oben beschriebenen Informationen in der umgeordneten Datenausgabedatei ist der Datenstrom vollständig umkehrbar und kann wieder in den ursprünglichen Datenstrom zurück decodiert werden.
  • Im Unterschied zu den meisten Tabellenerfassungsverfahren, die die auf im Voraus definiertem Layout basierten und regelbasierten Verfahren sind, versuchen die dargestellten Ausführungsformen einen allgemeinen Algorithmus bereitzustellen, der bei der Tabellengrenzenerfassung von allen Datenblocktypen und Formaten angewendet werden kann. Bei einer derartigen Ausführungsform setzen die Mechanismen Daten für eine Datenkompression um, indem sie mit einem Suffixbaum nach einer Tabelle und ihrem Layout suchen und die Identifizierungsinformationen in einen Vorsatz einfügen und die Daten komprimieren. Die Mechanismen der dargestellten Ausführungsformen können in Echtzeit auf progressive Speicherschreibvorgänge angewendet und in einem Speicherarray umgesetzt werden. Es sollte außerdem angemerkt werden, dass die vorliegende Erfindung die Datenstruktur durch das Bilden eines Suffixbaums für eine abgebildete Version der Daten identifiziert und nicht durch Prüfen von Metadaten oder Inhaltvorsätzen und außerdem nicht von speziellen Datenerzeugungsabhängigkeiten ausgeht. Die Verwendung des Suffixbaums ermöglicht das dynamische Bilden der Datenklassifizierungsformation. Mit anderen Worten identifizieren die Mechanismen der dargestellten Ausführungsformen eine Datenklassifizierung für einen gegebenen Datenblock durch Analysieren des Inhalts des Datenblocks über eine erzeugte Abbildung der ursprünglichen Daten.
  • In 1 ist eine beispielhafte Architektur 10 von Datenspeichersystemen (z. B. virtuelle Bandsysteme) in einer Datenverarbeitungsumgebung dargestellt. Das Computersystem 10 enthält eine zentrale Verarbeitungseinheit (CPU) 12, die mit Massenspeichereinheit(en) 14 und einer Speichereinheit 16 verbunden ist. Zu den Massenspeichereinheiten 14 können Festplattenlaufwerk-Einheiten (HDD-Einheiten), Festkörpereinheiten (SSD) usw. gehören, die in einem redundanten Array unabhängiger Platten (RAID) konfiguriert sein können. Die ferner beschriebenen Sicherungsoperationen können an Einheit(en) 14 im System 10 oder an anderer Stelle ausgeführt werden. Zur Speichereinheit 16 kann Speicher gehören, wie elektrisch löschbarer programmierbarer Festwertspeicher (EEPROM), oder ein Host aus betreffenden Einheiten. Die Speichereinheit 16 und die Massenspeichereinheit 14 sind über ein signaltragendes Medium mit der CPU 12 verbunden. Außerdem ist die CPU 12 durch einen Datenübertragungsport 18 mit einem Datenübertragungsnetzwerk 20 verbunden, das eine angeschlossene Vielzahl von zusätzlichen Computersystemen 22 und 24 aufweist.
  • 2 ist ein beispielhaftes Blockschaubild 200, das eine Hardware-Struktur eines Datenspeichersystems in einem Computersystem gemäß der vorliegenden Erfindung zeigt. In 2 sind Host-Computer 210, 220, 225 gezeigt, die jeweils als zentrale Verarbeitungseinheit zum Ausführen einer Datenverarbeitung als Teil eines Datenspeichersystems 200 wirken. Die Hosts (physische oder virtuelle Einheiten) 210, 220 und 225 können eine oder mehrere neue physische Einheiten oder logische Einheiten sein, um die Zwecke der vorliegenden Erfindung in dem Datenspeichersystem 200 zu realisieren. Bei einer Ausführungsform kann ein Datenspeichersystem 200 lediglich beispielhaft als IBM® System StorageTM DS8000TM umgesetzt sein. Bei einer Netzwerkverbindung 260 kann es sich um eine Lichtwellenleiterkanal-Struktur, eine Lichtwellenleiter-Punkt-zu-Punkt-Verbindung, eine Lichtwellenleiter-über-Ethernet-Struktur oder -Punkt-zu-Punkt-Verbindung, eine FICON- oder ESCON-E/A-Schnittstelle, jeden anderen E/A-Schnittstellentyp, ein Drahtlos-Netzwerk, ein leitungsgestütztes Netzwerk, ein LAN, ein WAN, eine heterogene, homogene, öffentliche (d. h. das Internet), private oder jede Kombination hiervon handeln. Die Hosts 210, 220 und 225 können lokal sein oder über eine oder mehrere Stellen verteilt sein und mit jedem Typ Struktur (oder Strukturkanal) (nicht gezeigt in 2) oder Netzwerkadapter 260 zu der Speicher-Steuereinheit 240, wie etwa Lichtwellenleiterkanal-, FICON-, ESCON-, Ethernet-, Lichtwellenleiter-, Drahtlos- oder Koaxial-Adapter, ausgestattet sein. Das Datenspeichersystem 200 ist dementsprechend für den Datenaustausch mit einem geeigneten Struktur- (nicht gezeigt in 2) oder Netzwerkadapter 260 ausgestattet. Das Datenspeichersystem 200 ist in 1 mit einer Speicher-Steuereinheit 240 und einem Speicher 230 dargestellt.
  • Um ein besseres Verständnis der hier beschriebenen Verfahren zu erleichtern, ist die Speicher-Steuereinheit 240 in 2 als eine einzelne Verarbeitungseinheit gezeigt, die einen Mikroprozessor 242, einen Systemspeicher 243 und einen nichtflüchtigen Speicher („NVS”) 216 enthält und später genauer beschrieben wird. Es wird angemerkt, dass die Speicher-Steuereinheit 240 bei einigen Ausführungsformen aus mehreren Verarbeitungseinheiten aufgebaut ist, wobei jede ihren eigenen Prozessorkomplex und Systemspeicher aufweist und durch ein spezielles Netzwerk in dem Datenspeichersystem 200 verbunden ist. Der Speicher 230 kann aus einer oder mehreren Speichereinheiten bestehen, wie etwa Speicherarrays, die durch ein Speichernetzwerk mit der Speicher-Steuereinheit 240 verbunden sind.
  • Bei einigen Ausführungsformen können die im Speicher 230 enthaltenen Einheiten in einer Schleifenarchitektur verbunden sein. Die Speicher-Steuereinheit 240 verwaltet den Speicher 230 und ermöglicht die Verarbeitung von Schreib- und Leseanforderungen, die für den Speicher 230 vorgesehen sind. Die Speicher-Steuereinheit 240 des Systemspeichers 243 speichert Programmbefehle und Daten, auf die der Prozessor 242 zum Ausführen von Funktions- und Verfahrensschritten zugreifen kann, die mit dem Verwalten des Speichers 230 und dem Ausführen der Schritte und Verfahren der vorliegenden Erfindung zum Identifizieren von Tabellengrenzen in Datenblöcken zur Kompression in einer Computerspeicherumgebung verbunden sind. Bei einer Ausführungsform enthält der Systemspeicher 243 die Betriebssoftware 250 zum Identifizieren von Tabellengrenzen in Datenblöcken in einer Computerspeicherumgebung, die die hier beschriebenen Verfahren und Operationen enthält, gehört zu dieser oder steht mit ihr im Datenaustausch. Wie in 2 gezeigt, kann der Systemspeicher 243 außerdem einen Cache 245 für den Speicher 230 enthalten oder mit diesem im Datenaustausch stehen, der auch als „Cachespeicher” bezeichnet wird und zum Puffern von „Schreibdaten” bzw. „Lesedaten” dient, die Schreib-/Leseanforderungen und ihre zugehörigen Daten betreffen. Bei einer Ausführungsform ist der Cache 245 in einer zum Systemspeicher 243 externen Einheit angeordnet, bleibt trotzdem für den Mikroprozessor 242 erreichbar und kann dazu dienen, zusätzlich zum Ausführen der hier beschriebenen Operationen zusätzliche Sicherheit gegenüber Datenverlust zu gewährleisten.
  • Bei einigen Ausführungsformen ist der Cache 245 mit einem flüchtigen Speicher und einem nichtflüchtigen Speicher umgesetzt und über einen lokalen Bus (der in 2 nicht gezeigt ist) für eine bessere Leistungsfähigkeit des Speichersystems 200 mit dem Mikroprozessor 242 verbunden. Der NVS 216, der in der Datenspeicher-Steuereinheit enthalten ist, ist für den Mikroprozessor 242 erreichbar und dient zum Bereitstellen einer zusätzlichen Unterstützung für Operationen und die Ausführung der vorliegenden Erfindung, wie in anderen Figuren beschrieben. Der NVS 216 kann auch als „dauerhafter” Cache oder „Cachespeicher” bezeichnet werden und ist mit einem nichtflüchtigen Speicher umgesetzt, der möglicherweise eine externe Spannungsversorgung nutzt, um darin gespeicherte Daten zu sichern. Der NVS kann in und mit dem Cache 245 für alle Zwecke gespeichert sein, die geeignet sind, die Aufgaben der vorliegenden Erfindung zu realisieren. Bei einigen Ausführungsformen versorgt eine Sicherheits-Spannungsquelle (die in 2 nicht gezeigt ist), wie etwa eine Batterie, den NVS 216 mit einer ausreichenden Spannung, damit die darin gespeicherten Daten im Fall eines Spannungsausfalls im Datenspeichersystem 200 erhalten bleiben. Bei bestimmten Ausführungsformen ist die Kapazität des NVS 216 kleiner als die Gesamtkapazität des Cache 245 oder gleich dieser.
  • Der Speicher 230 kann physisch aus einer oder mehreren Speichereinheiten, wie etwa Speicherarrays, bestehen. Ein Speicherarray ist eine logische Gruppierung von einzelnen Speichereinheiten, wie etwa eine Festplatte. Bei bestimmten Ausführungsformen besteht der Speicher 230 aus einem JBOD-Array (Just a Bunch of Disks) oder einem RAID-Array (Redundant Array of Independent Disks). Eine Sammlung von physischen Speicherarrays kann ferner so kombiniert sein, dass eine Rangebene (rank) gebildet wird, die die physische Speicherung von der logischen Konfiguration trennt. Der Speicherraum in einer Rangebene kann logischen Volumina zugeordnet sein, die den in einer Schreib-/Leseanforderung spezifizierten Speicherort definieren.
  • Bei einer Ausführungsform kann das Speichersystem wie in 2 gezeigt lediglich beispielhaft ein logisches Volumen oder einfach „Volumen” enthalten, das verschiedene Arten von Zuweisungen aufweisen kann. Die Speicher 230a, 230b und 230n sind als Rangebenen im Datenspeichersystem 200 gezeigt und werden in diesem Zusammenhang als Rangebene 230a, 230b und 230n bezeichnet. Rangebenen können für das Datenspeichersystem 200 lokal sein oder an einer physisch entfernten Stelle angeordnet sein. Mit anderen Worten kann sich eine lokale Speicher-Steuereinheit mit einer entfernten Speicher-Steuereinheit verbinden und Speicher an der entfernten Stelle verwalten. Die Rangebene 230a ist so gezeigt, dass sie mit zwei vollständigen Volumina 234 und 236 sowie einem Teilvolumen 232a konfiguriert ist. Die Rangebene 230b ist mit einem weiteren Teilvolumen 232b gezeigt. Somit ist das Volumen 232 über die Rangebenen 230a und 230b zugeordnet. Die Rangebene 230n ist so gezeigt, dass sie vollständig dem Volumen 238 zugeordnet ist, das heißt, die Rangebene 230n bezeichnet den vollständigen physischen Speicher für das Volumen 238. Aus den oben genannten Beispielen wird klar, dass eine Rangebene so konfiguriert sein kann, dass sie ein oder mehrere Teilvolumina und/oder vollständige Volumina enthält. Volumina und Rangebenen können weiter in so genannte „Spuren” (Tracks) unterteilt sein, die einen festen Block des Speichers darstellen. Eine Spur ist deswegen einem vorgegebenen Volumen zugeordnet und kann für eine vorgegebene Rangebene festgelegt sein.
  • Die Speicher-Steuereinheit 240 kann ein Datenumsetzungsmodul 255, ein Tabellengrenzen-Erfassungsmodul, ein Spalten-Kompressionsmodul 259 und ein Suffixbaum-Abbildungsmodul 260 enthalten, um das Identifizieren von Tabellengrenzen in Datenblöcken in einer Computerspeicherumgebung zu unterstützen. Das Datenumsetzungsmodul 255, das Tabellengrenzen-Erfassungsmodul, das Spalten-Kompressionsmodul 259 und das Suffixbaum-Abbildungsmodul 260 können mit jeder einzelnen Komponente der Speicher-Steuereinheit 240, der Hosts 210, 220, 225 und der Speichereinheiten 230 zusammenwirken. Das Datenumsetzungsmodul 255, das Tabellengrenzen-Erfassungsmodul, das Spalten-Kompressionsmodul 259 und das Suffixbaum-Abbildungsmodul 260 können strukturell ein geschlossenes Modul sein und gemeinsam und in Verbindung miteinander arbeiten und eine Funktion wie das Identifizieren von Tabellengrenzen in Datenblöcken ausführen oder einzelne Module darstellen. Das Datenumsetzungsmodul 255, das Tabellengrenzen-Erfassungsmodul, das Spalten-Kompressionsmodul 259 und das Suffixbaum-Abbildungsmodul 260 können außerdem in dem Cache 245 oder anderen Komponenten der Speicher-Steuereinheit 240 angeordnet sein, um die Zwecke der vorliegenden Erfindung zu realisieren.
  • Die Speicher-Steuereinheit 240 kann mit einem Steuerungs-Switch 241 zum Steuern des Lichtwellenleiterkanal-Protokolls zu den Host-Computern 210, 220, 225, einem Mikroprozessor 242 zum Steuern der gesamten Speicher-Steuereinheit 240, einem nichtflüchtigen Steuerungsspeicher 243 zum Speichern eines Mikroprogramms (Betriebssoftware) 250 zum Steuern des Betriebs der Speicher-Steuereinheit 240, von Daten zur Steuerung und aller Tabellen, die später beschrieben werden, einem Cache 245 zum vorübergehenden Speichern (Puffern) von Daten und Puffern 244 zur Unterstützung des Cache 245 zum Lesen und Schreiben von Daten, einem Steuerungs-Switch 241 zum Steuern eines Protokolls zum Steuern des Datentransfers zu oder von den Speichereinheiten 230, einem Datenumsetzungsmodul 255, einem Tabellengrenzen-Erfassungsmodul, einem Spalten-Kompressionsmodul 259 und einem Suffixbaum-Abbildungsmodul 260, auf denen Informationen eingerichtet werden können, aufgebaut sein. Mehrere Puffer 244 können bei der vorliegenden Erfindung umgesetzt sein und das Identifizieren von Tabellengrenzen in Datenblöcken in einer Datenverarbeitungsumgebung oder das Ausführen anderer Funktionen in Übereinstimmung mit den Mechanismen der dargestellten Ausführungsformen unterstützen.
  • Bei einer Ausführungsform sind lediglich beispielhaft die Host-Computer oder eine oder mehrere physische oder virtuelle Einheiten 210, 220, 225 und die Speicher-Steuereinheit 240 durch einen Netzwerkadapter 260 (der ein Lichtwellenleiterkanal sein könnte) als Schnittstelle, d. h. über einen Switch, der gelegentlich als „Fabric” bezeichnet wird, verbunden. Bei einer Ausführungsform wird lediglich beispielhaft der Betrieb des in 2 gezeigten Systems beschrieben. Der Mikroprozessor 242 kann den Speicher 243 so steuern, dass er Befehlsinformationen von der (physischen oder virtuellen) Host-Einheit 210 und Informationen zum Identifizieren der (physischen oder virtuellen) Host-Einheit 210 speichert. Der Steuerungs-Switch 241, die Puffer 244, der Cache 245, die Betriebs-Software 250, der Mikroprozessor 242, der Speicher 243, der NVS 216, das Datenumsetzungsmodul 255, das Tabellengrenzen-Erfassungsmodul, das Spalten-Kompressionsmodul 259 und das Suffixbaum-Abbildungsmodul 260 stehen untereinander im Datenaustausch und können separate Komponenten oder eine einzige Komponente sein. Außerdem können mehrere, wenn nicht sogar alle Komponenten, wie etwa die Betriebs-Software 245, in dem Speicher 243 zum Identifizieren von Tabellengrenzen in Datenblöcken für eine Kompression in einer Computerspeicherumgebung enthalten sein. Alle Komponenten in der Speichereinheit können miteinander verbunden sein und für Zwecke, die für die vorliegende Erfindung geeignet sind, untereinander im Datenaustausch stehen.
  • In 3 ist ein beispielhaftes Verfahren 300 zum Identifizieren eines „besten” empfohlenen Datentabellenformats dargestellt. Das Verfahren 300 beginnt (Schritt 302) mit dem Identifizieren von Tabellengrenzen in Datenblöcken zur Kompression (z. B. Spaltenkompression) durch Umsetzen von Daten in eine minimierte Datendarstellung unter Verwendung eines Suffixbaums durch Sortieren von Datenströmen gemäß symbolischen Darstellungen zum Bilden eines Tabellengrenzen-Erzeugungsmusters (Schritt 304). Datenströme werden gemäß symbolischen Darstellungen (der Buchstabe „T” kann z. B. für Textdaten und der Buchstabe „N” für numerische Daten verwendet werden) zum Bilden von Tabellengrenzenmustern sortiert. Durch das Umsetzen der Datenströme gemäß der symbolischen Darstellung kann das Verfahren 300 die minimierten Datendarstellungen in ein Abbildungsschema einbauen und die Abbildungsblöcke in einer Weise sortieren, dass die größte Tabellengrenzen-Übereinstimmung der Musterdarstellung identifiziert werden kann. Ein Suffixbaum wird zum Finden der besten (z. B. der längsten Musterdarstellung aus den minimierten Daten) empfohlenen Tabellenerzeugung verwendet, wobei der minimierte abgebildete Eingabepuffer als Eingabe für den Baum vorausgesetzt wird. Die erfassten Tabellengrenzen-Erzeugungsmuster der umgesetzten Daten werden in einen Ausgabedatei-Datenstrom umgeordnet, der für eine Rekonstruktion vollständig umkehrbar ist, während minimale Vorsatzinformationen gesichert werden (Schritt 306). Das Verfahren 300 endet (Schritt 308).
  • Bei einer Ausführungsform identifizieren die Mechanismen der dargestellten Ausführungsformen Tabellengrenzen auf der Grundlage der folgenden sechs Schritte. 1) Datenströme werden in minimierte Darstellungen umgesetzt. 2) Eine Liste vorgeschlagener Tabellengrenzenmuster wird gebildet. 3) Die gebräuchlichsten Tabellengrenzen-Erzeugungsmuster werden gesucht und identifiziert. 4) Die sortierten Datenströme werden umgeordnet, indem „\n” (und/oder eine andere symbolische Darstellung, wie etwa ein Symbol „@”) vor jedem gefundenem Muster eingefügt wird und Tabellenerzeugungsgrenzen unterschieden werden. 5) In der Ausgabedatei werden Vorsatzinformationen aufgelistet, die die identifizierten Tabellengrenzen-Erzeugungsmuster (die z. B. als „Format” bezeichnet werden), ein Trennsymbol (z. B. „@”), die Größe (z. B. die Anzahl von Zeilen) und die Anzahl von gefundenen Tabellen enthalten. Diese Schritte können wiederholt werden, um nachfolgende Tabellen zu finden, falls diese vorhanden sind. Außerdem können die Mechanismen der dargestellten Ausführungsformen Graphen und Tabellen mit Folgeabläufen anfügen. Der Graph kann mit Hilfe der Ergebnisse des Musteranpassungsprozesses erzeugt werden, und alle gefundenen Muster, die kleiner sind als Schwellwertmuster, werden eliminiert.
  • Das Umsetzen von Daten (z. B. Datenblöcken) in eine minimierte Darstellung ist wichtig, um die Erfassungsdauer zu reduzieren und die verarbeiteten Daten zu minimieren. Bei einer Ausführungsform können die folgenden Regeln zum Umsetzen von Daten angewendet werden. Textdaten können durch ein Symbol und/oder ein Zeichen ersetzt werden, das angibt, dass es sich bei den Daten um Text handelt. Die Mechanismen können z. B. Textdaten für die minimierte Datendarstellung durch den Buchstaben „T” ersetzen. Die Textspalte „T” ist als eine Folge von Zeichen definiert, die nicht in der Trennsymbolliste und Ziffernliste enthalten sind. Numerische Daten können durch ein anderes Symbol und/oder ein anderes Zeichen ersetzt werden, das angibt, dass die Daten numerisch sind. Die Mechanismen der dargestellten Ausführungsformen können z. B. die numerischen Daten für die minimierte Datendarstellung durch den Buchstaben „N” ersetzen. Die Zahlenspalte „N” ist als eine Folge von Zahlenzeichen definiert, die nicht in der Trennsymbolliste enthalten sind. Mit anderen Worten sind die Textdaten eine Folge von Zeichen, die in keiner Trennsymbolliste und Ziffernliste enthalten sind, und die numerischen Daten sind eine Folge von Zahlenzeichen, die in keiner Trennsymbolliste enthalten sind. Eine Ziffernliste und eine Trennsymbolliste können von den Mechanismen der dargestellten Ausführungsformen verwendet werden. Außerdem kann ein Trennsymbol durch ein eindeutiges Symbol und/oder Zeichen für die minimierte Datendarstellung ersetzt werden. Die Mechanismen der dargestellten Ausführungsformen können z. B. das Trennsymbol für die minimierte Datendarstellung durch das Zeichen „@” ersetzen. Das Zeichen „@” befindet sich in einer im Voraus definierten Liste von bekannten Trennsymbolen und Trennzeichen, die zum Erfassen von Tabellengrenzen in Datenblöcken verwendet werden. Auf der Grundlage der Symbole und/oder Zeichen, die für den Test, Zahlen und Trennsymbole angewendet werden, können die umgesetzten Daten, die für eine Datendarstellung minimiert wurden, übersetzt werden in:

    @T@@@@@@@@@T@@@@@T@N@N@N@@N@T@T@N@TT
    T@N@N@N@@@@@TT@N@N@N@@@@@T@N@N@N@@@@@.
  • Nachdem die Datenblöcke in eine minimierte Datendarstellung umgesetzt wurden, wird eine Liste von vorgeschlagenen Tabellengrenzmustern gebildet. Bei einer Ausführungsform tasten die Mechanismen der dargestellten Ausführungsformen die umgesetzte Datenfolge ab, um die besten (z. B. die längsten und gebräuchlichsten) Tabellengrenzmuster zu erhalten. Der Mechanismus kann gemäß den folgenden Abtastregeln betrieben werden. Regel (1): Der Mechanismus kann nach dem Suffix der minimierten Datendarstellung suchen und die Folge identifizieren, die mehr als ein Element enthält (zum Beispiel: T@N|N@T|T@T|N@N). Regel (2): Der Mechanismus kann alle minimierten Datendarstellungen überspringen, die lediglich Trennsymbole enthalten (z. B. das Symbol „@”, das als ein drittes Symbol und/oder Zeichen bezeichnet werden kann), selbst wenn die minimierten Datendarstellungen in jedem Byte unterschiedlich sind, bis zur nächsten Suffixfolge, die in der ersten Regel (1) definiert ist. Mit anderen Worten werden die Daten, die lediglich das dritte Symbol (z. B. das Symbol „@”) zum Identifizieren der Trennsymbole enthalten, bis zur nächsten Datensequenz übersprungen, die das erste und das zweite Symbol enthält, die Text- und numerische Daten repräsentieren. Es sollte angemerkt werden, dass das Symbol/Zeichen „T” als erstes Symbol/Zeichen bezeichnet und das Symbol/Zeichen „N” als zweites Symbol/Zeichen bezeichnet werden kann. Regel (3): Die Mechanismen können einen Suffixbaum der Darstellung des umgesetzten Datenstroms bilden. Es sollte angemerkt werden, dass für die Leistungsfähigkeit eventuell lediglich ein Teil der umgesetzten Darstellung berücksichtigt wird. Regel (4): Nach dem Bilden und Erzeugen des Suffixbaums eliminieren die Mechanismen alle Blätter (z. B. die Abtastreihenfolgen), die nicht mit Regel (1) und Regel (2) übereinstimmen.
  • Nachdem die vorgeschlagene Liste der Tabellengrenzen-Erzeugungsmuster gebildet wurde, suchen die Mechanismen der dargestellten Ausführungsformen nach den gebräuchlichsten Tabellengrenzen-Erzeugungsmustern. Aus der Abtastreihenfolgetabelle, die gemäß den Abtastregeln erzeugt wurde, suchen die Mechanismen der dargestellten Ausführungsformen alle abzweigenden Knoten und können die gebräuchlichste Musterzeichenfolge auswählen. Die folgenden Musterzeichenfolgen und die Häufigkeit des Auftretens können z. B. so identifiziert werden: Muster 1: T@T@N@N@ und die gefundene entsprechende Häufigkeit des Auftretens ist gleich 2. Muster 2: T@T@N@ und die gefundene entsprechende Häufigkeit des Auftretens ist gleich 2. Muster 3: N@N@ und die gefundene entsprechende Häufigkeit des Auftretens ist gleich 2. In diesem Beispiel veranschaulicht Muster 1 das längste Darstellungsmuster (und/oder die gebräuchlichste Musterzeichenfolge) von T@T@N@N@, das die beste (z. B. die längste Musterdarstellung) Tabellengrenzenbildung für den gegebenen Datenstrom darstellt. Es sollte angemerkt werden, dass die Mechanismen, wenn mehrere Blätter die gleiche Häufigkeit des Auftretens aufweisen, die längste Musterdarstellung als das beste empfohlene Tabellenformat für den Datenstrom favorisieren können.
  • An diesem Punkt können die Mechanismen die Datenströme durch das Hinzufügen von „\n” vor dem gefundenen gebräuchlichsten Zeichenfolgemuster umordnen, um die Tabellengrenzen zu unterscheiden. Zum Beispiel: Wenn das längste gebräuchliche Muster, das die Mechanismen gefunden haben, T@T@N@N@ ist, dann können die folgenden Operationen vor und nach dem Umordnen bei dem T@T@N@N@-Muster, das identifiziert wurde, lauten:

    vor dem Umordnen:

    @T@@@@@@@@@T@@@@@T@N@N@N@@N@T@T@N@TT
    T@N@N@N@@@@@TT@N@N@N@@@@@T@N@N@N@@@@@

    nach dem Umordnen:

    @T@@@@@@@@@T@@@@@T@N@N@N@@N@T@T@N@TT
    T@N@N@N@@@@@T

    T@N@N@N@@@@@

    T@N@N@N@@@@@
  • Diese Verarbeitung ist umkehrbar und ermöglicht, dass die Mechanismen die ursprüngliche Datenblockreihenfolge rekonstruieren, ohne dass zusätzliche Informationen für das Ausgabeformat erforderlich sind. Mit anderen Worten: In der Ausgabedatei sind Vorsatzinformationen aufgelistet, die das identifizierte Tabellenformatmuster (das z. B. in dem Vorsatz als „Format” bezeichnet wird), das Trennsymbol, die Größe (z. B. die Anzahl von Zeilen), ob \n implementiert und verwendet wurde, und die gefundene Anzahl von Tabellen enthalten. Es sollte angemerkt werden, dass, wenn die Mechanismen mehr als eine Tabelle (z. B. zwei Tabellen) identifizieren, nach dem ersten Vorsatz ein weiterer Vorsatz angefügt werden kann, wobei der angefügte Vorsatz die zweite Tabelle beschreibt. Wenn die Mechanismen mehr als eine Tabelle identifizieren, befinden sich die ersten Tabellenzeilen an der Position [1 + Anzahl von Tabellen]. An diesem Punkt gewährleisten die Mechanismen einen umkehrbaren Datenstrom, der sauber von den gefundenen Tabellenformaten getrennt werden kann.
  • Auf der Grundlage des oben Gesagten ist in 4 ein zusätzliches beispielhaftes Verfahren 400 zum Identifizieren des besten empfohlenen Datentabellenformats dargestellt. Das Verfahren 400 beginnt mit dem Überspringen einer Blockbearbeitung und dem Verarbeiten des nächsten Datenblocks (Schritt 402). Beim Empfangen eines Eingabestroms kann das Verfahren 400 feststellen, ob der Datenstrom auf ASCII beruht (Schritt 404). Wenn das nicht der Fall ist, kehrt das Verfahren 400 zum Schritt 402 zurück. Wenn das der Fall ist, setzt das Verfahren 400 den Datenstrom in eine minimierte Datendarstellung um (Schritt 406). Das Verfahren 400 kann einen Suffixbaum bilden (Schritt 408). Der Suffixbaum wird minimiert (Schritt 410). Das Verfahren 400 wird anschließend eine Liste von vorgeschlagenen Tabellengrenzen-Erzeugungsmustern bilden (Schritt 412). Das Verfahren 400 wird die gebräuchlichsten Tabellenformatmuster finden (es werden z. B. die längsten übereinstimmenden Formate favorisiert und bevorzugt) (Schritt 414). Das Verfahren 400 kann dann den Datenstrom umordnen, indem \n vor jedem gefundenen Muster angefügt wird (Schritt 416). Das Verfahren 400 wird alle vorhergehenden Schritte wiederholen, um nachfolgende Tabellen, falls vorhanden, zu finden, und kehrt zum Schritt 404 zurück.
  • Die folgenden 5A und 5B veranschaulichen ein zusätzliches beispielhaftes Verfahren 500 zum Identifizieren des besten empfohlenen Datentabellenformats. Das Verfahren 500 beginnt mit dem Umsetzen von Daten in ein minimiertes Datenformat (Schritt 502). Es sollte angemerkt werden, dass Abtastdaten Suffixbäume und weitere verschiedene Beispiele und Figuren in 5 dargestellt sind, um die Ergebnisse jedes der Schritte des Verfahrens 500 zu zeigen. Ein Suffixbaum wird gebildet (Schritt 504). Das Verfahren 500 eliminiert alle Blätter (z. B. Abtastreihenfolgen), die mit keiner der Abtastregeln übereinstimmen, wie oben beschrieben (Schritt 508). Das Verfahren 500 findet die gebräuchlichsten Tabellenformatmuster (es werden z. B. die längsten übereinstimmenden Formate favorisiert und bevorzugt) (Schritt 510). Das Verfahren 500 ordnet den Datenstrom um, indem \n vor jedem Tabellenformatmuster angefügt wird (Schritt 512). Das Verfahren 500 endet (514).
  • Wie oben erwähnt, können die Daten durch das Bereitstellen einer Operation zum Erfassen von Tabellengrenzen durch Bilden eines Abbildungsschemas eines minimierten Datenblocks und das anschließende Sortieren des Abbildungsblocks in einer Weise, die „beste” Tabellenformatübereinstimmungen identifiziert, effizienter in einen umgeordneten (z. B. sortierten) Datenausgabestrom zur Kompression sortiert werden. In der sortierten Datenausgabedatei können Vorsatzinformationen aufgelistet sein, die das identifizierte Tabellengrenzen-Muster enthalten. Außerdem kann in dem umgeordneten (sortierten) Datenausgabestrom ein Trennsymbol vor jedem erfassten Tabellengrenzen-Muster angefügt werden, um die Tabellengrenzen zu unterscheiden. Die Ausgabedatei kann außerdem die Größe (z. B. die Anzahl von Zeilen) und die Anzahl von gefundenen Tabellen enthalten. Mit den oben beschriebenen Informationen in der umgeordneten Datenausgabedatei kann der Datenstrom komprimiert werden und ist für eine Decodierung zurück in den ursprünglichen Datenstrom vollständig umkehrbar. Die folgende 6 veranschaulicht eine beispielhafte Ausgabedaten-Datei 600 mit Vorsatzinformationen. In der Ausgabedatei 600 sind Vorsatzinformationen aufgelistet, die das identifizierte Tabellenformatmuster (das z. B. als „Format” bezeichnet wird), das Trennsymbol, die Größe (z. B. die Anzahl von Zeilen) und die Anzahl von gefundenen Tabellen enthalten. Diese Schritte können wiederholt werden, um nachfolgende Tabellen, falls vorhanden, zu finden.
  • Gemäß der vorhergehenden Erläuterung zum Identifizieren von Tabellengrenzen bei der Datenblockkompression wird das unabhängige Komprimieren jeder Spalte ein höheres Kompressionsverhältnis gewährleisten als das Komprimieren der vollständigen Tabelle mit einem Strom. Es sollte angemerkt werden, dass eine Vielzahl von Kompressionstechniken verwendet werden kann, um die Mechanismen der vorliegenden Erfindung zu realisieren (z. B. Spaltenkompression). Ein Grund für das erhöhte Kompressionsverhältnis besteht darin, dass die Daten in jeder Spalte verhältnismäßig homogen sind. Folglich erhöhen sich auf der Grundlage der Mechanismen der vorliegenden Erfindung Effizienz und Produktivität.
  • Wie dem Fachmann klar sein wird, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (die Firmware, residente Software, Mikrocode usw. enthält) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle allgemein 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, die computerlesbaren Programmcode enthalten.
  • Jede Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder jede geeignete Kombination des Genannten sein, ist jedoch nicht darauf beschränkt. Zu spezifischeren Beispielen (einer unvollständigen Liste) für das computerlesbare Speichermedium würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Genannten. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, wozu drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, HF-Medien usw. oder jede geeignete Kombination des Genannten gehören, ohne jedoch darauf beschränkt zu sein. Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmlicher prozeduraler Programmiersprachen wie etwa der Programmiersprache ”C” oder ähnlicher Programmiersprachen. Der Programmcode kann nur auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als selbstständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers über einen beliebigen Netzwerktyp verbunden sein, einschließlich eines Lokalbereichsnetzwerks (LAN) oder eines Weitbereichsnetzwerks (WAN), oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung sind hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben worden. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können für einen Prozessor eines Mehrzweck-Computers, eines Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungseinrichtung bereitgestellt werden, um eine solche Maschine zu bilden, dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungseinrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, erzeugen.
  • Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungseinrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, wozu Befehle gehören, die die Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind. Die Computerprogrammbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungseinrichtung oder andere Einheiten geladen werden, um zu bewirken, dass eine Reihe von Operationsschritten auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden und ein mittels Computer umgesetzter Prozess erzeugt wird, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, bereitstellen.
  • Der Ablaufplan und die Blockschaubilder in den obigen Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, Segment oder Abschnitt von Code, das/der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist, repräsentieren. Es sollte außerdem angemerkt werden, dass bei einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen in einer anderen als der in den Figuren angegebenen Reihenfolge auftreten können. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellung und Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellung durch auf spezielle Hardware gestützte Systeme, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • Obwohl eine oder mehrere Ausführungsformen der vorliegenden Erfindung genau beschrieben wurden, wird dem Fachmann klar sein, dass Modifikationen und Anpassungen an diesen Ausführungsformen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen, der in den folgenden Ansprüche dargelegt ist.

Claims (10)

  1. Verfahren zum Identifizieren von Tabellengrenzen in Datenblöcken zur Kompression durch eine Prozessoreinheit in einer Datenverarbeitungsumgebung, wobei das Verfahren aufweist: Umsetzen von Daten in eine minimierte Datendarstellung unter Verwendung eines Suffixbaums durch Sortieren von Datenströmen gemäß einer Vielzahl von symbolischen Darstellungen zum Bilden von Tabellengrenzen-Erzeugungsmustern, wobei die umgesetzten Daten für eine Rekonstruktion vollständig umkehrbar sind, während minimale Vorsatzinformationen gesichert werden.
  2. Verfahren nach Anspruch 1, das ferner in Verbindung mit dem Sortieren der Datenströme gemäß der Vielzahl von symbolischen Darstellungen das Ersetzen von Textdaten durch ein erstes Symbol und von numerischen Daten durch ein zweites Symbol umfasst, wobei ein drittes Symbol zum Ersetzen von zum Trennen verwendeten Trennsymbolen verwendet wird.
  3. Verfahren nach Anspruch 2, wobei die Textdaten eine Folge von Zeichen, die nicht in einer Trennsymbolliste und in einer Ziffernliste enthalten sind, und die numerischen Daten eine Folge von Ziffernzeichen, die nicht in der Trennsymbolliste enthalten sind, darstellen.
  4. Verfahren nach Anspruch 1, das ferner in Verbindung mit dem Sortieren jene der Tabellengrenzen-Erzeugungsmuster aneinander anpasst, die ähnlich sind, um ein längstes Tabellengrenzen-Erzeugungsmuster einer minimierten Datendarstellung zu identifizieren.
  5. Verfahren nach Anspruch 4, das ferner enthält: Umordnen jedes der Tabellengrenzen-Erzeugungsmuster, um eine Ausgabedaten-Datei zu bilden, oder/und Hinzufügen zumindest der Tabellengrenzen-Erzeugungsmuster, mehrerer Zeilen der Ausgabedaten-Datei und eines dritten Symbols, das zur Trennung der Tabellengrenzen-Erzeugungsmuster verwendet wird, zu einem Vorsatz der Ausgabedaten-Datei.
  6. Verfahren nach Anspruch 2, das ferner in Verbindung mit dem Sortieren das Ausführen einer Abtastoperation gemäß jedem des Folgenden umfasst: Suchen eines Suffix jedes der sortierten Datenströme zum Identifizieren einer Datenfolge, die das erste und das zweite Symbol enthält, die die Textdaten und die numerischen Daten repräsentieren, Überspringen der Daten, die lediglich das dritte Symbol enthalten, bis die nächste Datenfolge identifiziert wird, die das erste und das zweite Symbol enthält, die die Textdaten und die numerischen Daten repräsentieren, Bilden des Suffixbaums für die umgesetzten Daten und Eliminieren jeder Abtastreihenfolge, die nicht mit dem Suchen und Überspringen übereinstimmt.
  7. Verfahren nach Anspruch 4, das ferner in Verbindung mit dem Anpassen das Suchen nach Knotenverzweigungen in dem Suffixbaum umfasst.
  8. Verfahren nach Anspruch 1, das ferner das Ausführen der Umsetzung für eine Vielzahl von Datentyp-Blöcken umfasst.
  9. System zum Identifizieren von Tabellengrenzen in Datenblöcken zur Kompression in einer Datenverarbeitungsumgebung, wobei das System aufweist: eine Prozessoreinheit, die sich in der Datenverarbeitungsumgebung betreiben lässt, wobei die Prozessoreinheit angepasst ist zum: Umsetzen von Daten in eine minimierte Datendarstellung unter Verwendung eines Suffixbaums durch Sortieren von Datenströmen gemäß einer Vielzahl von symbolischen Darstellungen zum Bilden von Tabellengrenzen-Erzeugungsmustern, wobei die umgesetzten Daten für eine Rekonstruktion vollständig umkehrbar, während minimale Vorsatzinformationen gesichert werden.
  10. Computerprogrammprodukt zum Identifizieren von Tabellengrenzen in Datenblöcken zur Kompression durch eine Prozessoreinheit, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium aufweist, in dem computerlesbare Programmcodeabschnitte gespeichert sind, wobei die computerlesbaren Programmcodeabschnitte aufweisen: einen ersten ausführbaren Abschnitt zum Umsetzen von Daten in eine minimierte Datendarstellung unter Verwendung eines Suffixbaums durch Sortieren von Datenströmen gemäß einer Vielzahl von symbolischen Darstellungen zum Bilden von Tabellenerzeugungsmustern, wobei die umgesetzten Daten für eine Rekonstruktion vollständig umkehrbar sind, während minimale Vorsatzinformationen gesichert werden.
DE102013205738A 2012-04-16 2013-04-02 Erfassung von tabellengrenzen in datenblöcken zur kompression Ceased DE102013205738A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/448,159 2012-04-16
US13/448,159 US9141631B2 (en) 2012-04-16 2012-04-16 Table boundary detection in data blocks for compression

Publications (1)

Publication Number Publication Date
DE102013205738A1 true DE102013205738A1 (de) 2013-10-17

Family

ID=49232357

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013205738A Ceased DE102013205738A1 (de) 2012-04-16 2013-04-02 Erfassung von tabellengrenzen in datenblöcken zur kompression

Country Status (3)

Country Link
US (4) US9141631B2 (de)
CN (1) CN103377278B (de)
DE (1) DE102013205738A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640376B1 (en) 2014-06-16 2017-05-02 Protein Metrics Inc. Interactive analysis of mass spectrometry data
US9385751B2 (en) 2014-10-07 2016-07-05 Protein Metrics Inc. Enhanced data compression for sparse multidimensional ordered series data
US10354421B2 (en) 2015-03-10 2019-07-16 Protein Metrics Inc. Apparatuses and methods for annotated peptide mapping
US10289707B2 (en) 2015-08-10 2019-05-14 International Business Machines Corporation Data skipping and compression through partitioning of data
JP6896759B2 (ja) * 2016-03-23 2021-06-30 フォグホーン システムズ, インコーポレイテッドFoghorn Systems, Inc. リアルタイムデータフロープログラミングにおけるパターン駆動型反応の合成
US10296235B2 (en) 2016-06-27 2019-05-21 International Business Machines Corporation Partial volume reorganization to increase data availability
US10319573B2 (en) 2017-01-26 2019-06-11 Protein Metrics Inc. Methods and apparatuses for determining the intact mass of large molecules from mass spectrographic data
US10331947B2 (en) * 2017-04-26 2019-06-25 International Business Machines Corporation Automatic detection on string and column delimiters in tabular data files
US11626274B2 (en) 2017-08-01 2023-04-11 Protein Metrics, Llc Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US10546736B2 (en) 2017-08-01 2020-01-28 Protein Metrics Inc. Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US10510521B2 (en) 2017-09-29 2019-12-17 Protein Metrics Inc. Interactive analysis of mass spectrometry data
US11640901B2 (en) 2018-09-05 2023-05-02 Protein Metrics, Llc Methods and apparatuses for deconvolution of mass spectrometry data
US11346844B2 (en) 2019-04-26 2022-05-31 Protein Metrics Inc. Intact mass reconstruction from peptide level data and facilitated comparison with experimental intact observation
US11568666B2 (en) * 2019-08-06 2023-01-31 Instaknow.com, Inc Method and system for human-vision-like scans of unstructured text data to detect information-of-interest
US11276204B1 (en) 2020-08-31 2022-03-15 Protein Metrics Inc. Data compression for multidimensional time series data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5270712A (en) 1992-04-02 1993-12-14 International Business Machines Corporation Sort order preserving method for data storage compression
US5396595A (en) * 1992-04-24 1995-03-07 Spacelabs Medical, Inc. Method and system for compression and decompression of data
WO2004055615A2 (en) 2002-12-17 2004-07-01 Saraph Girish P Routing scheme based on virtual space representation
CN100442278C (zh) * 2003-09-18 2008-12-10 富士通株式会社 网页信息块提取方法和装置
US7246020B2 (en) 2005-06-10 2007-07-17 Par Pharmaceutical, Inc. System and method for sorting data
US7522687B2 (en) * 2005-08-29 2009-04-21 International Business Machines Corporation Clock and data recovery system and method for clock and data recovery based on a forward error correction
US7734603B1 (en) 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
WO2008021024A2 (en) 2006-08-13 2008-02-21 Mentor Graphics Corporation Multiprocessor architecture with hierarchical processor organization
US8332209B2 (en) * 2007-04-24 2012-12-11 Zinovy D. Grinblat Method and system for text compression and decompression
WO2008142799A1 (ja) 2007-05-24 2008-11-27 Fujitsu Limited 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
WO2011023134A1 (en) 2009-08-28 2011-03-03 Beijing Innovation Works Technology Company Limited Method and system for managing distributed storage system through virtual file system
GB0918373D0 (en) 2009-10-20 2009-12-02 Advanced Risc Mach Ltd Memory interface compression
US8625604B2 (en) * 2009-12-01 2014-01-07 Polytechnic Institute Of New York University Hash-based prefix-compressed trie for IP route lookup
US8504510B2 (en) * 2010-01-07 2013-08-06 Interdisciplinary Center Herzliya State machine compression for scalable pattern matching

Also Published As

Publication number Publication date
US20150379068A1 (en) 2015-12-31
US20130275399A1 (en) 2013-10-17
US20130275397A1 (en) 2013-10-17
US9043293B2 (en) 2015-05-26
US20150227541A1 (en) 2015-08-13
CN103377278B (zh) 2016-08-17
CN103377278A (zh) 2013-10-30
US9514178B2 (en) 2016-12-06
US9141631B2 (en) 2015-09-22
US9514179B2 (en) 2016-12-06

Similar Documents

Publication Publication Date Title
DE102013205738A1 (de) Erfassung von tabellengrenzen in datenblöcken zur kompression
DE112013000734B4 (de) Multiplex-Klassifizierung zum Komprimieren von Tabellendaten
DE112013001905B4 (de) Erhöhte Inline-Deduplizierungseffizienz
DE102013205069B4 (de) Erhöhte effizienz bei inline-deduplizierungen
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE112014000251T5 (de) Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen
US10289714B2 (en) Compression of serialized B-tree data
DE102005032744A1 (de) Indexextraktion von Dokumenten
DE102005032734B4 (de) Indexextraktion von Dokumenten
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102013206744A1 (de) Deduplizierende speicherung mit verbesserter erkennung von häufigen blöcken
DE202015009779U1 (de) Implementierung semistrukturierter Daten als ein Datenbankelement erster Klasse
DE112012005383B4 (de) Speichereinheit-Zugriffssystem
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112017000167B4 (de) Verteilte Datendeduplizierung in einem Prozessorraster
DE112014000448T5 (de) Auszugabruf beruhend auf Ähnlichkeitssuche bei Datendeduplizierung
DE102010043265A1 (de) Systeme und Verfahren zum Verarbeiten und Verwalten von objektbezogenen Daten zur Verwendung durch mehrere Anwendungen
DE112012005557B4 (de) Erzeugen eines Code-Alphabets von Symbolen zum Erzeugen von Codewörtern für Wörter, die mit einem Programm verwendet werden
EP3563261A1 (de) Bitsequenzbasiertes datenklassifikationssystem
DE102005032733A1 (de) Indexextraktion von Dokumenten
DE102014111571A1 (de) Speichersystem und Verfahren zum Verwalten eines Datenobjektspeichers in einem Speichersystem
DE102022102228A1 (de) Hashen mit unterschiedlicher hash-grösse und kompressionsgrösse
DE102021126985A1 (de) Speicherung einer kleinen objektdarstellung in einem deduplizierungssystem
EP2264626B1 (de) Verfahren und Vorrichtung zum speichereffizienten Suchen mindestens eines Anfragedatenelementes
DE112021006042T5 (de) Finden der speicherorte von tabellendaten über systeme hinweg

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0007000000

Effective date: 20130829

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final