XML Database Benchmarking Schriftliche Ausarbeitung im Rahmen des Seminars „Data on the Web“ bei Prof. Dr. Marc H. Scholl und André Seifert im Masterprogramm Information Systems Engineering von Peter Cavadini im Sommersemester 2001 Inhaltsverzeichnis Abstract (Deutsch, English) 3 1. Einführung 3 3 4 1.1 Überblick 1.2 Motivation 2. Typische Charakteristika von Benchmark-Verfahren 5 3. Übersicht verschiedener Benchmark-Verfahren 5 6 7 7 3.1 Beispiele aus der TPC-Benchmark-Familie 3.2 007-Benchmark 3.3 XMach-1 Benchmark 4. Beispiel: XMark Benchmark, Version 1.0 4.1 4.2 4.3 4.4 4.5 4.6 8 8 10 11 12 13 14 Einleitung Beschreibung der Datenbank Hierarchie der Elementstruktur Einschränkungen bezüglich XML-Konstrukten Benchmark-Queries Ergebnisse 5. Zusammenfassung 15 6. Anhang 16 16 17 6.1 Literaturverzeichnis 6.2 Abbildungsverzeichnis 2 Abstract Deutsch Mit den Standardisierungsanstrengungen bei Anfragesprachen für XML-Dokumente steigt das Interesse von Wissenschaft und Industrie an Datenbanktechnologien, die in der Lage sind, die grossen Datenmengen effizient zu handhaben. Wichtige Stichworte sind hierbei die Gültigkeit der Daten, Performancekriterien und die Optimierung der Query-Prozessoren. Das vorliegende Papier begründet, weshalb es sich lohnt, verschiedene XML-Datenbanken bezüglich der genannten Kriterien zu vergleichen. Im weiteren werden dem Verständnis dienliche Grundlagen erläutert und typische Charakteristika verschiedener Benchmark-Tests herausgearbeitet. Sodann werden einige Benchmark-Verfahren kurz erläutert. Zur Veranschaulichung wird schliesslich ein Benchmark-Verfahren für XML-Datenbanken exemplarisch erläutert: Es handelt es sich um den XMark Benchmark des National Research Institute for Mathematics and Computer Science, Amsterdam/Niederlande. Eine Zusammenfassung rundet das Arbeitspapier ab. Abstract English With the standardisation efforts of a query language for XML documents, researchers and users increasingly focus their attention on the database technology. That has to deliver answers on the new challenges of the sheer amount of XML documents produced by applications of the data management: Validation, performance evaluation and optimisation of XML query processors are upcoming issues. This paper illustrates, why it is rewarding to compare different benchmark tests for XML databases. In addition, some basic knowledge necessary for understanding will be explained as well as some typical characteristics. Further, the reader will be informed about some benchmarks. For illustration reasons, one example will be shown: The XMark Benchmark of the National Research Institute for Mathematics and Computer Science, Amsterdam/The Nederlands. Finally, the paper will be completed with a summery. 1. Einführung 1.1 Überblick Im Rahmen dieses Papiers soll in kurzer Form aufgezeigt werden, warum es sich lohnt, Vergleiche zwischen den verschiedenen XML1-Datenbanken anzustellen (Kapitel 1.2ff). Im weiteren wird versucht, in kurzer Form typische Charakteristika von Benchmark2-Verfahren herauszuarbeiten (Kapitel 2). Abschnitt 3 gibt einen groben Überblick über einige Benchmark-Tests und Kapitel 4 behandelt exemplarisch ein Beispiel, nämlich den XMark Benchmark, Version 1.0 des CWI3. Abschnitt 5 fasst den Text abschliessend zusammen. Zwecks Vollständigkeit wird in Kapitel 6 das Literatur- und Abbildungsverzeichnis aufgeführt. 1 2 3 XML = eXtensible Markup Language (engl.): Wörtlich „erweiterbare Auszeichnungssprache“; Ende 1997 vom World Wide Web Consortium (W3C) vorgestellte Beschreibungssprache, die eine reduzierte Variante von SGML (Standardized Generalized Markup Language) darstellt. XML wurde als professionelle Variante zu HTML (Hypertext Markup Language) konzipiert. Das Besondere an XML ist, dass sich eigene Befehle definieren lassen, die die Sprache um Fähigkeiten erweitert, die HTML nicht bietet [Irlbeck 98]. Benchmark (engl.): Wörtlich „Massstab“; numerischer Wert, der mit einem Messverfahren ermittelt wird und Rückschlüsse auf die Leistungsfähigkeit eines Computers, einer Software, einer Bildschirmkarte u.a. Hardwarebestandteile erlauben soll. Benchmarks lassen sich sowohl mit Hilfe einer Stoppuhr als auch mit über speziell für diesen Zweck entwickelte Programme ermitteln. Z.B. werden bei Festplatten die mittlere Zugriffszeit (Access Time) und die Übertragungsgeschwindigkeit (Transfer Speed) gemessen [Irlbeck 98]. CWI: National Research Institute for Mathematics and Computer Science, Amsterdam, Niederlande. 3 1.2 Motivation XML als erweiterbare Auszeichnungssprache berührt mittlerweile alle Felder der Internet-Applikationen und die damit verbundenen riesigen Datenmengen. Aus diesem Grunde interessiert sich eine steigende Anzahl von Content Providern4 für die Weiterentwicklung von Data Management Systemen für grosse Datenmengen. Die Komplexität dieser Herausforderung hat nun auch die Aufmerksamkeit der DatenbankForschungsgemeinde auf sich gezogen. Frühere Anstrengungen konzentrierten sich dabei auf Themen bezüglich Schemata und die Theorie, wie Daten zu organisieren sind, denen ein fixes Schema fehlt und die infolgedessen auf den ersten Blick als nicht kompatibel mit existierenden Technologien scheinen. Unter dem Eindruck des steigenden Einflusses von XML und den damit verbunden kommerziellen Produkten schwenkte der Blick der Forschungsgemeinde schliesslich auf spezifische Themen wie beispielsweise Fragen bezüglich der Performance. Dies wiederum beeinflusst Erfolg oder Misserfolg von Lösungen, die sich noch in der Entwicklungsphase befinden. In jüngster Zeit versuchen Datenbankhersteller, ihre Produkte über die Unterstützung grundlegender XML-Funktionen (z.B. Konvertieren von relationalen Daten in XML-Dokumente) hinaus mit einer Vielzahl an Features zu verkaufen, um die kundenspezifischen Bedürfnisse zu befriedigen. Aber trotz grossen Fortschritten und obwohl die Differenzen zwischen XML- und relationalen- bzw. objekt-relationalen Daten überbrückbar sind, sind die Implikationen der zugrundeliegenden Datenspeicherung heute noch nicht ganz verstanden. XML, definiert als erweiterbare Auszeichnungssprache, bietet im Gegensatz zu (O)RDBMS5 eine natürliche Ordnung der Datenelemente; der String6 ist der Hauptdatentyp, von welchem weitere Datentypen abgeleitet werden, beispielsweise Integer7, Float8 oder gar benutzerdefinierte Datentypen. Extern unterstütze Schemainformationen helfen, exzessive und kostspielige Zwangssituationen zwischen den Datentypen zu vermeiden. Gemessen an der Baumstruktur von XML-Dokumenten und den resultierenden, komplizierten hierarchischen Beziehungen unter den Daten stellen reguläre Pfadausdrücke einen weiteren, essentiellen Bestandteil von Anfragesprachen dar, welche es lohnt zu untersuchen. Frühere Arbeiten haben sich vorwiegend damit beschäftigt, die Fülle der Möglichkeiten zu erfassen, welche durch die neuen Datenmodelle geboten wurden und haben zweifellos wertvolle Hilfe geleistet. Aber die meisten dieser Prototypen wurden "on top", d.h. auf den Daten bzw. Objektspeichern implementiert. D.h. es wurden Standard-API's9 benutzt, ohne direkten Zugang zu den internen Mechanismen eines Produkts. Die Folgerungen sind also nur in bestimmtem Umfange gültig und die Effektivität bestimmter "Mappings" bleibt unklar. In vielen Fällen genügt eine einfache Produkterweiterung, um signifikante Performanceverbesserungen zu bewirken. Aus Komplexitäts-, Interaktions- und Interdependenzgründen10 sind die verschiedenen Systemkomponenten ohne einen abschliessenden, quantitativen Test (kurz: Den richtigen Benchmark) nur schwer einzuschätzen. 4 5 6 7 8 9 10 Content Provider (engl.): Wörtlich „Inhalte-Lieferant“; bieten Inhalte, also Nachrichten, Informationen, Datenbanken in Online-Diensten an [Irlbeck 98]. (O)RDBMS: (Object) Relational Database Management System [Irlbeck 98]. String (engl.): Zeichenkette; eine Zeichenkette ist eine in Anführungszeichen Folge von mehren Zeichen, einschliesslich Leer- und Sonderzeichen. Damit das Ende einer Zeichenkette eindeutig bestimmt ist, darf sie selbst kein Anführungszeichen enthalten. Beispiel: “Das ist eine Zeichenkette“ [Oberon 94]. Integer (engl.): Ganzzahlige (numerische Grund-)Typen [Oberon 94]. Float (engl.): Fliess- oder Gleitkomma; Bezeichnung für das Deklarieren einer Fliesskommavariablen [Irlbeck 98]. API = Application Programming Interface (engl.): Wörtlich Schnittstelle für die Programmierung von Anwenderprogrammen; genormte Schnittstelle, über die ein Programm Dienste vom Betriebssystem erhält. Der Vorteil liegt darin, dass nicht direkt auf die Hardware zugegriffen werden muss, wodurch u.a. Kompatibilitätsprobleme vermieden werden. Ausserdem lassen sich Programme, die API's nutzen, mit geringem Aufwand auf andere Systeme portieren [Irlbeck 98]. Interdependenz: Gegenseitige Abhängigkeit [DF 90]. 4 2. Typische Charakteristika von Benchmark-Verfahren Bisher wurden Benchmark-Verfahren benutzt, um alternative Mapping-Schemata für das Speichern von XML-Daten in relationalen Datenbanken zu vergleichen. Ein Benchmark war zunächst nicht Teil einer Real-World-Application und benutzte ein einziges, künstlich erzeugtes Dokument. Auch wurde Antwortzeit nur Single-Usern für eine Reihe unterschiedlicher Queries und Update-Funktionen auf Basis einer relativ kleinen Datenbank (80MB) zugestanden. Man konnte beobachten, dass für bestimmte Queries relativ kurze Antwortzeiten erreicht wurden, dass aber gleichzeitig die Rekonstruktion eines XML-Dokumentes unverhältnismässig lange dauerte. Ein Single-User-Benchmark misst dabei nicht, wie zu erwarten wäre, die Durchsatzleistung, für viele Benutzer eine Schlüsselgrösse beim XML-Daten-Management. Die Durchsatzleistung ist eine Grösse, die nur Multi-User-Verfahren erfassen können [X-Mach 01]. 3. Übersicht verschiedener Benchmark-Verfahren Es gibt eine Reihe mehr oder weniger standardisierter Benchmark-Verfahren, mit denen man die Leistungsfähigkeit unterschiedlicher DB-Produkte einschliesslich der eingesetzten Hardware und Betriebssystemsoftware bzw. die verschiedenen Anwendungsszenarien bewerten kann. Beispielsweise gibt es eine Anzahl domainspezifischer Benchmark-Verfahren für Entscheidungsunterstützung (z.B. APB-1, TPC-D, TPC-H, TPC-R), Information Retrieval (z.B. Conceptual Clustering in IR) und Spatial (räumliches) Data Management (z.B. Sequoia). Im weiteren gibt es Verfahren für objektorientierte DB (001, 007) bzw. für OLTP11 (z.B. TPC-C) und objekt-relationale DB (z.B. Bucky). Anfang 2000 wurde ausserdem der TPC-W-Benchmark für E-CommerceAnwendungen durch das führende Datenbankkomitee TPC12 released. Zwecks Übersicht seien für den Leser beispielhaft Benchmark-Verfahren für unterschiedliche Datenmodelle bzw. Anwendungsszenarien tabellarisch aufgelistet. Im folgenden Abschnitt werden daraus ausgewählte Verfahren aus der TPC-Benchmark-Familie, der 007-Benchmark sowie der XMach-1 Benchmark in kompakter Form erläutert. - - Benchmark Datenmodell Anwendungsszenario (Beispiele) Objektorientierte DBS: 001, 007 - Decision Support: APB-1, TPC-D, TPC-H, Objekt-relationale DBS: Bucky TPC-R Relationale DBS: Alternative Mapping - E-Commerce: TPC-W Schemes [AMS 99], TPC-C (OLTP), - Information Retrieval: Conceptual Clustering TPC-D in IR Semi-strukturierte /strukturierte DBS: - Spatial Data Management: Sequoia Alternative Mapping Schemes [AMS 99] - XML: XMach-1, XMark, Alternative Mapping Schemes [AMS 99] Abbildung 1: Benchmark-Verfahren mit Datenmodell und Anwendungsszenario. 11 12 OLTP = Online Transaction Processing (engl.): Man unterscheidet zwei Arten von Datenbankanwendungen, nämlich OLTP und OLAP (Online Analytical Transaction Processing). Unter OLTP fallen solche Anwendungen wie „Buchung eines Flugs“ in einem Flugreservierungssystem oder „Verarbeitung einer Bestellung“ in einem Handelsunternehmen. OLTP-Anwendungen realisieren das „operationale Tagesgeschäft“ eines Unternehmens. Sie zeichnen sich dadurch aus, dass sie nur begrenzte Datenmengen für eine auszuführende Transaktion zu verarbeiten haben und sie operieren auf dem jüngsten, aktuell gültigem Zustand des Datenbestands. Demgegenüber verarbeiten OLAP-Anwendungen grosse Datenmengen und greifen insbesondere auf „historische“ Daten zurück, um daraus Rückschlüsse zu gewinnen. Typische OLAP-Anfragen wären in den genannten Beispielszenarien wären z.B. „Entwicklung der Transatlantikflüge der letzten zwei Jahre“ oder „Wie haben sich besonders offensive Marketingstrategien für bestimmte Produktlinien auf die Verkaufszahlen ausgewirkt?“ [DBS 99]. TPC = Transaction Processing Council. 5 3.1 Beispiele aus der TPC-Benchmark-Familie • TPC-C: Der TPC-C-Benchmark modelliert die Auftragsbearbeitung in einem Handelsunternehmen. Diesen Anwendungsbereich eines Datenbanksystems bezeichnet man als OLTP (Online Transaction Processing). OLTP-Anwendungen zeichnen sich durch relativ kurze Transaktionen aus, die i.a. nur auf ein eng begrenztes Datenvolumen zurückgreifen. Das dem Benchmark zugrunde liegende Datenbankschema besteht aus den neun Relationen Warehouse, District, Customer, Order, New-Order, Order-Line, Stock, Item und History (vergleiche [DBS 99], S.443ff). Der TPC-C-Benchmark besteht aus fünf Transaktionen (präziser Transaktionstypen), von denen viele parallel auf der Datenbank ausgeführt werden: New-Order, Payment, Order-Status, Delivery und Stock-Level. Die Transaktion New-Order stellt das „Rückrat“ des TCP-C-Benchmarks dar. Die Leistungsfähigkeit des Systems wird in der Anzahl der pro Minute abgearbeiteten New-Order-Transaktionen angegeben, wobei natürlich pro New-Order auch eine bestimmte Anzahl der anderen vier Transaktionen gleichzeitig ausgeführt werden muss. Weiterhin verlangt der Benchmark, dass 90% der vier zuerst genannten Transaktionen eine Antwortzeit unter fünf Sekunden haben müssen. Die Stock-Level-Transaktion muss in 90% der Fälle innerhalb von 20 Sekunden abgearbeitet sein. Der TPC-C-Benchmark hat zwei Leistungskriterien: Den Durchsatz von New-Order-Transaktionen pro Minute (tpmC) und das Preis-Leistungsverhältnis. Hierbei wird der Gesamtsystempreis, der sich aus Hardware, Software und Softwarewartung für fünf Jahre berechnet, im Verhältnis zum Durchsatz angegeben [DBS 99]. • TPC-D: Genau wie der TPC-C-Benchmark orientiert sich der TPC-D-Benchmark an einem (hypothetischen) Handelsunternehmen. Der TPC-D-Benchmark modelliert aber eine andere Anwendungswelt, nämlich die sog. Decision-Support-Anfragen. Diese Anfragen zeichnen sich dadurch aus, dass die Ergebnismitteilung oft sehr grosse Datenmengen verarbeitet werden müssen. Die Anfragen in Decision-Support-Systemen sind deshalb i.a. recht komplex zu formulieren, zu optimieren und auszuwerten [DBS 99]. • TPC-W: Das TPC-W-Verfahren ist für das Vergleichen von Webtransaktionen bestimmt. Die Arbeitslast (workload) wird in einer kontrollierten E-Commerce-Umgebung des Internets erfasst, wobei die Aktivitäten von geschäftsorientierten Transaktionen eines Webservers simuliert werden. Die Tests beinhalten ein breites Feld an Komponenten, die durch folgende Stichpunkte charakterisiert werden können: Mehrfache Online-Benutzung von Browsern, dynamisches Generieren von Webseiten mit Datenbankanbindung, konsistente Webobjekte, simultanes Ausführen von Mehrfach-Transaktionstypen, Online-Transaktions-Ausführungsmodus, Datenbanken mit vielen unterschiedlich grossen Tabellen, ACID13-Kriterien sowie Gewährleistung des Datenzugangs/-updates. [TPC-W 01]. 13 ACID = Atomicity, Consistency, Isolation, Durability (engl.): Das ACID-Pradigma umfasst die Eigenschaften Atomarität, Konsistenz, Isolation und Dauerhaftigkeit. Atomarität: Diese Eigenschaft verlangt, dass eine Transaktion als kleinste, nicht weiter zerlegbare Einheit behandelt wird, d.h. entweder werden alle Änderungen einer Transaktion festgeschrieben oder gar keine. Konsistenz: Eine Transaktion hat nach Beendigung einen konsistenten Datenbankzustand zu hinterlassen. Zwischenzustände, die während der Transaktionsbearbeitung entstehen, dürfen inkonsistent sein, aber der Endzustand muss die Konsistenzbedingungen erfüllen. Isolation: Diese Eigenschaft verlangt, dass parallel ausgeführte Transaktionen sich nicht gegenseitig beeinflussen. Jede Transaktion muss (logisch gesehen) so ausgeführt werden, als wäre sie die einzige Transaktion, die während ihrer gesamten Ausführungszeit auf dem Datenbanksystem aktiv ist. Dauerhaftigkeit: Die Wirkung einer erfolgreich abgeschlossenen Transaktion muss dauerhaft in der Datenbank gespeichert bleiben. Die Transaktionsverwaltung muss sicherstellen, dass dies auch nach einem Systemfehler (z.B. Stromunterbruch) gewährleistet bleibt. Die einzige Möglichkeit, eine erfolgreich abgeschlossene Transaktion ganz oder teilweise aufzuheben besteht darin, eine andere, „kompensierende“ Transaktion auszuführen [DBS 99]. 6 3.2 007-Benchmark Der 007-Benchmark modelliert Objekthierarchien, wie sie in ingenieurwissenschaftlichen Anwendungen (z.B. CAD, CAM) vorkommen. Ein zusammengesetztes Objekt (composite part) besteht aus einem Textdokument und einem Objektnetz von 20, in grösseren Datenbankkonfigurationen 200, Grundbauteilen (atomic parts). Dieses Objektnetz ist in Abbildung 2 durch das Gitter angedeutet. Jede Baugruppe hat eine bidirektionale Beziehung zu drei zusammengesetzten Teilen, die ihrerseits aber Bestandteil mehrerer Baugruppen sein können (shared subobjects). Baugruppen sind nochmals in einer Hierarchie zu komplexen Bauteilen verknüpft. Den Einstiegspunkt zu dieser Hierarchie bildet ein Modul. Bislang wurden im Benchmark nur Datenbanken mit einem Modul generiert. Hier bieten sich Skalierungsmöglichkeiten für künftige Erweiterungen, insbesondere für Mehrbenutzersynchronisation, mit in die Untersuchungen einzubeziehen. In der in Abbildung 2 skizzierten Datenbankstruktur wurden eine Reihe von Traversierungs- und Änderungsoperationen definiert, anhand derer die Leistungsfähigkeit eines objektorientierten Datenbanksystems analysiert werden kann. Die Vorstellung dieser Operationen würde hier zu weit führen, es sei auf die Literatur zum 007-Benchmark verwiesen, wo auch für einige kommerzielle Systeme Leistungskennzahlen veröffentlicht sind [DBS 99]. Abbildung 2: Struktur der 007-Datenbank. 3.3 XMach-1 Benchmark Der XMach-1 Benchmark ist an der Universität Leipzig entwickelt worden und stellt ein MultiUser-Verfahren für Evaluation und Leistungsvergleich von XML-Datenmanagement-Systemen dar. Es basiert auf Webapplikationen und berücksichtigt verschiedene XML-Datentypen, d.h. Textdokumente, Daten ohne Schema oder auch strukturierte Daten. Das Verfahren enthält einen Mix von XML-Queries und Update-Operationen und kann sowohl bei natürlich-sprachlichen XML-DBMS als auch bei relationalen DBMS14 eingesetzt werden. 14 DBMS = Database-Management-System. 7 Abbildung 315 zeigt die Systemanordnung für den XMach-1 Benchmark, bestehend aus den vier Komponenten XML-Datenbank, mehreren Applikations-Servern, Loader- und Browser-Clients. Abbildung 3: Systemanordnung für XMach-1 Benchmark. Die Datenbank enthält die XML-Dokumente in einer Directory-Struktur, wobei die Dokumente von verteilten Quellen mittels Programmen (z.B. Roboter, Crawler u.a.) via Internet geladen werden. Jedes Dokument hat eine eindeutige URL16, die zusammen mit den Metadaten der Dokumente in der Directory-Struktur abgelegt ist. Die Application-Server benutzen einen WebServer sowie weitere Middleware-Komponenten, die den Prozess unterstützen bzw. mit der Backend-Datenbank interagieren. Gemessen werden Antwortzeiten und Durchsatz der XMLDokumente unter genau definierten Bedingungen. 4. Beispiel: XMark Benchmark, Version 1.0 4.1 Einleitung Der XMark Benchmark soll Entwicklern und Benutzern gleichermassen eine Hilfestellung bieten, XML-Datenbanken unabhängig voneinander in deren spezifischen Applikationsszenarien zu vergleichen. Einer langen Tradition in der Datenbankforschung folgend bevorzugt das XML Benchmark Project ein Framework, das ein breites Spektrum von verschiedenen Anfragen, typischerweise in Real-World-Szenarien, berücksichtigt. Dabei enthält das Set aus Sicht der Wissenschaftler des CWI die wichtigsten Aspekte des Query-Processing und reicht von der Betonung des textuellen Charakters eines Dokuments hin zu Queries zwecks Datenanalyse oder typischen Adhoc-Anfragen. Das Query-Set wurde entworfen, um den Query-Prozessor oder die Storage-Engine an partikularen Stellen herauszufordern. Das ist sinnvoll aus einer Reihe von Gründen: 1. Eine featurespezifische Prüfung des Query-Prozessors weist Vor- und Nachteile bei dessen Arbeitsweise in einer Reihe unterschiedlicher Architekturen nach, jede vorgesehen für verschiedene Applikationen mit den entsprechenden Charakteristiken. Beispielsweise bei der Ableitung der XML-Daten von relationalen bzw. objekt-relationalen Daten, von Hauptspeicher- bzw. objektorientierter Datenbanktechnologie oder von textueller Information in Retrieval-Datenstrukturen. Aus diesen Gründen ist bei unterschiedlichen Produkten ein divergierendes Verhalten bezüglich Performance und Stresstests in Abhängigkeit der Systemarchitektur zu erwarten. 15 16 SUT = System under Test. URL = Uniform Resource Locator: Genormte Methode zum Auffinden von Ressourcen im WWW [Irlbeck 98]. 8 2. Das Benchmark-Dokument kann bei der Verifikation des Query-Prozessors helfen, eine Herausforderung seit der Einführung von High-tech-Query-Sprachen. In der Welt der XMLSprachen hat sich die Frage nach der Äquivalenz von XML-Dokumenten verschärft. Der Grad an Freiheit verschieden möglicher physischer Darstellungen der Dokumente wird kombiniert mit dem Freiheitsgrad der Anfrage, Ausführungen bezüglich Attributen, Verschlüsselungen, Namespaces etc. Das XML Benchmark Projekt17 vertritt die Auffassung, dass diesbezüglich noch Forschungsanstrengungen unternommen werden müssen. 3. Das Ausführen des Benchmark-Query-Set bedingt Details bezüglich Workflow, was wiederum mit dem Query-Prozessor in der spezifischen Applikation verbunden ist. Ein Vergleichen hilft in der Konsequenz aber auch, Entwicklungskosten eines spezifischen Systems abzuschätzen und gibt Antworten auf die Frage, welches System die gestellten Anforderungen am besten erfüllt. XML-Prozesse enthalten üblicherweise verschiedene logische Schichten, physisch verteilt über ein Netzwerk. Um nun die Benchmarkresultate interpretierbar zu machen wird das SystemEngineering abstrahiert, d.h. man konzentriert sich auf die Hauptbestandteile: Der Query-Prozessor und dessen Interaktionen mit dem Datenspeicher. Nicht berücksichtigt werden Netzwerk-Overhead (z. B. http18, CORBA19, Java Beans20 etc.), Kommunikationskosten oder Transformationen des Outputs (z.B. XSL21). Abbildung 4 zeigt das Workflow Szenario für den XMark-Benchmark. Alle Applikationen sollen auf derselben Maschine laufen. Als Anfragesprache wurde XQuery22 gewählt, eine Verschmelzung verschiedener Sprachen für semi-strukturierte Daten oder XML. Es ist Teil des Standardisierungsprozesses, dass XQuery auch die Wahlsprache vieler Akteure auf diesem Felde ist. Abbildung 4: Workflow Szenario. 17 18 19 20 21 22 XML Benchmark Project: Mit XML Benchmark Project sei jeweils die Gruppe der Wissenschaftler des CWI gemeint. HTTP = Hypertext Transfer Protocoll (engl.): Hypertext-Übertragungsprotokoll, das zur Übertragung von Hypertext-Information im WWW dient [Irlbeck 98]. CORBA = Common Object Request Broker Architecture (engl.): Gemeinsame Architektur für Objektanforderungs-Vermittler; von IBM, DEC, AT&T und anderen Firmen entwickelte Architektur, die die Bearbeitung von Compound-Dokumenten regelt, speziell von solchen, auf die über ein Netzwerk zugegriffen wird. Der Datenaustauschstandard (OpenDoc) basiert auf CORBA [Irlbeck 98]. Java Beans (engl.): Wörtlich Kaffeebohnen; von Sun definiertes Model für austauschbare, universelle Softwarekomponenten, geschrieben in der Programmiersprache Java. Hierdurch soll vor allem die Programmierung in visuellen Entwicklungssystemen erleichtert und standardisiert werden. Java Beans ist das Konkurrenzprodukt der ActiveX-Steuerelemente von Microsoft. Java Beans bieten den Vorteil der Unabhängigkeit von der jeweiligen Plattform [Irlbeck 98]. XSL = eXtensible Stylesheet Language (engl.): Stellt eine Sprache für das Ausdrücken von CSS (Cascading Style Sheets) dar, bestehend aus den beiden Teilen „Transformieren von XML-Dokumenten“ und „XML-Vokabular zwecks Spezifikation der Formatierungs-Semantik“. XQuery: Relativ kleine, einfach implementierbare und flexible Anfragesprache für XML-Dokumente nach dem Standard des W3C (WWW-Council). 9 Das Zielpublikum von XMark kann in 3 Gruppen eingeteilt werden: • Datenbankhersteller, die ihre Query-Prozessoren verifizieren, vergleichen und verbessern wollen • DB-Kunden, die zwischen verschiedenen Produkten wählen möchten und mit XMark ein Instrument erhalten, die zentralen Elemente des Zielsystems einer Prüfung zu unterziehen. • Wissenschaftler/Forscher, denen der Test hilft, existierende Technologien bezüglich XMLEinstellungen zu prüfen und gegebenenfalls das Design der Algorithmen zu überarbeiten. 4.2 Beschreibung der Datenbank Die Entwicklung von XML unterscheidet sich signifikant von der Entwicklung relationaler Datenbanken, wo schon zu einem frühen Zeitpunkt eine Standardisierung zustande gekommen war, akzeptiert und unterstützt von einer breiten Gemeinde. Aus diesem Grunde glaubt das XML Benchmark Project, das eine Kombination von traditionellen und neuen Features in XML Processing Systemen eine neue Qualität des System-Engineering und ebenso einen neuen Benchmark verlangt. Während gezeigt wurde, dass sich datenzentrierte Dokumente, d.h. alle Dokumente mit logischen Datenstrukturen relativ elegant in relationalen (siehe [STZ 99], [FK 99], [SKWW 00] oder objekt-relationalen (siehe [KM 00]) Datenbanken erfassen lassen ist es weniger klar, wie sich natürlichsprachige, mit Markierungen durchsetzte Dokumente handhaben lassen. Deshalb führt das XML Benchmark Project zusammenfassend einige Hinweise auf, wie unterschiedliche DBMS-Architekturen auf die Herausforderung von XML reagieren können: 1. 2. 3. 4. Die textuelle Anordnung von XML-Strukturen im Originaldokument kann mit Queries geprüft werden: Ein Feature macht dies mit einfachen Look-up-Queries in Systemen möglich, die hierfür nicht vorgesehen sind. Der String ist der Basisdatentyp; sie können durch die Veränderung ihrer Länge zusätzliche Speicherprobleme aufwerfen. Typenprobleme können ausserdem durch Widersprüche zwischen Typingregeln oder Anfragesprache und den generischen String-Tokens23 von XML entstehen. Queries enthalten hierarchische Strukturen in Form von komplizierten Pfadausdrücken; speziell 1:n-Beziehungen in Verbindung mit einer Ordnung tendieren in relationalen Systemen zu aufwendigen Join24- und Aggregation25-Operationen. Aus Sicht des Anwenders können Query-Anfragen gegebenenfalls weitschweifig werden; lange Spezifikationen und komplizierte Pfadausdrücke erhöhen für den Anwender das Risiko, fehlerhafte Eingaben zu produzieren. Aus technischer Sicht besteht das Problem, dass NULL-Werte die Datenbank aufblähen. Eine Reihe von Aktivitäten versuchen, die genannten Problematiken dadurch zu entschärfen, dass datenzentrierte Dokumente vermehrt für (O)RDBMS mittels Neuformulieren der Bedingungen innerhalb des XML-Dokumentes zugänglich gemacht werden. Dieser Ansatz kann tatsächlich viele Probleme lösen, bedingt aber zusätzliche Entwicklungsanstrengungen, die 23 24 25 Token (engl.): Wörtlich Kurzzeichen bei Programmiersprachen eine platzsparende Form bei Speicherung von Befehlen im Quellcode. Statt den einzelnen Zeichen des Befehls PRINT USING wird z. B. nur ein numerischer Wert gespeichert, der aus einem oder zwei Byte(s) besteht. Die genauen Werte hängen vom eingesetzten Compiler bzw. Interpreter ab. Der Nachteil des Verfahrens liegt darin, dass der Quellcode nicht mit einem beliebigen Editor, sondern mit dem Compiler bzw. Interpreter gelieferten Editor bearbeitet werden kann [Irlbeck 98]. Join (engl.): Der natürliche Verbund (natural Join) ist logisch gesehen das Kreuzprodukt von zwei oder mehr Relationen, deren Attributwerte für gleich benannte Attribute der Argumentrelationen gleich sind [DBS 99]. Aggregation (engl.): Aggregatfunktionen führen Operationen auf Tupelmengen durch und komprimieren eine Menge von Werten zu einem einzelnen Wert. Zu ihnen gehört avg (average) zur Bestimmung des Durchschnitts einer Menge von Zahlen, max und min zur Bestimmung des grössten bzw. kleinsten Elementes und sum zur Bildung der Summe; count zählt die Anzahl der Zeilen einer Tabelle [DBS 99]. 10 einige der „Quick-and-easy-to-use-Eigenschaften“ von XML opfert, die XML so beliebt und so schnell verbreitet hat. Das Design von XML verlangt gut modellierte Datenbankbeispiele, um die Queries formulierbar und aussagekräftig zu halten. Aus diesem Grunde sollen im Folgenden die technischen Spezifikationen beim Generieren eines solchen Dokumentes genauer untersucht werden. 4.3 Hierarchie der Elementstruktur Das Ineinandernesten von Elementen verlangt eine Baumstruktur über das gesamte XMLDokument. In diesem Abschnitt wird deshalb die Struktur eines Dokumentes beschrieben, das nach einer Datenbank für Internet-Auktionen modelliert ist. Die wichtigsten Entities26 sind: person, open_auctions, closed_auctions, item und category. Die Beziehungen zwischen den Entities werden mittels Referenzen auf Notationsausnahmen und mittels Beschreibungen ausgedrückt, die gemäss natürlichsprachigen Text und dokumentzentrierten Elementstrukturen in Subbäumen schematisch zusammengehören. Das hierarchische Schema zwischen den meisten der benötigten Entities wird in Abbildung 5 dargestellt. Abbildung 5: Element Beziehungen zwischen den meisten der benötigten Entities. Die Semantik27 der Entities kann wie folgt interpretiert werden: 1. 26 27 Items (Gegenstände) sind jene Objekte, die zum Verkauf stehen oder die bereits verkauft wurden. Jedes Item hat eine eindeutige Bezeichnung und enthält Eigenschaften wie z. B. Zahlungsart (Kreditkarte, Überweisungsart etc.), Referenz zum Verkäufer, eine Produktbeschreibung usw. Alle Items sind als Elemente codiert und über die „Eltern“ einer Region der Erde zugeordnet. Entity (engl.): Wörtlich Gegenstände; sind wohlunterscheidbare physisch oder gedanklich existierende Konzepte der zu modellierenden Welt. Man abstrahiert ähnliche Gegenstandstypen (Entity-Typen oder Entity-Mengen), die man graphisch als Rechtecke darstellt, wobei der Name des Entity-Typs innerhalb des Rechtecks angegeben wird. Beziehungen (Relationships) werden auf analoge Weise zu Beziehungstypen abstrahiert. Die Beziehungstypen werden als Rauten mit entsprechender Beschriftung dargestellt. Die Rauten werden über ungerichtete Kanten verbunden [DBS 99]. Semantik: 1. Teilgebiet der Linguistik auf den man sich mit den Bedeutungen sprachlicher Zeichen und Zeichenfolgen befasst. 2. Bedeutung, Inhalt eines Wortes, Satzes oder Textes [DF 90]. 11 2. 3. 4. 5. Open auctions sind „aktive“ Auktionen. Deren Eigenschaften sind Status, Biethistorie mit entsprechenden Referenzen zum Anbieter und Nachfrager, das aktuelle Gebot, DefaultWerte, Auktionstyp, Zeitintervalle bis dahin Gebote akzeptiert werden sowie Transaktionsstatus. Closed auctions sind beendete Auktionen. Deren Eigenschaften sind Anbieter und Käufer (Referenzen zu Personen), eine Referenz zum entsprechenden Item, Preis, Anzahl verkaufte Items, Transkaktionsdatum, Transaktionstyp und Annotationen vor, während und nach dem Bietprozess. Personen (persons) sind charakterisiert durch Name, Emailadresse, Telefonnummer, Homepage URL, Creditkartennummer, Interessensprofil und das Set offener Auktionen, das sie beobachten. Kategorien (categories) enthalten einen Namen und eine Beschreibung; sie werden benutzt um Klassifikationen eines Items zu implementieren. Diese Entities stellen den strukturierten und datenorientierten Teil des Dokumentes dar. Das Schema ist regulär und Ausnahmen (eine Person hat beispielsweise keine Homepage) sind vorhersehbar. Abgesehen von gelegentlichen Listen (z.B. die Biethistorie) ist die Eingabereihenfolge nicht relevant. Das ist im starken Kontrast zur Annotation und Beschreibung der Elemente. Interne Struktur und Stringlänge der Subelemente variieren stark. Das „Markup“ fasst gegenstandsbezogene (itemized) Listen, Schlüsselwörter und sogar Formatierungsinstruktionen und Schriftinformationen zusammen und versucht, den natürlichsprachigen Text zu imitieren. Damit wird gewährleistet, dass Datenbanken den vollen Umfang der durch XML gebotenen Möglichkeiten enthalten. Abbildung 6 gibt einen Überblick über die Beziehungen der Entities untereinander: Abbildung 6: Referenzen. 4.4 Einschränkungen bezüglich XML-Konstrukten Die im XML-Standard definierten Konstrukte sind sinnvoll für das Produzieren von flexiblen Markups, rechtfertigen aber keine Query-Definitionen, die ihn direkt herausfordern. Aus diesem Grunde beschränkt sich das XML Benchmark Project auf ein Set von limitierten XML-Features im Datengenerator, der als essentiell angesehen wird. Es werden keine Entities oder Notationen generiert. Weiter wird nicht zwischen Zeicheninformationen von Parsern und Parserdaten unterschieden. Ausserdem werden keine Namespaces in den Queries berücksichtigt. 12 Das XML Benchmark Project verwendet den 7-Bit-ASCII28-Zeichensatz. Unterstützt werden DTD-29 und XML-Schemainformationen, welche einen effizienteren Transformationsvorgang erlauben. Im Rahmen des Projektes wurde ausserdem ein XML-Generator implementiert, der die Skalierung von XML-Datenbanken unterstützt. 4.5 Benchmark-Queries Exemplarisch und in verkürzter Form werden in diesem Abschnitt fünf der in [BP 01] aufgeführten Queries diskutiert. Die Anfragen wurden in XQuery formuliert. • Query 1: Gib den Namen des Items mit dem ID 20748, registriert in Nordamerika, zurück. Abbildung 7: Query 1. • Query 2: Gib das Initialangebot für alle offenen Auktionen zurück. Abbildung 8: Query 2. • Query 3: Gib das erste und das aktuelle Angebot für alle offenen Auktionen zurück, bei denen gilt, dass das aktuelle Angebot mindestens zweimal so hoch ist wie das ursprüngliche Angebot. Abbildung 9: Query 3. • Query 4: Liste jene offenen Auktionen auf, bei denen eine bestimmte Person ein Angebot vor einer anderen (bestimmten) Person gemacht hat. Abbildung 10: Query 4. • Query 5: Wieviel der verkauften Gegenstände kosten mehr als 40 (Währungseinheiten)? Abbildung 11: Query 5. 28 29 ASCII= American Standard Code for Information Interchange: Wörtlich: Amerikanischer Standardcode zum Informationsaustausch [Irlbeck 98]. DTD = Document Type Definition [Irlbeck 98]. 13 4.6 Ergebnisse Um dem Leser einen Eindruck über die Grössenverhältnisse der mit XMark gemessenen Werte zu geben, wird in diesem Kapitel die Liste mit den Resultaten publiziert. Die Ergebnisse korrespondieren mit den im vorherigen Kapitel auszugsweise aufgeführten Queries. Die Ergebnisse wurden auf einem Silicon Graphics 1400 Server mit 1GB Hauptspeicher und 18 GB SCSI Festplatte ermittelt. Als Betriebssystem wurde Linux Version 6.2 eingesetzt. Abbildung 12: Messresultate.30 Das Benchmark-Dokument war mit 1.0 skaliert. Das Einlesen der „Nutzlast“ (bulk load, 116 MB) dauerte 49.7 Sekunden. In dieser Zeit enthalten sind Parsen des Dokumentes, Transformieren des Textes in relationale Tabellen und das Schreiben der Tabellen in den Speicher. Der Mapping-Prozess von Monet-XML arbeitet ohne DTD’s und generiert das Datenbankschema „onthe-fly“. Es sollen im folgenden die Ergebnisse 1-5 interpretiert werden: • Ergebnis zu Query 1: Q1 enthält das Scannen der Tabelle über ca. 1000 Tupel sowie zwei Look-up’s. Da Monet einen Hauptspeicher-Kernel besitzt, sind diese Operationen (mit verhältnismässig kleiner Datenmenge) relativ schnell. • Ergebnisse zu Query 2 und 3: Q2 und Q3 haben Überraschendes zu bieten; es stellte sich heraus, dass Teile der Anfrage komplexe Aggregationen zur Folge hatten. Mit der hohen Komplexität der harmlos scheinenden Anfragen stieg die gemessene Zeit entsprechend an. Die Antwortzeit war relativ schlecht. • Ergebnis zu Query 4: Q4 enthält das „Before-Prädikat"; es konnte die globale Ordnung abgefragt werden, was keine besondere Herausforderung darstellte. Entsprechend schnell war der Response. 30 RP = Repetition Factor (engl.): Wörtlich Wiederholungsfaktor. Mit Monet ist ein Hauptspeicher-Kernel gemeint, dessen Operationen relativ schnell sind, der aber verhältnismässig wenig Datenvolumen enthält. 14 • Ergebnis zu Query 5: Q5 enthält ähnliche Elemente, wie sie zur Beantwortung von Q3 notwendig sind. Bedenkt man die relative Komplexität von Q3, so ist das Ergebnis auf die Anfrage mit 161ms doch schneller als erwartet. Es sei aber festgehalten, dass alle benötigten Informationen (inkl. Referenzen) im Originaldokument als Strings gespeichert sind und nicht wie in Q3 ein reicherer Datentyp zur Laufzeit generiert werden musste. 5. Zusammenfassung • Motivation: Mittlerweile berührt XML alle Felder der Internet-Applikationen mit den damit verbundenen riesigen Datenmengen. Aus diesem Grunde interessiert sich eine steigende Anzahl von Content Providern für die Weiterentwicklung von Data Management Systemen. Aus Komplexitäts-, Interaktions- und Interdependenzgründen sind die verschiedenen Systemkomponenten ohne einen abschliessenden, quantitativen Test (Benchmark) nur schwer einzuschätzen. • Charakteristika von Benchmark-Verfahren: Bisher wurden Benchmark-Verfahren benutzt, um alternative Mapping-Schemata für das Speichern von XML-Daten in relationalen Datenbanken zu vergleichen. Ein Benchmark war zunächst nicht Teil einer Real-World-Application und benutzte ein einziges, künstlich erzeugtes Dokument. Auch wurde Antwortzeit nur Single-Usern für eine Reihe unterschiedlicher Queries und Update-Funktionen auf Basis einer relativ kleinen Datenbank (80 MB) zugestanden. Man konnte beobachten, dass für bestimmte Queries relativ kurze Antwortzeiten erreicht wurden, dass aber gleichzeitig die Rekonstruktion eines XML-Dokumentes unverhältnismässig lange dauerte. Ein Single-UserBenchmark misst dabei nicht, wie zu erwarten wäre, die Durchsatzleistung, für viele Benutzer eine Schlüsselgrösse beim XML-Daten-Management. Die Durchsatzleistung ist eine Grösse, die nur Multi-User-Verfahren erfassen können. • Übersicht verschiedener Benchmark-Verfahren: In Kapitel 3 wurden diverse BenchmarkVerfahren für die Anwendungsszenarien Decision Support, E-Commerce, Information Retrieval, objektorientierte bzw. (objekt-) relationale DB-Systeme sowie für Spatial Data Management aufgelistet. Von den aufgeführten Verfahren wurden in kurzer Form Beispiele aus der TPC-Familie (TPC-C: OLTP-Anwendungen; TPC-D: Decision-Support; TPC-W: E-Commerce), der 007-Benchmark (ingenieurwissenschaftliche Anwendungen, z.B. CAD, CAM) sowie XMach-1 (Leistungsvergleich von XML-Datenbanken) erläutert. • XMark Benchmark: In Kapitel 4 wurde der XMark Benchmark, Version 1.0 vorgestellt. Der Benchmark soll Entwicklern und Benutzern gleichermassen eine Hilfestellung bieten, XMLDatenbanken unabhängig voneinander in deren spezifischen Applikationsszenarien zu vergleichen. Der Benchmark bevorzugt ein Framework, das ein breites Spektrum von verschiedenen Anfragen, typischerweise in Real-World-Szenarien, berücksichtigt. Dabei enthält das Set aus Sicht der Wissenschaftler des CWI die wichtigsten Aspekte des Query-Processing und reicht von der Betonung des textuellen Charakters eines Dokuments hin zu Queries zwecks Datenanalyse oder typischen Ad-hoc-Anfragen. Das Query-Set wurde entworfen, um den QueryProzessor oder die Storage-Engine an partikularen Stellen herauszufordern. Schliesslich wurde in Kapitel 4 die XMark-Systemanordnung, die Datenbank, die Hierarchie der Elementstruktur, Einschränkungen bezüglich XML-Konstrukte sowie fünf Queries erläutert und die entsprechenden Benchmark-Ergebnisse interpretiert. 15 6. Anhang 6.1 Literaturverzeichnis [1] [AMS 99]: D. Florescu, D. Kossmann. A Performance Evaluation of Alternative Mapping Schemes for Storing XML Data in a Relational Database. Technical Report No. 3680, INRIA, Le Chesnay Cedex, France, May 1999. Internet: http://dblab.comeng.chungnam.ac.kr/~dolphin/paper/collection/ [2] [BP 01]: A. R. Schmidt, F. Waas, M. L. Kersten, D. Florescu, I. Manolescu, M. J. Carey, R. Busse. The XML Benchmark Project. Technical Report INS-R0103, CWI, Amsterdam, The Netherlands, April 2001. Internet: http://www.xml-benchmark.org oder http://www.cwi.nl/htbin/ins1/publications?request=abstract&key=ScWaKeFlMaCa Bu:TR-CWI:01 [3] [DBS 99]: A. Kemper, A. Eichler. Datenbanksysteme. Oldenburgverlag München und Wien, 1999, 3. Auflage, ISBN 3-486-25053-1. [4] [DF 90]: Wissenschaftlicher Rat der Duden-Redaktion. Duden Fremdwörterbuch. DudenVerlag, 1990, 5. Auflage, ISBN 3-411-20915-1. [5] [FK99] D. Florescu and D. Kossmann. Storing and Querying XML Data using an RDMBS. IEEE Data Engineering Bulletin, 1999. [6] [Irlbeck 98]: Irlbeck, Thomas. Computer-Englisch. dtv-Verlag, 1998, 3. Auflage, ISBN 3423-50303-3. [7] [KM00] M. Klettke and H. Meyer. XML and Object-Relational Database Systems Enhancing Structural Mappings Based on Statistics. In International Workshop on the Web and Databases (in conjunction with ACM SIGMOD), pages 63–68, 2000. [8] [Oberon 94]: Martin Reiser, Niklaus Wirth. Programmieren in Oberon – Das neue Pascal. Addison Wesley (Deutschland) GmbH, 1994, 1. Nachdruck, ISBN 9319-675-9. [9] [SKWW00] A. Schmidt, M. Kersten, M. Windhouwer, and F. Waas. Efficient Relational Storageand Retrieval of XML Documents. In International Workshop on the Web and Databases (in conjunction with ACM SIGMOD), pages 47–52, Dallas, TX, USA, 2000. [10] [TPC-W 01] Transaction Processing Perfomrance Council. Online-Dokumentation zum TPC-W-Benchmark. Internet: http://www.tpc.org/tpcw/default [11] [STZ 99] J. Shanmugasundaram, K. Tufte, C. Zhang, G. He, D. J. DeWitt, and J. F. Naughton. Relational Databases for Querying XML Documents: Limitations and Opportunities. In Proceedings of 25th International Conference on Very Large Data Bases (VLDB), September 7-10, 1999, Edinburgh, Scotland, UK, pages 302–314, 1999. [12] [X-Mach 01]: T. Böhme, E. Rahm. X-Mach-1: A Benchmark for XML Data Management. Proceedings of the German Database Conference (BTW 2001), Oldenburg, Germany, March 2001. Internet: http://dbs.uni-leipzig.de/en/Projekte/XML/XmlBenchmarking.html oder http://dol.uni-leipzig.de/pub/2001-1 16 6.2 Abbildungsverzeichnis • Abbildung 1: Benchmark-Verfahren mit Datenmodell und Anwendungsszenario. • Abbildung 2: Struktur der 007-Datenbank. Aus: [DBS 99], S. 452. • Abbildung 3: Systemanordnung für XMach-1 Benchmark. Aus: [X-Mach 01], Kapitel 4. • Abbildung 4: Workflow Scenario. Aus: [BP 01], S. 3. • Abbildung 5: Element Beziehungen zwischen den meisten der benötigten Entities. Aus: [BP 01], S. 3. • Abbildung 6: Referenzen. Aus: [BP 01], S. 6. • Abbildung 7: Query 1. Aus: [BP 01], S. 8. • Abbildung 8: Query 2. Aus: [BP 01], S. 8. • Abbildung 9: Query 3. Aus: [BP 01], S. 8. • Abbildung 10: Query 4. Aus: [BP 01], S. 8. • Abbildung 11: Query 5. Aus: [BP 01], S. 8. • Abbildung 12: Messresultate. Aus: [BP 01], S. 13. 17