Bibliographic Metadata

Title
XML Data Storage Vergleich
Additional Titles
XML Data Storage Comparison
AuthorFügl, Heinz
Thesis advisorGöschka, Karl Michael
Published2015
Date of SubmissionJanuary 2015
LanguageEnglish
Document typeBachelor Thesis
Keywords (DE)XML-Database / BaseX / Hadoop / MariaDB / Galera Cluster / FpML
Keywords (EN)XML-Database / BaseX / Hadoop / MariaDB / Galera Cluster / FpML
Restriction-Information
 _
Classification
Abstract (German)

Diese Arbeit beschäftigt sich mit verschiedenen XML-Speicherungsmöglichkeiten in unterschiedlichen Architekturen. Repräsentativ wurden MariaDB als relationale Datenbank, BaseX als XML-Datenbank und Hadoop für ein verteiltes Filesystem gewählt.

Für die unterschiedlichen Produkte wurde jeweils ein Cluster mit drei Nodes aufgesetzt. MariaDB wurde mit einem Galera Cluster (Aktiv-Aktiv Cluster mit Multi-Master Replikation) installiert und für BaseX wurde mittels Round-Robin eine Verteilung der Datenbeladung durchgeführt.

Zunächst wurde die Performance von BaseX bei der Beladung mit ca. 38.000 XML Dokumenten, welche 100 MB entsprechen, analysiert. Dies wurde sowohl über die Java API als auch über das REST Interface durchgeführt. Um BaseX bei gleichzeitiger Belastung von mehreren Sessions zu testen, wurde die Testapplikation auch als multi-threaded Version umgeschrieben.

Der MariaDB Galera Cluster verteilt im Gegensatz zum BaseX Testaufbau selbständig. MariaDB bietet keinen eigenen XML-Datentyp daher wurden die Files in BLOB-Felder abgelegt. Es wurde die Java API mit den Standardbeladetools verglichen, unter Berücksichtigung verschiedener Einstellmöglichkeiten.

Zum Schluss wurde die Performance bei der Beladung mit HDFS (Hadoop Distributed Filesystem Dateisystem) getestet.

Aufgrund der durchgeführten Testreihen kann man schließen, dass Hadoop nicht für die Verarbeitung von kleineren bis mittleren XML-Files geeignet ist. BaseX bietet hier eine gute Performance und verfügt gleichzeitig über die meisten XML relevanten Features von den drei getesteten Produkten.

Abstract (English)

The aim of this thesis is to investigate and analyze data load capabilities of XML-storages on different architectures. For each technology a certain product was chosen, MariaDB as RDBMS, Cloudera Hadoop as DFS and BaseX as NoSQL representative.

For every environment a Cluster Setup was used in order to enable comparability. For MariaDB a Galera Cluster was setup, for BaseX Round-Robin as distribution algorithms was selected and implemented and Hadoop comes up with a cluster setup by default

First, BaseX was analyzed in loading ~38.000 XML Files (100 MB) over Java API and over REST Interface with and without optimization hints. To reach the maximum performance the Test-System was capable to make available, a multithreaded approach has been used.

In contrast to the previous solution MariaDB Galera Cluster distributes the data within the nodes itself, supply standard data load tools but does not provide a native XML Data type. These tools have been compared with different options using the Java-JDBC API as XML Storage a Blob Field was used.

Last but not least, Hadoop has been tested, again with the supplied Java API and standard command line tools.

On the basis of the results of this research, it can be concluded that Hadoop does not achieve suitable performance for small and medium sized XML-Files. Furthermore BaseX shows strong performance, robustness and provides the most and newest features for XML processing.