DE102014110590A1 - Parallel-Baum-Etikettierungsvorrichtung und -verfahren zum Verarbeiten eines XML-Dokuments - Google Patents

Parallel-Baum-Etikettierungsvorrichtung und -verfahren zum Verarbeiten eines XML-Dokuments Download PDF

Info

Publication number
DE102014110590A1
DE102014110590A1 DE102014110590.7A DE102014110590A DE102014110590A1 DE 102014110590 A1 DE102014110590 A1 DE 102014110590A1 DE 102014110590 A DE102014110590 A DE 102014110590A DE 102014110590 A1 DE102014110590 A1 DE 102014110590A1
Authority
DE
Germany
Prior art keywords
labeling
label
labels
sub
data block
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
DE102014110590.7A
Other languages
English (en)
Inventor
Kyong-Ha Lee
Hye-Bong CHOI
Won-Joo Park
Kee-seong CHO
Won Ryu
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.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
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
Priority claimed from KR1020140056817A external-priority patent/KR20150013000A/ko
Application filed by Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of DE102014110590A1 publication Critical patent/DE102014110590A1/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/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying

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)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Eine Parallel-Baum-Etikettierungsvorrichtung und ein Parallel-Baum-Etikettierungsverfahren zum Verarbeiten eines eXtensible-Markup-Language-Dokuments (XML-Dokuments). Die Parallel-Baum-Etikettierungsvorrichtung zum Verarbeiten eines XML-Dokuments enthält eine Datenverteilungseinrichtung, die dafür konfiguriert ist, das XML-Dokument in mehrere Datenblöcke zu teilen; und eine Etikettierungskomponente, die dafür konfiguriert ist, Elemente jedes der mehreren Datenblöcke zu empfangen, an den mehreren Datenblöcken parallel eine Etikettierungsprozedur auszuführen und durch Kombinieren von Teiletiketten ein Abschlussetikett zu erzeugen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldungen Nr. 10-2013-0089112 , eingereicht am 26. Juli 2013 und 10-2014-0056817 , eingereicht am 12. Mai 2014 beim Koreanischen Patentamt, deren Offenbarungen hier für alle Zwecke durch Literaturhinweis eingefügt sind.
  • HINTERGRUND
  • 1. Gebiet
  • Die folgende Beschreibung bezieht sich auf eine Datenverarbeitungstechnologie und insbesondere auf eine Technologie zum Etikettieren von eXtensible-Markup-Language-Daten (XML-Daten).
  • 2. Beschreibung des verwandten Gebiets
  • Daten oder ein Dokument, die in der eXtensible Markup Language (XML) geschrieben sind, enthalten selbst Daten, Tags und Strukturinformationen, die Relationen zwischen den Tags angeben. Eine Abfrage an XML-Daten ist als eine strukturierte Abfrage konfiguriert, die nicht nur eine Abfrage an die Daten, sondern auch an Strukturinformationen enthält.
  • Um eine strukturierte Abfrage an ein XML-Dokument zu verarbeiten, werden Baumetikettierungsschemata verwendet, indem jedem Element ein Wert zugeordnet wird, der beim Identifizieren einer Relation zwischen Elementen wie etwa einer Mutter-Kind-Relation und einer Vorgänger-Nachfolger-Relation hilfreich ist. Ein intervallbasiertes Etikettierungsschema und ein präfixbasiertes Etikettierungsschema sind die am stärksten verwendeten Etikettierungsschemata, um eine strukturierte Abfrage an XML-Daten effizient zu verarbeiten.
  • ZUSAMMENFASSUNG
  • Die folgende Beschreibung bezieht sich auf eine Parallel-Baum-Etikettierungsvorrichtung und auf ein Parallel-Baum-Etikettierungsverfahren zum Beschleunigen eines Baumetikettierungsprozesses, der für die effiziente Verarbeitung einer Abfrage an ein eXtensible-Markup-Language-Dokument (XML-Dokument) in Übereinstimmung mit einer beispielhaften Ausführungsform erforderlich ist.
  • In einem allgemeinen Aspekt wird eine Parallel-Baum-Etikettierungsvorrichtung zum Verarbeiten eines eXtensible-Markup-Language-Dokuments (XML-Dokuments) geschaffen, wobei die Vorrichtung eine Datenverteilungseinrichtung, die dafür konfiguriert ist, das XML-Dokument in mehrere Datenblöcke zu teilen; und eine Etikettierungskomponente, die dafür konfiguriert ist, Elemente jedes der mehreren Datenblöcke zu empfangen, an den mehreren Datenblöcken parallel eine Etikettierungsprozedur auszuführen und durch Kombinieren von Teiletiketten ein Abschlussetikett zu erzeugen, enthält.
  • Die Etikettierungskomponente kann ein in Übereinstimmung mit einem MapReduce-Programmiermodul geschriebenes Programm oder ein Modul, das als das Programm fungiert, sein. Ferner kann die Etikettierungskomponente dafür konfiguriert sein, mehrere Teiletikettierungseinrichtungen, von denen jede dafür konfiguriert ist, an Elementen eines ihr zugeordneten Datenblocks eine Teiletikettierungsprozedur auszuführen; und eine Etikettierungsabschlusseinrichtung, die dafür konfiguriert ist, durch Sammeln von Gruppen von Teiletiketten das Abschlussetikett zu erzeugen, wobei die Teiletiketten durch Umordnen der Teiletiketten, an denen die Teiletikettierung durch die mehreren Teiletikettierungseinrichtungen parallel ausgeführt worden ist, gruppiert werden, umfassen.
  • Jede der mehreren Teiletikettierungseinrichtungen kann dafür konfiguriert sein, an einem ihr zugeordneten Datenblock eine Teiletikettierungsprozedur auszuführen und Offsetinformationen, die zum Kombinieren und Korrigieren von Teiletiketten erforderlich sind, wenn die Etikettierungsabschlusseinrichtung das Abschlussetikett berechnet, aufzuzeichnen.
  • Ferner kann die Etikettierungsabschlusseinrichtung dafür konfiguriert sein, das Abschlussetikett durch Korrigieren von Etiketten auf der Grundlage der Offsetinformationen beim Kombinieren der Teiletiketten zu erzeugen, wobei die Offsetinformationen Strukturinformationen sind, die zum Korrigieren erforderlich sind, wenn das Abschlussetikett durch Kombinieren der Teiletiketten erzeugt wird.
  • Ferner kann die Etikettierungsabschlusseinrichtung dafür konfiguriert sein, das Abschlussetikett durch Korrigieren der Teiletiketten unter Verwendung eines Korrekturoperators beim Kombinieren der Teiletiketten zu erzeugen.
  • Ferner ist die Datenverteilungseinrichtung dafür konfiguriert, das XML-Dokument in einem verteilten Dateisystem, das die Datenduplikation auf Datenblockgrundlage unterstützt, in mehrere Datenblöcke zu teilen.
  • Ferner kann die Parallel-Baum-Etikettierungsvorrichtung einen Statistikprozessor enthalten, der dafür konfiguriert ist, das durch die Datenverteilungseinrichtung geteilte XML-Dokument zu lesen und die Vorkommenshäufigkeiten von Elementen für jeden Tag-Namen in jedem Datenblock des XML-Dokuments zusammenzusetzen.
  • Ferner kann der Statistikprozessor dafür konfiguriert sein, mehrere Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtungen, von denen jede zum Lesen eines Datenblocks, der ihr zugeordnet ist, und zum Schätzen der Vorkommenshäufigkeiten von Elementen mit demselben Tag-Namen unter gesamten Elementen in dem zugeordneten Datenblock konfiguriert ist; und eine Vorkommenshäufigkeits-Zusammensetzungseinrichtung, die dafür konfiguriert ist, diese Vorkommenshäufigkeiten von jeder der mehreren Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtungen zu empfangen und die Vorkommenshäufigkeiten der Elemente für jeden Tag-Namen in dem gesamten XML-Dokument zusammenzusetzen, zu umfassen.
  • Ferner kann die Parallel-Baum-Etikettierungsvorrichtung eine Datenumverteilungseinrichtung enthalten, die dafür konfiguriert ist, ein Datenvolumen unter Verwendung eines in dem Statistikprozessor berechneten Zusammensetzungsergebnisses der Vorkommenshäufigkeiten in der Weise zu verteilen, dass jeder Aufgabe der Etikettkomponente eine gleiche Menge an Arbeitsbelastungen zugewiesen wird.
  • Ferner kann die Datenumverteilungseinrichtung dafür konfiguriert sein, für den Tag-Namen in dem XML-Dokument durch Lesen der Vorkommenshäufigkeiten der Elemente für jeden Tag-Namen mittlere Vorkommenshäufigkeiten von Elementen zu berechnen; in Ansprechen auf einen Tag-Namen, für den die Elemente größere Vorkommenshäufigkeiten als die mittleren Vorkommenshäufigkeiten besitzen, eine Liste der Elemente mit dem Tag-Namen in mehrere Listen von Elementen zu teilen; und jeder der geteilten Listen von Elementen einen Verteilungsschlüssel zuzuordnen. An diesem Punkt kann die Etikettierungskomponente ferner dafür konfiguriert sein, in Übereinstimmung mit einem durch die Datenumverteilungseinrichtung bereitgestellten Verteilungsschlüssel eine Umordnungsoperation in der Weise auszuführen, dass jeder Aufgabe zum Ausführen der Etikettierungsprozedur eine gleiche Menge an Arbeitsbelastungen zugeordnet wird.
  • In einem anderen allgemeinen Aspekt wird ein Parallel-Baum-Etikettierungsverfahren zum Verarbeiten eines eXtensible-Markup-Language-Dokuments (XML-Dokuments) geschaffen, wobei das Verfahren enthält: Teilen des XML-Dokuments in mehrere Datenblöcke; und Empfangen von Elementen jedes der mehreren Datenblöcke, Ausführen einer Etikettierungsprozedur an jedem der mehreren Datenblöcke und Erzeugen eines Abschlussetikettes durch Kombinieren von Teiletiketten.
  • Weitere Merkmale und Aspekte können aus der folgenden ausführlichen Beschreibung, aus den Zeichnungen und aus den Ansprüchen hervorgehen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Darstellung, die ein eXtensible-Markup-Language-Dokument (XML-Dokument) veranschaulicht, das in den folgenden Beschreibungen durchgängig zur zweckmäßigen Erläuterung der vorliegenden Offenbarung verwendet ist;
  • 2 und 3 sind Diagramme, die ein Beispiel zeigen, in dem ein intervallbasiertes Etikettierungsschema bzw. ein präfixbasiertes Etikettierungsschema in einem Logikbaummodell, das Strukturinformationen des in 1 gezeigten XML-Dokuments veranschaulicht, ausgeführt werden;
  • 4 ist eine schematische Darstellung, die eine Konfiguration einer Parallel-Baum-Etikettierungsvorrichtung in Übereinstimmung mit einer beispielhaften Ausführungsform veranschaulicht;
  • 5 ist ein Ablaufplan, der ein Teiletikettierungsverfahren während der Parallelisierung eines intervallbasierten Etikettierungsschemas in Übereinstimmung mit einer beispielhaften Ausführungsform veranschaulicht;
  • 6 ist ein Ablaufplan, der ein Etiketterzeugungsverfahren während der Parallelisierung eines intervallbasierten Etikettierungsschemas in Übereinstimmung mit einer beispielhaften Ausführungsform veranschaulicht;
  • 7A und 7B sind Darstellungen, die ein Beispiel veranschaulichen, in dem die Parallelisierung einer intervallbasierten Etikettierungstechnik in einem System der vorliegenden Offenbarung in Übereinstimmung mit einer beispielhaften Ausführungsform ausgeführt wird; und
  • 8A und 8B sind Darstellungen, die ein Beispiel darstellen, in dem die Parallelisierung eines präfixbasierten Etikettierungsschemas in einem System der vorliegenden Offenbarung in Übereinstimmung mit einer beispielhaften Ausführungsform ausgeführt wird.
  • Sofern nicht etwas Anderes beschrieben ist, beziehen sich überall in den Zeichnungen und in der ausführlichen Beschreibung dieselben Zeichnungsbezugszeichen selbstverständlich auf dieselben Elemente, Merkmale und Strukturen. Zur Klarheit, Veranschaulichung und Zweckmäßigkeit können die relative Größe und die Darstellung dieser Elemente überhöht sein.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung wird gegeben, um dem Leser dabei zu helfen, ein umfassendes Verständnis der hier beschriebenen Verfahren, Vorrichtungen und/oder Systeme zu gewinnen. Dementsprechend werden dem Durchschnittsfachmann auf dem Gebiet verschiedene Änderungen, Abwandlungen und Entsprechungen der hier beschriebenen Verfahren, Vorrichtungen und/oder Systeme vorgeschlagen. Außerdem können Beschreibungen gut bekannter Funktionen und Konstruktionen zur Klarheit und Kürze weggelassen sein.
  • 1 ist eine Darstellung, die eine Struktur einer eXtensible-Markup-Language-Datei (XML-Datei) veranschaulicht, die in der folgenden Beschreibung durchgängig zur Erläuterung der vorliegenden Offenbarung verwendet ist.
  • Anhand von 1 enthält ein XML-Dokument 100 Daten, Tags und Strukturinformationen, die Relationen zwischen den Tags angeben. Eine Abfrage an XML-Daten besitzt eine Form einer strukturierten Abfrage, die solche Strukturinformationen sowie eine Abfrage an die XML-Daten selbst enthält.
  • Ein Element des XML-Dokuments 100 ist aus einem Anfangs-Tag und aus einem End-Tag aufgebaut. Zum Beispiel ist das Mengenelement 101, wie in 1 dargestellt ist, aus dem Anfangs-Tag <quantity> und aus dem End-Tag </quantity> aufgebaut, wobei Etiketten auf Elementgrundlage zugewiesen sind.
  • 2 und 3 sind Diagramme, die Beispiele darstellen, in denen in einem Logikbaummodell, das Strukturinformationen des in 1 gezeigten XML-Dokuments repräsentiert, ein intervallbasiertes Etikettierungsschema und ein präfixbasiertes Schema ausgeführt werden.
  • Anhand von 1 und 2 etikettiert ein intervallbasiertes Etikettierungsschema 210 das XML-Dokument 100 in der Weise, dass ein Intervall eines Mutter- oder Vorgängerelements ein Intervall eines Kind- oder Nachfolgerelements enthält. Eine Relation zwischen zwei Elementen wird dadurch bestimmt, dass geprüft wird, ob ein für ein Element etikettiertes Intervall das für das andere Element etikettierte Intervall enthält.
  • Zum Beispiel ist in dem XML-Dokument 100 in 1 das Afrika-Element 102 in dem Gebiet-Element 103 enthalten, so dass das Afrika-Element 102 und das Gebiet-Element 103 in einer Mutter-Kind-Relation stehen. Wie in 2 dargestellt ist, ist somit das Intervall <2, 15> 211 des Afrika-Elements 102 in dem Intervall <1, 24> 212 des Gebiet-Elements 103 enthalten. Außerdem besitzt in dem intervallbasierten Etikettierungsschema 210 ein Etikett einen Etikettwert, um eine Mutter-Kind-Relation und eine Vorgänger-Nachfolger-Relation zu unterscheiden. Zum Beispiel ist der letzte Zahlenwert '1' in dem Etikett <1, 24, 1> 212 des Gebiet-Elements 103 ein Ebenenwert eines entsprechenden Elements in einer Baumstruktur. Somit ist ein Etikett jedes Elements als <Anfangs-Tag, End-Tag, Ebene> konfiguriert.
  • Anhand von 1 und 3 ist das präfixbasierte Etikettierungsschema 320 so ausgelegt, dass ein Element ein Etikett besitzt, dessen Präfix ein Etikett der Mutter oder des Vorgängers des Elements ist. Somit ist es durch Trennen eines Präfixes von einem Etikett möglich, ein Mutter-Element oder ein Vorgänger-Element eines spezifischen Elements zu identifizieren. Falls z. B. ein präfixbasiertes Etikett des ersten Mengenelements 1.1.1.1 321 ist, gibt das an, dass das Mutterelement des ersten Gegenstand-Elements 322 das mit 111 bezeichnete erste Gegenstand-Element 322 ist und dass die Vorgängerelemente des ersten Gegenstand-Elements 322 das mit 1.1 bezeichnete Afrika-Element 323 und das mit 1 bezeichnete Gebiet-Element 324 sind.
  • Das intervallbasierte Etikettierungsschema 210 und das präfixbasierte Etikettierungsschema 320, die oben anhand von 2 und 3 beschrieben sind, nehmen einen auf der Hintereinanderausführung beruhenden Algorithmus an. Das heißt, sowohl das intervallbasierte Etikettierungsschema 210 als auch das präfixbasierte Etikettierungsschema 320 liest Elemente in einem XML-Dokument und weist den Elementen der Reihe nach Etiketten zu. Allerdings nehmen XML-Dokumente sowohl in Bezug auf die Anzahl als auch in Bezug auf die Größe schnell zu, so dass es eine recht große Herausforderung ist, eine Etikettierungsprozedur unter Verwendung eines auf der Hintereinanderausführung beruhenden Algorithmus, der unvermeidlich eine beträchtlich lange Zeit für die Etikettierungsprozedur erfordert, abzuschließen. Die vorliegende Offenbarung behebt diesen Nachteil, indem sie eine Parallelisierung der Etikettierungsprozedur für ein XML-Dokument ausführt. Insbesondere ist die vorliegende Offenbarung nutzbar beim Etikettieren eines großen XML-Dokuments. Im Folgenden wird die Technik der vorliegenden Offenbarung zum effizienten parallelen Etikettieren eines großen XML-Dokuments anhand der folgenden Zeichnungen beschrieben.
  • 4 ist eine schematische Darstellung, die eine Konfiguration einer Parallel-Baum-Etikettierungsvorrichtung in Übereinstimmung mit einer beispielhaften Ausführungsform veranschaulicht.
  • Anhand von 4 enthält eine Parallel-Baum-Etikettierungsvorrichtung 4 eine Datenverteilungseinrichtung 410 und eine Etikettierungskomponente 450 und kann sie ferner ein verteiltes Dateisystem 420, einen Statistikprozessor 440, eine Etikettierungskomponente 450 und eine Datenumverteilungseinrichtung 443 enthalten.
  • Die Datenverteilungseinrichtung 410 teilt ein XML-Dokument 400 in mehrere Datenblöcke. An diesem Punkt kann das XML-Dokument 400 in dem verteilten Dateisystem 420 verteilt gespeichert werden. Das verteilte Dateisystem 420 unterstützt die Verdopplung von Daten auf Blockgrundlage, um das XML-Dokument 400, an dem eine Etikettierungsprozedur ausgeführt werden soll, zu speichern. An diesem Punkt kann das XML-Dokument 400 einfach durch Laden des XML-Dokuments 400 in das verteilte Dateisystem 420 gespeichert werden, wobei das XML-Dokument 400 in einer Weise gespeichert werden kann, dass verschiedene Datenblöcke fester Größe des XML-Dokuments 400 gespeichert werden. Zum Beispiel werden eine Anzahl von N Datenblöcken 430-1, 430-2, ..., 430-n verteilt in das verteilte Dateisystem 420 geladen.
  • Die Datenverteilungseinrichtung 410 teilt das XML-Dokument 400 in Datenblöcke fester Größe und speichert die Datenblöcke fester Größe verteilt in dem verteilten Dateisystem 420 wie etwa Google File System (GFS) und Hadoop Distributed File System (HDFS).
  • Die Etikettierungskomponente 450 empfängt Elemente jedes geteilten Datenblocks eines XML-Dokuments, führt an Untergruppen der Elemente parallel eine Teiletikettierungsprozedur aus und erzeugt durch Kombinieren von Teiletiketten, die die Ergebnisse von der Teiletikettierungsprozedur sind, das Abschlussetikett 460.
  • Die Etikettführungskomponente 450 ist ein MapReduce-basiertes Programm, das eine Teiletikettierungseinrichtung 451 und eine Etikettierungsabschlusseinrichtung 453 enthält, oder ein Modul, das dieselben Funktionen wie das MapReduce-Programm aufweist. MapReduce, das ein System ist, das ein Parallelprogrammierungsmodell unterstützt, sowie das Parallelprogrammierungsmodell selbst stellen ein Verfahren zum Verteilen von Daten und zum parallelen Verarbeiten der Daten nur unter Verwendung von zwei Funktionen Map und Reduce bereit. Ein MapReduce-Programm wird in der Weise ausgeführt, dass jede Aufgabe einen anderen Datenblock fester Größe liest, um eine Map()-Prozedur auszuführen, die Ergebnisse der Map()-Prozedur auf Schlüsselgrundlage zusammensetzt und auf die zusammengesetzten Ergebnisse eine Reduce()-Prozedur anwendet und somit ein Endergebnis erhält.
  • Jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n empfängt immer nur einen Datenblock, führt lediglich an den in dem empfangenen Datenblock enthaltenen Elementen unabhängig eine Teiletikettierungsprozedur aus, wobei die resultierenden Teiletiketten auf der Grundlage der Map()-Prozedur geschrieben werden. Die durch die jeweilige Teiletikettierungseinrichtung 451-1, 451-2, ..., 451-n geschriebenen Teiletiketten können, nachdem sie in Bezug auf einen Partitionsschlüssel in Übereinstimmung mit einem MapReduce-Programmiermodul umgeordnet worden sind, an eine Etikettierungsabschlusseinrichtung 453 gesendet werden. Die Etikettierungsabschlusseinrichtung 453 ist ein auf der Grundlage einer Reduce()-Prozedur implementiertes Modul, das die Teiletiketten durch Sammeln der Teiletiketten für jeden Tag-Namen oder für jeden Partitionsschlüssel kombiniert und ein Abschlussetikett ausgibt. Die Etikettierungskomponente 450 enthält mehrere der Teiletikettierungseinrichtungen 451 und mehrere der Etikettierungsabschlusseinrichtungen 453, die alle parallel implementiert sind.
  • Wenn unter Verwendung von MapReduce eine Bestrafung ausgeführt wird, können Teilungsdaten eines XML-Dokuments den Verlust von Strukturinformationen des XML-Dokuments verursachen. Zum Beispiel ist die Mutter-Kind-Relation nicht mehr gültig, wenn zwei Elemente in einer Mutter-Kind-Relation in zwei verschiedene Datenblöcke geteilt werden. Allerdings führt die Etikettierungskomponente 450 eine Etikettierungsprozedur an den in einem XML-Dokument enthaltenen Elementen parallel aus, ohne einen Verlust von Strukturelementen zu verursachen, so dass es möglich ist, nicht nur dasselbe Ergebnis zu erhalten, wie es unter Verwendung eines Hintereinanderausführungsalgorithmus erhalten werden kann, sondern auch den Gesamtprozess unter Verwendung der Parallelisierung zu beschleunigen. Zum Beispiel korrigiert die Etikettierungskomponente 450 die Teiletiketten unter Verwendung von Offsetinformationen oder eines Korrekturoperators, wenn sie Teiletiketten kombiniert, so dass das Abschlussetikett mit demselben Ergebnis erzielt werden kann, wie es erhalten wird, wenn die Etikettierungsprozedur hintereinander ausgeführt wird.
  • Der Statistikprozessor 440 liest die in dem verteilten Dateisystem 420 verteilt gespeicherten Datenblöcke 430-1, 430-2, ..., 430-n und setzt die Vorkommenshäufigkeiten von Elementen für jedes Tag in jedem Datenblock des XML-Dokuments zusammen.
  • Der Statistikprozessor 440 ist ein Programm, das in Übereinstimmung mit einem MapReduce-Programmiermodul geschrieben ist, oder ein Modul, das Funktionen des Programms ausführt. Der Statistikprozessor 440 enthält eine Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtung 441 und eine Vorkommenshäufigkeits-Zusammensetzungseinrichtung 442. Die Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtung 441 fungiert als eine Abbildungseinrichtung, während die Vorkommenshäufigkeits-Zusammensetzungseinrichtung 442 als eine Reduktionseinrichtung fungiert.
  • Die Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtung 441 beruht auf einer Map()-Prozedur, wobei in dem Statistikprozessor 440 eine Anzahl von Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtungen 441-1, 441-2, ..., 441-n gebildet sein können, um eine gegebene Funktion parallel auszuführen. Die Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtungen 441-1, 441-2, ..., 441-n lesen die jeweiligen Datenblöcke 430-1, 430-2, ..., 430-n und schätzen die Vorkommenshäufigkeiten von Elementen, die in jedem Datenblock denselben Tag-Namen besitzen.
  • Die Vorkommenshäufigkeits-Zusammensetzungseinrichtung 442 sammelt auf der Grundlage einer Reduce()-Prozedur durch die jeweiligen Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtungen 441-1, 441-2, ..., 441-n berechnete Vorkommenshäufigkeitsinformationen, setzt die Vorkommenshäufigkeiten von Elementen für jeden Tag-Namen in dem XML-Dokument 400 zusammen und überträgt die zusammengesetzten Vorkommenshäufigkeiten an die Datenumverteilungseinrichtung 443. Der Statistikprozessor 443 enthält eine einzelne Vorkommenshäufigkeits-Zusammensetzungseinrichtung 442, wobei Ausgaben von den jeweiligen Tag-Name-Vorkommenshäufigkeits-Schätzeinrichtungen 441-1, 441-2, ..., 441-n als Eingaben an die Vorkommenshäufigkeits-Zusammensetzungseinrichtung 443 gesendet werden.
  • Die Datenumverteilungseinrichtung 443 stellt ein Volumen der Eingangsdaten in Übereinstimmung mit den durch die Statistikprozessoren 440 übertragenen zusammengesetzten Vorkommenshäufigkeiten in der Weise ein, dass jeder Aufgabe eine gleiche Menge von Arbeitsbelastungen zugewiesen werden kann. Zu diesem Zweck empfängt die Datenumverteilungseinrichtung 443 von dem Statistikprozessor 440 die Vorkommenshäufigkeiten von Elementen jedes Tag-Namens und verteilt die Arbeitsbelastungen auf der Grundlage der empfangenen Vorkommenshäufigkeiten in der Weise, dass der Etikettierungsabschlusseinrichtung 453 durch die Etikettierungskomponente 450 eine gleiche Menge von Arbeitsbelastungen zugewiesen wird.
  • Wegen der Einfachheit der Konstruktion als ein Programmiermodul und der durch die Eigenschaft, dass ein System eine Hauptrolle bei der Parallelverarbeitung spielt, gegebenen Zweckmäßigkeit wird MapReduce umfassend verwendet. Allerdings wird der Gesamtprozess um so viel verlängert, wie die Zeit für die spezifische Aufgabe dauert, falls eine spezifische Aufgabe zum Behandeln eines unverhältnismäßigen Datenvolumens erforderlich ist oder falls für die spezifische Aufgabe eine beträchtlich lange Zeit erforderlich ist. Insbesondere dann, wenn eine Umordnungsoperation auf der Grundlage von Tag-Namen ausgeführt wird, gibt es eine sehr große Differenz eines Eingangsdatenvolumens für die Reduce-Prozedur, wodurch eine lange Zeit zum Abschließen einer spezifischen Aufgabe erforderlich ist, was somit den Gesamtprozess verlängert. In Übereinstimmung mit einer beispielhaften Ausführungsform wendet die Datenumverteilungseinrichtung 443 auf jede Aufgabe eine Technik zum Verteilen einer gleichen Menge an Etikettierungsarbeitsbelastungen an, so dass ein Fall, in dem einer spezifischen Aufgabe unverhältnismäßige Arbeitsbelastungen zugewiesen werden, was die gesamte Betriebszeit des Systems verlängert, vermieden werden kann.
  • Zu diesem Zweck empfängt die Datenumverteilungseinrichtung 443 für jeden Tag-Namen Vorkommenshäufigkeiten von Elementen und berechnet einen Mittelwert der Vorkommenshäufigkeiten. Außerdem teilt die Datenumverteilungseinrichtung 443 Elemente mit einem Tag-Namen, deren Vorkommenshäufigkeiten die mittleren Vorkommenshäufigkeiten übersteigen. Zum Beispiel werden die gesamten Elemente mit dem Tag-Namen A in 100 Elemente mit dem Tag-Namen A_1 und 100 Elemente mit dem Tag-Namen A_2 geteilt, falls die mittlere Vorkommenshäufigkeit 100 ist und die Vorkommenshäufigkeit der Elemente mit dem Tag-Namen A 200 ist. Daraufhin wird die Tatsache, dass die Elemente mit dem Tag-Namen A_1 und A_2 als Elemente mit dem Tag-Namen A gedeutet werden, unter Verwendung der Abbildinformationsstruktur aufgezeichnet und wird die Abbildinformationsstruktur 444 an die Etikettierungskomponente 450 übertragen. Jedes für die Teilung verwendete ”A_1” und ”A_2” wird als ein Partitionsschlüssel bezeichnet, wobei die Etikettierungskomponente 450 durch Umverteilen der Elemente in der Teiletikettierungseinrichtung 451 in Übereinstimmung mit den Partitionsschlüsseln Teiletiketten an die Etikettierungsabschlusseinrichtung 453 überträgt.
  • 5 ist ein Ablaufplan, der ein Teiletikettierungsverfahren für die Parallelisierung eines intervallbasierten Etikettierungsschemas in Übereinstimmung mit einer beispielhaften Ausführungsform veranschaulicht.
  • Anhand von 4 und 5 besitzt jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n Variable $Count und $Level und einen Stapel für eine Etikettierungsprozedur. In 501 empfängt jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n einen Datenblock und initialisiert den Stapel und stellt die Variablen $Count und $Level als ”0” ein, bevor der empfangene Datenblock gelesen wird.
  • Daraufhin liest jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n der Reihe nach Tags des empfangenen Datenblocks und erhöht den Wert von $Count in Ansprechen auf das Lesen jedes Tags in 502 um 1. Daraufhin bestimmt jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n in 511, ob ein entsprechendes Tag ein Anfangs-Tag oder ein End-Tag ist.
  • Falls ein beliebiges Tag x ein Anfangs-Tag ist, erhöht in 503 jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n den Wert von $level um 1, erzeugt sie unter Verwendung der aktuellen Variablenwerte ein neues Etikett L und schiebt sie daraufhin das neue Etikett L($Count, _, $Level) auf einen Stapel 503. An diesem Punkt wird kein Endwert in dem intervallbasierten Etikett spezifiziert.
  • Falls ein beliebiges Tag x ein End-Tag ist, verringert jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n in 504 den Wert von $level um 1 und prüft sie in 512, ob der Stapel jetzt leer ist. Wenn der Stapel jetzt leer ist, erzeugt jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n in 505 unter Verwendung der aktuellen Werte von $count und $level ein neues Etikett L. An diesem Punkt wird in dem Etikett L kein neuer Anfangswert spezifiziert, z. B. (_, $Count, $level). Falls der Stapel nicht leer ist, hebt jede der Teiletikettierungseinrichtungen 451-1, 451-2, ..., 451-n ein Etikett von dem Stapel ab und stellt in 506 einen Endwert des Etiketts als den aktuellen Wert in $count ein.
  • Im Fall beider Operationen 505 und 506 wird vor dem Ende des Prozesses in 507 ein Etikett in einem Schlüssel-Wert-Format (K, L) ausgegeben. Der Schlüssel (K) ist ein durch die Datenumverteilungseinrichtung 443 erzeugter Tag-Name oder Partitionsschlüssel und der Wert (L) ist eine Gruppe verschiedener Werte, die für die Kombination mit einem berechneten Etikett erforderlich sind.
  • Der oben beschriebene Etiketterzeugungsprozess wird ständig ausgeführt, solange in 508 ein ungelesenes Tag in dem entsprechenden Datenblock verbleibt. Falls jedes Tag in einem Datenblock gelesen worden ist, werden alle in einem Stapel gespeicherten Etiketten in 509 ausgegeben. Daraufhin werden in 510 die aktuellen Werte $count und $level zusammen mit einer Kennung (ID) des verarbeiteten Datenblocks als Offsetinformationen aufgezeichnet (Block-ID, $count, $level). Die Ausführungsform der Offsetinformationen wird im Folgenden anhand von 7A und 7B beschrieben.
  • 6 ist ein Ablaufplan, der ein Etiketterzeugungsverfahren veranschaulicht, wenn eine Parallelisierung eines intervallbasierten Etikettierungsschemas in Übereinstimmung mit einer Ausführungsform ausgeführt wird.
  • Anhand von 4 und 6 führt die Etikettierungsabschlusseinrichtung 453 den folgenden Prozess aus, um Teiletiketten, die gesammelt werden, auf der Grundlage der Tag-Namen oder der Partitionsschlüssel zu kombinieren.
  • Zunächst erzeugt die Etikettierungsabschlusseinrichtung 453 durch Lesen der für jeden Datenblock von dem verteilten Dateisystem 420 erzeugten Offsetinformationen in 601 eine Offsettabelle. Eine Offsettabelle sind Strukturinformationen, die Informationen enthalten, die für die Korrektur erforderlich sind, die auszuführen ist, wenn durch Kombinieren von Teiletiketten ein Abschlussetikett erzeugt wird. Zum Beispiel besitzt eine Offsettabelle für die intervallbasierte Etikettierung zwei Spaltenwerte, d. h. einen Zählwert und einen Ebenenwert. In der Offsettabelle ist ein Wert in der Zählspalte der ersten Zeile 0 und gibt ein Wert in der Zählspalte der i-ten Zeile eine Summe von Werten der Zählspaalte von Offsetinformationen, die dem ersten Datenblock entsprechen, bis zu Offsetinformationen, die dem (i – 1)-ten Datenblock entsprechen, an. Ähnlich ist in der Offsettabelle ein Wert in dem Ebenenspaltenwert der ersten Zeile 0 und gibt ein Wert der Ebenenspalte der i-ten Zeile eine Summe der Werte in den Ebenenspalteninformations-Offsetinformationen, die dem ersten Datenblock entsprechen, bis zu Offsetinformationen, die dem (i – 1)-ten Datenblock entsprechen, an. Falls z. B. die Werte von $count und $level in den Offsetinformationen, die dem ersten Datenblock entsprechen, 8 bzw. 2 sind, ist ein Wert in der Zählspalte der zweiten Zeile in der Offsettabelle 8, der durch Addieren von 8 zu 0 erhalten wird, während ein Wert in der Ebenenspalte der zweiten Zeile in der Offsettabelle 2 ist, der durch Addieren von 2 zu 0 erhalten wird.
  • Daraufhin initialisiert die Etikettierungsabschlusseinrichtung 453 in 601 den Stapel und empfängt Teiletiketten für einen spezifischen Tag-Namen. Um sicherzugehen, welches Etikett von welchem Datenblock kommt, extrahiert die Etikettierungsabschlusseinrichtung 453 in 602 aus einem Schlüssel-Wert die Datenblock-ID und weist die Datenblock-ID der Variablen $i zu. Daraufhin wird der folgende Prozess wiederholt, bis jedes Teiletikett verarbeitet worden ist.
  • Zunächst bestimmt die Etikettierungsabschlusseinrichtung 453 in 604 und 606, ob ein vorgegebenes Etikett L einen undefinierten Endwert oder einen undefinierten Anfangswert besitzt.
  • Falls das vorgegebene Etikett L einen undefinierten Endwert besitzt, addiert die Etikettierungsabschlusseinrichtung 453 zu einem Anfangswert des vorgegebenen Etiketts L, d. h. zu einem Wert, der (L.start) entspricht, einen Zählwert der i-ten Zeile in der Offsettabelle, d. h., einen Wert, der (Ti.count) entspricht, und addiert sie zu einem Ebenenwert der vorgegebenen Ebene L, d. h. zu einem Wert, der (L.level) entspricht, einen Ebenenwert der i-ten Zeile in der Offsettabelle, d. h. einen Wert, der (Ti.level) entspricht. Daraufhin schiebt die Etikettierungsabschlusseinrichtung 453 das erhaltene Etikett L in 605 auf den Stapel. Zum Beispiel wird angenommen, dass eines der dem Gebiet-Element zugeordneten Etiketten, das <1, x, 1> 1 ist, wobei der Endwert undefiniert ist. In diesem Fall erzeugt die Etikettierungsabschlusseinrichtung 453 durch Addieren des Zählwerts der ersten Zeile in der Offsettabelle, d. h. 0 in (T1.count), zu einem Anfangswert des vorgegebenen Etiketts L, d. h. zu einem Wert in (L.start), und durch Addieren des Ebenenwerts der ersten Zeile in der Offsettabelle, d. h. 0 in (T1.level), zu einem Ebenenwert des vorgegebenen Etiketts L, d. h. zu einem Wert in (L.level), ein Etikett <1, x, 1>.
  • Falls das vorgegebene Etikett L einen undefinierten Anfangswert besitzt, addiert die Etikettierungsabschlusseinrichtung 453 in 608 zu einem Endwert des vorgegebenen Etiketts L, d. h. zu einem Wert, der (L.end) entspricht, einen Zählwert der i-ten Zeile in der Offsettabelle, d. h. einen Wert, der (Ti.count) entspricht, und addiert sie zu einem Ebenenwert des vorgegebenen Etiketts L, d. h. zu einem Wert, der (L.level) entspricht, einen Ebenenwert der i-ten Zeile in der Offsettabelle, d. h. einen Wert, der (Ti.level) entspricht. Zum Beispiel wird angenommen, dass eines der Etiketten, die dem Gebiet-Element zugeordnet sind, <x, 8, –1> 3 ist, wobei der Anfangswert undefiniert ist. In diesem Fall erzeugt die Etikettierungsabschlusseinrichtung 453 durch Addieren des Zählwerts der dritten Zeile in der Offsettabelle, d. h. 16, der (T3.count) entspricht, zu einem Endwert des vorgegebenen Etiketts L, d. h. zu einem Wert, der (L.end) entspricht, und durch Addieren des Ebenenwerts der dritten Zeile in der Offsettabelle, d. h. 2, der (T3.level) entspricht, zu einem Ebenenwert der vorgegebenen Ebene L, d. h. zu einem Wert, der (L.level) entspricht, ein Etikett <x, 24, 1>. Daraufhin hebt die Etikettierungsabschlusseinrichtung 453 eine spezifische Ebene L' in 608 ab und kombiniert sie die vorgegebene Ebene L damit und gibt sie daraufhin in 609 ein Abschlussetikett aus. Hier wird die Kombination durch Einstellen eines leeren Endwerts der spezifischen Ebene L als der Endwert der vorgegebenen Ebene L abgeschlossen.
  • In den anderen Fällen mit Ausnahme der oben Beschriebenen erzeugt die Etikettierungsabschlusseinrichtung 453 in 607 ein Abschlussetikett L durch Addieren eines Etikettwerts der i-ten Zeile in der Offsettabelle, d. h. eines Werts, der (Ti.level) entspricht, zu einem Anfangswert und zu einem Endwert des vorgegebenen Etiketts L und durch Addieren eines Ebenenwerts der i-ten Zeile in der Offsettabelle, d. h. eines Werts, der (Ti.level) entspricht, zu einem Ebenenwert des vorgegebenen Etiketts L, d. h. zu einem Wert, der (L.level) entspricht. Daraufhin gibt die Etikettierungsabschlusseinrichtung 453 in 609 das Abschlussetikett L aus.
  • Zum Beispiel wird angenommen, dass eines der Etiketten des Gegenstand-Elements <1, 6, 1> 2 ist, wobei der Endwert definiert ist. In diesem Fall erzeugt die Etikettierungsabschlusseinrichtung 453 durch Addieren des Zählwerts der zweiten Zeile in der Offsettabelle, d. h. 8, der (T2.count) entspricht, zu einem Anfangswert und zu einem Endwert des vorgegebenen Etiketts, d. h. zu Werten, die (L.start) und (L.end) entsprechen, und durch Addieren des Ebenenwerts der zweiten Zeile in der Offsettabelle, d. h. 2, der (T2.level) entspricht, zu einem Ebenenwert des vorgegebenen Etiketts, d. h. zu einem Wert, der (L.level) entspricht, ein Etikett <9, 14, 3>. Eine Ausführungsform dafür, wie ein Abschlussetikett unter Verwendung eines intervallbasierten Etikettierungsschemas zu erzeugen ist, wird anhand von 7A und 7B ausführlich beschrieben.
  • 7A und 7B sind Darstellungen, die ein Beispiel veranschaulichen, in dem die Parallelisierung eines intervallbasierten Etikettierungsschemas in einem System der vorliegenden Offenbarung in Übereinstimmung mit einer beispielhaften Ausführungsform ausgeführt wird.
  • Anhand von 7A und 7B werden Teiletikettierungseinrichtungen 704-1, 704-2, und 704-3 bereitgestellt, falls ein XML-Dokument 703 in drei Datenblöcken 703-1, 703-2 und 703-3 in einem verteilten Dateisystem verteilt gespeichert ist, wobei jede der Teiletikettierungseinrichtungen 704-1, 704-2 und 704-3 einen anderen Datenblock empfängt, an dem empfangenen Datenblock eine Teiletikettierungsprozedur ausführt und die Teiletiketten 705 ausgibt. An diesem Punkt speichert jede der Teiletikettierungseinrichtungen 704-1, 704-2 und 704-3 die Endwerte von $count und $level hinsichtlich der jeweiligen Datenblöcke zusammen mit Datenblock-IDs als Offsetinformationen in dem verteilten Dateisystem.
  • Zum Beispiel liest die Teiletikettierungseinrichtung 1 704-1 einen Datenblock 1 703-1 und gibt sie insgesamt fünf Etiketten aus. An diesem Punkt haben sowohl das Afrika-Element 706 als auch das Gebiet-Element 707 Anfangs-Tags in dem Datenblock 703-1, aber keine End-Tags. Somit besitzt sowohl das Afrika-Element 706 als auch das Gebiet-Element 707 ein Etikett mit einem undefinierten Endwert. Da sowohl das Afrika-Element 706 als auch das Gebiet-Element 707 in dem Datenblock 1 703-1 undefinierte End-Tags besitzen, wird ähnlich ein Wert für die in dem verteilten Dateisystem aufzuzeichnende Variable $level als 2 eingestellt. Außerdem wird in Ansprechen auf das Auftreten eines Tags unabhängig von dessen Typ ein Wert für die Variable $count erhöht, so dass ein Wert für die Variable $count durch Lesen aller 8 Tags von dem Datenblock 1 703-1 als 8 eingestellt wird.
  • Das Asien-Element 708 besitzt in dem Datenblock 2 703-2 ein Anfangs-Tag, aber kein End-Tag, so dass ein Etikett 710 des Asien-Elements 708 einen undefinierten Endwert besitzt. Allerdings besitzt das Afrika-Element 709 in dem Datenblock 3 703-3 kein Anfangs-Tag, da sein Anfangs-Tag in dem Datenblock 1 703-1 erscheint. Somit wird ein Etikett 711 des Afrika-Elements 709 in Bezug auf den Datenblock 2 703-2 mit einem undefinierten Anfangswert ausgegeben.
  • Wie in dem Bezugszeichen 712 gezeigt ist, sind die Ausgaben der Teiletikettierungseinrichtungen 704-1, 704-2 und 704-3 in einem Schlüssel-Wert-Format. 'Schlüssel' gibt hier einen Tag-Namen an und 'Wert' gibt hier eine Kombination eines Etiketts und einer Block-ID an. Teiletiketten werden in Übereinstimmung mit einem MapReduce-Programmiermodul umgeordnet, auf der Grundlage der Schlüssel, d. h. der Tag-Namen, in Gruppen klassifiziert und daraufhin der Etikettierungsabschlusseinrichtung 713 zugeordnet, die auf der Grundlage einer Reduce-Prozedur arbeitet.
  • Zum Beispiel werden zwei Etiketten <1, x, 1> und <x, 8, –1> (712-1) für das Gebiet-Element gesammelt, um an eine Etikettierungsabschlusseinrichtung 1 713-1 übertragen zu werden. Die Etikettierungsabschlusseinrichtung 1 713-1 kombiniert die zwei Etiketten 712-1 mit Bezug auf eine Offsettabelle 702. In Bezug auf das Gebiet-Element werden zwei von den Datenblöcken 1 703-1 und von dem Datenblock 3 703-3 kommende Etiketten kombiniert, so dass die Werte der ersten und der dritten Zeile in der Offsettabelle 702 addiert werden, um als ein Etikett eingestellt zu werden, und wird das Etikett mit einem anderen Etikett kombiniert. Das heißt, <1, x, 1> des Gebiet-Elements in dem Datenblock 1 703-1 wird durch Addieren der Werte der ersten Zeilen in der Offsettabelle 702 dazu als <1, x, 1> eingestellt; <x, 8, –1> des Gebiet-Elements in dem Datenblock 3 703-3 wird durch Addieren von Werten der dritten Werte in der Offsettabelle 702 dazu als <x, 24, 1> eingestellt; und daraufhin werden die zwei Etiketten <1, x, 1> und <x, 24, 1> kombiniert, um ein neues Etikett <1, 24, 1> zu erzeugen.
  • Andererseits werden die Etiketten 712-3 für Gegenstand-Elemente in jedem Datenblock vollständig berechnet, so dass es nicht notwendig ist, die Etiketten 712-2 zu kombinieren, so dass ein Abschlussetikett einfach durch Addieren der Werte einer entsprechenden Zeile in der Offsettabelle zu den Etiketten 712-2 erzeugt werden kann.
  • Währenddessen wird die Parallelisierung eines präfixbasierten Etikettierungsschemas ebenfalls auf dieselbe Weise wie oben anhand von 4 beschrieben ausgeführt, wobei aber anstelle des Kombinierens von Teiletiketten ein Korrekturoperator verwendet wird, um ein Etikett zu erzeugen. Im Folgenden wird die Parallelisierung eines präfixbasierten Etikettierungsschemas anhand von 8A und 8B beschrieben.
  • 8A und 8B sind Darstellungen, die ein Beispiel veranschaulichen, in dem die Parallelisierung eines präfixbasierten Etikettierungsschemas in einem System der vorliegenden Offenbarung in Übereinstimmung mit einer beispielhaften Ausführungsform ausgeführt wird.
  • Anhand von 8A und 8B führen Teiletikettierungseinrichtungen 802-1, 802-2 und 802-3 an in den jeweiligen Datenblöcken 803-1, 803-2 und 803-3 enthaltenen Elementen eine Teiletikettierungsprozedur aus. An diesem Punkt besitzt jede der Teiletikettierungseinrichtungen 802-1, 802-2 und 802-3 einen Vektor V und eine Variable $o, wobei der Vektor V zum Speichern eines Etiketts eines Mutterelements eines vorgegebenen Elements dient und die Variable $o zum Speichern eines internen Ordnungswerts des vorgegebenen Elements dient.
  • Zu Beginn initialisiert jede der Teiletikettierungseinrichtungen 802-1, 802-2 und 802-3 Werte des Vektors V und der Variablen $o. Daraufhin erzeugt jedes Mal, wenn irgendein Anfangs-Tag erscheint, jede der Teiletikettierungseinrichtungen 802-1, 802-2 und 802-3 ein neues Etikett mit einem Wert für den Vektor V, der um 1 größer als ein Wert für die Variable $o ist, und fügt das neue Etikett in einen Wert für den Vektor V ein, während ein Wert für die Variable $o als 0 zurückgesetzt wird. Da der erste Wert der Variablen $o 0 ist, wird ein Ausgangsetikett als 1 eingestellt und daraufhin das Etikett von 1 in den Vektor V eingefügt. Allerdings besitzt ein Anfangs-Tag des Afrika-Elements als einen Wert für den Vektor V 1 und als die Variable $o 0, so dass ein Etikett 1.1 erzeugt wird.
  • Wenn ein End-Tag irgendeines Elements erscheint, trennt jede der Teiletikettierungseinrichtungen 802-1, 802-2 und 802-3 ein Präfix von einem gespeicherten Etikett als einen Wert für V ab und stellt das Präfix als einen Wert für $o ein, solange der Vektor V nicht leer ist. Falls der Vektor V leer ist, wird die Variable o als 0 zurückgesetzt. Zum Beispiel haben das Mengen- und das Zahlungs-Element in dem Datenblock 1 803-1 sowohl ein Anfangs-Tag als auch ein End-Tag. Wenn die Teiletikettierungseinrichtung 1 802-1 das Endtag des Mengenelements erfüllt, ist in dem Vektor V bereits ein Etikett 1.1.1.1 gespeichert. Der Vektor V wird als 1.1.1 eingestellt, was durch Entfernen des Präfixes 1 von dem Etikett 1.1.1.1 erhalten wird, und die Variable $o wird als das entfernte Präfix 1 eingestellt. Wenn daraufhin die Teiletikettierungseinrichtung 1 802-1 das Anfangs-Tag des Zahlungselements erfüllt, wird zu dem Vektor V von 1.1.1 ($o + 1) addiert, so dass in Bezug auf das Zahlungselement ein Etikett 1.1.1.2 ausgegeben wird.
  • Unter Verwendung des oben beschriebenen Verfahrens führen die Teiletikettierungseinrichtungen 802-1, 802-2 und 802-3 an den Elementen in den jeweils zugeordneten Datenblöcken eine Teiletikettierungsprozedur aus. Wenn der Prozess daraufhin endet, speichert jede der Teiletikettierungseinrichtungen 802-1, 802-2 und 802-3 in 804 Abschlusszustandswerte des Vektors V und von $o zusammen mit einer Datenblock-ID in einem verteilten Dateisystem. Zusammen mit den Abschlusszustandswerten wird ein Basiswert gespeichert, wobei der Basiswert die Anzahl der End-Tags angibt, die in entsprechenden Blockdaten ohne entsprechende Anfangs-Tags vorhanden sind. Der Basiswert wird bei der Bestimmung der Anzahl der Präfixe verwendet, die von dem Vektor V entfernt werden und auf die daraufhin für die Berechnung eines Abschlussetiketts Bezug genommen wird. Wie in 805 gezeigt ist, wird ein Teiletikett in einem Schlüssel-Wert-Format ausgegeben, in dem Tag-Namen/Partitions-Schlüssel als Schlüssel eingestellt sind und eine Kombination eines Teiletiketts, eines Basiswerts, der Datenblock-ID als ein Wert eingestellt ist.
  • Jede der Etikettierungsabschlusseinrichtungen 806-1 und 806-2 berechnet durch Korrigieren von Teiletiketten mit Bezug auf eine auf der Grundlage von Offsetinformationen 804 geschriebene Offsettabelle 801, die zu einem Zeitpunkt aufgezeichnet wird, zu dem der Gesamtprozess endet, ein Abschlussetikett und gibt es aus, wobei die Teiletiketten auf der Grundlage der Tag-Namen gruppiert werden. Für die Parallelisierung der intervallbasierten Etikettierung verwendet die vorliegende Offenbarung einen einzelnen Korrekturoperator, um eine Offsettabelle zu schreiben, und korrigiert sie Etiketten auf der Grundlage der Offsettabelle.
  • Die im Folgenden gezeigte Tabelle 1 erläutert ein Betriebsprinzip eines Etikettkorrekturoperators, der im Fall der Parallelisierung eines intervallbasierten Etikettierungsschemas in Übereinstimmung mit einer beispielhaften Ausführungsform zum Korrigieren von Etiketten verwendet wird. (Tabelle 1)
    Figure DE102014110590A1_0002
  • In Übereinstimmung mit Tabelle 1 wird ein Etikettkorrekturoperator sowohl beim Berechnen einer Offsettabelle als auch beim Korrigieren von Etiketten verwendet.
  • Der Etikettkorrekturoperator korrigiert ein präfixbasiertes Etikett eines spezifischen Elements unter Verwendung von Tupeln eines Elements vor dem spezifischen Element. Wie in Tabelle 1 gezeigt ist, gibt es drei Arten, um Etiketten zu korrigieren. Zum Beispiel wird angenommen, dass es zwei Tupel X und Y gibt und dass X <1.1, 0, 2> ist.
  • Für Y: <1.1, 0, 1> um = 0, was dem ersten Fall in Tabelle 1 entspricht. Die Etiketten werden als <1.1, 0, 2> ⊙ <1.1., 0, 1> = <1.1.(2 + 1).1, 0, 1>, korrigiert, so dass das Abschlussetikett <1.1.3.1, 0, 1> ist.
  • Für Y: <leer, –1, 1> um ≠ 0, n = 0, was dem zweiten Fall in Tabelle 1 entspricht, wobei die Etiketten als <1.1, 0, 2> ⊙ <leer, –1, 1> = <1, 0, 2> korrigiert werden.
  • Für Y: <1.1, –1, 1> um ≠ 0, n > 0, was dem dritten Fall in Tabelle 1 entspricht, wobei die Etiketten als <1.1, 0, 2> ⊙ <1.1., –1, 1> = <1.(1 + 1).1, 0, 1> korrigiert werden. Der Etikettkorrekturoperator ⊙ befolgt weder das Kommunikativgesetz noch das Assoziativgesetz. Das heißt, X ⊙ Y ≠ Y ⊙ X und X ⊙ (Y ⊙ Z) ≠ (X ⊙ Y) ⊙ Z.
  • In einer intervallbasierten Etikettierungstechnik besitzt eine Offsettabelle die Spalten Etikettwert, Basiswert und inneren Ordnungswert, wobei Tupel davon wie folgt konfiguriert sind:
    Das erste Tupel ist als <leer, 0, 0> gegeben und die folgenden Tupel sind ein Wert, der durch Berechnen von Offsetinformationen, die dem ersten Datenblock bis (i – 1)-ten Datenblock entsprechen, unter Verwendung von ⊙ erhalten wird. Das letzte Teiletikett eines XML-Elements in dem i-ten Datenblock, das ein Basiswert b besitzt, wird als T' = Ti ⊙ <L, b, _> berechnet, so dass das Teiletikett als das Abschlussetikett L' erhalten wird. Ti bezeichnet hier das i-te Tupel in der Offsettabelle und L' ist ein Etikett eines resultierenden Tupels T. Zum Beispiel ist das Gegenstand-Element des Datenblocks 2 803-2 in Tabelle durch die Teiletikettierungseinrichtung 2 802-2 mit 1 bezeichnet und ist sein Basiswert 0. Somit wird das Ergebnis von der Teiletikettierungseinrichtung 2 802-2 als <1, 0, _> aufgezeichnet. Das Gegenstand-Element gehört zu dem Datenblock 2 803-2, so dass ein Etikett des Gegenstand-Elements mit Bezug auf den zweiten Tupelwert in der Offsettabelle korrigiert wird. Es wird durch T' = <1.1, 0, 1> ⊙ <1, 0, _> = <1.1.(1 + 1), 0, _> dargestellt. Somit wird das Abschlussetikett L' 1.1.2.
  • Ein intervallbasiertes Etikettierungsschema und ein präfixbasiertes Etikettierungsschema, die beide typische Etikettierungsschema sind, die für ein großes XML-Dokument verwendet werden, können eine Etikettierungsoperation in einer verteilten Umgebung parallel effizient ausführen.
  • Außerdem ist es durch Anwenden einer Technik, die die Etikettierungsarbeitsbelastungen zwischen verteilten Knoten ausgleicht, möglich, eine Verarbeitungsverzögerung, die durch einem spezifischen Knoten zugewiesene unverhältnismäßig hohe Arbeitsbelastungen verursacht sein kann, zu verhindern.
  • Ferner ist es dadurch, dass eine Korrektur während Paralleletikettierungsoperationen ausgeführt wird, um irgendeinen Verlust von Strukturinformationen jedes in einem XML-Dokument enthaltenen Elements zu verhindern, möglich, nicht nur dasselbe Ergebnis zu erhalten, wie es unter Verwendung eines Hintereinanderausführungsalgorithmus erzielt werden kann, sondern auch den Gesamtprozess unter Verwendung der Parallelisierung zu beschleunigen.
  • Oben sind eine Anzahl von Beispielen beschrieben worden. Dennoch können selbstverständlich verschiedene Änderungen vorgenommen werden. Zum Beispiel können geeignete Ergebnisse erzielt werden, falls die beschriebenen Techniken in einer anderen Reihenfolge ausgeführt werden und/oder falls Komponenten in einem System, in einer Architektur, in einer Vorrichtung oder in einer Schaltung, die beschrieben worden sind, auf andere Weise kombiniert werden und/oder durch andere Komponenten oder ihre Entsprechungen ersetzt oder ergänzt werden. Dementsprechend liegen andere Implementierungen im Schutzumfang der folgenden Ansprüche.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2013-008911 [0001]
    • KR 10-2014-0056817 [0001]

Claims (10)

  1. Parallel-Baum-Etikettierungsvorrichtung zum Verarbeiten eines eXtensible-Markup-Language-Dokuments (XML-Dokuments), wobei die Vorrichtung umfasst: eine Datenverteilungseinrichtung, die dafür konfiguriert ist, das XML-Dokument in mehrere Datenblöcke zu teilen; und eine Etikettierungskomponente, die dafür konfiguriert ist, Elemente jedes der mehreren Datenblöcke zu empfangen, an den mehreren Datenblöcken parallel eine Etikettierungsprozedur auszuführen und durch Kombinieren von Teiletiketten ein Abschlussetikett zu erzeugen.
  2. Parallel-Baum-Etikettierungsvorrichtung nach Anspruch 1, wobei die Etikettierungskomponente ein in Übereinstimmung mit einem MapReduce-Programmiermodul geschriebenes Programm oder ein Modul, das als das Programm fungiert, ist.
  3. Parallel-Baum-Etikettierungsvorrichtung nach Anspruch 1 oder 2, wobei die Etikettierungskomponente ferner dafür konfiguriert ist, Folgendes zu umfassen: mehrere Teiletikettierungseinrichtungen, von denen jede dafür konfiguriert ist, an Elementen eines ihr zugeordneten Datenblocks eine Teiletikettierungsprozedur auszuführen; und eine Etikettierungsabschlusseinrichtung, die dafür konfiguriert ist, durch Sammeln von Gruppen von Teiletiketten das Abschlussetikett zu erzeugen, wobei die Teiletiketten durch Umordnen der Teiletiketten, an denen die Teiletikettierung durch die mehreren Teiletikettierungseinrichtungen parallel ausgeführt worden ist, gruppiert werden.
  4. Parallel-Baum-Etikettierungsvorrichtung nach Anspruch 3, wobei jede der mehreren Teiletikettierungseinrichtungen dafür konfiguriert ist, an einem ihr zugeordneten Datenblock eine Teiletikettierungsprozedur auszuführen und Offsetinformationen, die zum Kombinieren und Korrigieren von Teiletiketten erforderlich sind, wenn die Etikettierungsabschlusseinrichtung das Abschlussetikett berechnet, aufzuzeichnen.
  5. Parallel-Baum-Etikettierungsvorrichtung nach Anspruch 3 oder 4, wobei jede der mehreren Teiletikettierungseinrichtungen ferner konfiguriert ist zum: Aufzeichnen eines numerischen Tag-Werts jedes Tags, wenn Tags in einem ihnen zugeordneten Datenblock gelesen werden; Erhalten relativer Ebeneninformationen in dem zugeordneten Datenblock durch Berechnen einer Anzahl von Anfangs-Tags und End-Tags, die nicht als ein Paar gekoppelt sind; Neuberechnen eines Etiketts unter Verwendung einer Anzahl numerischer Tag-Werte, die nicht mit anderen numerischen Tag-Werten gekoppelt sind; und Aufzeichnen eines Etiketts eines letzten Elements in dem zugeordneten Datenblock.
  6. Parallel-Baum-Etikettierungsvorrichtung nach Anspruch 3, 4 oder 5, wobei die Etikettierungsabschlusseinrichtung ferner dafür konfiguriert ist, das Abschlussetikett durch Korrigieren von Etiketten auf der Grundlage der Offsetinformationen beim Kombinieren der Teiletiketten zu erzeugen, wobei die Offsetinformationen Strukturinformationen sind, die zum Korrigieren erforderlich sind, wenn das Abschlussetikett durch Kombinieren der Teiletiketten erzeugt wird.
  7. Parallel-Baum-Etikettierungsvorrichtung nach Anspruch 3, 4 oder 5, wobei die Etikettierungsabschlusseinrichtung ferner dafür konfiguriert ist, das Abschlussetikett durch Korrigieren der Teiletiketten unter Verwendung eines Korrekturoperators beim Kombinieren der Teiletiketten zu erzeugen.
  8. Parallel-Baum-Etikettierungsvorrichtung nach einem der Ansprüche 1 bis 7, die ferner umfasst: einen Statistikprozessor, der dafür konfiguriert ist, das durch die Datenverteilungseinrichtung geteilte XML-Dokument zu lesen und Vorkommenshäufigkeiten von Elementen für jeden Tag-Namen in jedem Datenblock des XML-Dokuments zusammenzusetzen.
  9. Parallel-Baum-Etikettierungsverfahren zum Verarbeiten eines eXtensible-Markup-Language-Dokuments (XML-Dokuments), wobei das Verfahren umfasst: Teilen des XML-Dokuments in mehrere Datenblöcke; und Empfangen von Elementen jedes der mehreren Datenblöcke, Ausführen einer Etikettierungsprozedur an jedem der mehreren Datenblöcke und Erzeugen eines Abschlussetikettes durch Kombinieren von Teiletiketten.
  10. Parallel-Baum-Etikettierungsverfahren nach Anspruch 9, wobei das Erzeugen des Abschlussetiketts umfasst: Ausführen der Etikettierungsprozedur an Elementen jedes zugeordneten Datenblocks auf Datenblockbasis; und Erzeugen des Abschlussetiketts durch Sammeln von Gruppen von Teiletiketten, wobei die Teiletiketten, an denen die Etikettierungsprozedur parallel ausgeführt wird, durch eine Umordnungsoperation gruppiert werden.
DE102014110590.7A 2013-07-26 2014-07-28 Parallel-Baum-Etikettierungsvorrichtung und -verfahren zum Verarbeiten eines XML-Dokuments Ceased DE102014110590A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2013-0089112 2013-07-26
KR20130089112 2013-07-26
KR1020140056817A KR20150013000A (ko) 2013-07-26 2014-05-12 Xml 문서의 병렬 트리 레이블링 장치 및 그 방법
KR10-2014-0056817 2014-05-12

Publications (1)

Publication Number Publication Date
DE102014110590A1 true DE102014110590A1 (de) 2015-01-29

Family

ID=52274197

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014110590.7A Ceased DE102014110590A1 (de) 2013-07-26 2014-07-28 Parallel-Baum-Etikettierungsvorrichtung und -verfahren zum Verarbeiten eines XML-Dokuments

Country Status (2)

Country Link
US (1) US20150032764A1 (de)
DE (1) DE102014110590A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9922023B2 (en) * 2014-09-05 2018-03-20 Oracle International Corporation Parallel parsing of file partitions storing a single XML document
CN107977341A (zh) * 2016-10-21 2018-05-01 北京航天爱威电子技术有限公司 大数据文本快速处理方法
US10769126B1 (en) * 2017-09-22 2020-09-08 Amazon Technologies, Inc. Data entropy reduction across stream shard

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130008911A (ko) 2011-07-13 2013-01-23 엘지디스플레이 주식회사 입체영상 표시장치와 그 구동방법
KR20140056817A (ko) 2012-10-31 2014-05-12 현대중공업 주식회사 싸이클론 분리기

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451390B2 (en) * 2001-09-10 2008-11-11 Fujitsu Limited Structured document processing system, method, program and recording medium
US6889226B2 (en) * 2001-11-30 2005-05-03 Microsoft Corporation System and method for relational representation of hierarchical data
EP1645961A4 (de) * 2003-07-10 2006-09-27 Fujitsu Ltd Verarbeitungsverfahren, einrichtung und speichermedium für strukturierte dokumente
WO2005098665A1 (en) * 2004-04-08 2005-10-20 Justsystems Corporation Apparatus for processing documents that use a mark up language
JP4898405B2 (ja) * 2006-12-01 2012-03-14 キヤノン株式会社 文書データ処理方法、文書データ作成装置、及び文書データ処理装置
JP5347965B2 (ja) * 2007-09-07 2013-11-20 日本電気株式会社 Xmlデータ処理システム、該システムに用いられるデータ処理方法及びxmlデータ処理制御プログラム
US8739022B2 (en) * 2007-09-27 2014-05-27 The Research Foundation For The State University Of New York Parallel approach to XML parsing
WO2010106681A1 (ja) * 2009-03-19 2010-09-23 富士通株式会社 データベース検索プログラムを記録するコンピュータ読取可能な記憶媒体、データベース検索装置、および、データベース検索方法
US20130006993A1 (en) * 2010-03-05 2013-01-03 Nec Corporation Parallel data processing system, parallel data processing method and program
JP5480034B2 (ja) * 2010-06-24 2014-04-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書の木構造を分割するための方法、プログラムおよびシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130008911A (ko) 2011-07-13 2013-01-23 엘지디스플레이 주식회사 입체영상 표시장치와 그 구동방법
KR20140056817A (ko) 2012-10-31 2014-05-12 현대중공업 주식회사 싸이클론 분리기

Also Published As

Publication number Publication date
US20150032764A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
DE112012005533B4 (de) Unterstützende Abfrage und ein Abfragen
DE69030228T2 (de) Verfahren zur Verbindung zweier Relationen einer Datenbank auf einem gemeinsamen Feld in einem parallelen Datenbanksystem
DE3506749A1 (de) Matrixprozessor und steuerverfahren hierfuer
DE112011102242T5 (de) Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit
DE1218761B (de) Datenspeidbereinrichtung
DE2346525B2 (de) Virtuelle Speichereinrichtung
DE112011104005T5 (de) Verfahren und Datenverarbeitungssystem zum Kodieren von in einer spaltenorientierten Weise gespeicherten Daten, Datenverarbeitungsprogramm und Computerprogrammprodukt
EP3520014B1 (de) Verfahren und system zum anonymisieren von datenbeständen
DE102019200278A1 (de) Master-Steuervorrichtung und diese verbindendes Synchronkommunikationssystem
DE102014110590A1 (de) Parallel-Baum-Etikettierungsvorrichtung und -verfahren zum Verarbeiten eines XML-Dokuments
DE2717311A1 (de) Datenprozessor
DE112013006646T5 (de) Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112017006445T5 (de) Verfahren und Geräte zur Identifizierung eines Zählwerts von N-Grammen, die in einem Korpus vorkommen
DE2003150C3 (de) Prioritätsschaltung
DE202014011350U1 (de) FFT- Beschleuniger
DE69030942T2 (de) Verfahren und Vorrichtung zur Zuweisung von Operationen
DE112019000382T5 (de) GANZZAHLIGER MULTIPLIKATOR MIT MEHRFACHER GENAUIGKEIT DURCH MATRIX-MATRIX-MULTIPLIKATIONEN UNTER VERWENDUNG EINES 16-BIT-FLIEßKOMMA-MULTIPLIKATORS
DE102010002111A1 (de) Verfahren und Anordnung zur Verteilung der Rechenlast in Datenverarbeitungseinrichtungen bei einer Durchführung von blockbasierten Rechenvorschriften sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
DE1081255B (de) Digitales elektronisches Rechengeraet mit Impulsumlaufspeichern
DE102014113693A1 (de) Verfahren und system zum laden von daten mit komplexen beziehungen
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
DE102017216823A1 (de) Verarbeitungseinheit, elektronische steuereinheit und verarbeitungsverfahren
DE102007006184B3 (de) Verfahren zum rechnergestützten Betrieb eines technischen Netzwerks
DE102020129051A1 (de) Datenbus, datenverarbeitungsverfahren dafür und datenverarbeitungsvorrichtung
DE102004007615A1 (de) Ermitteln eines Datenwerts, der mit überwiegender Wahrscheinlichkeit eine Primzahl repräsentiert

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: G06F0016000000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0016000000

Ipc: G06F0016901000

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final