Konzeption, Modellierung und prototypische Umsetzung eines ...

07.05.2013 - le eines Benchmarks für Indexstrukturen definiert, die basierend auf ...... kann dadurch sehr schnell geschehen, was allerdings auf Kosten ei-.
3MB Größe 8 Downloads 740 Ansichten
Otto-von-Guericke-Universität Magdeburg

Fakultät für Informatik

Institut für Technische und Betriebliche Informationssysteme

Masterarbeit

Konzeption, Modellierung und prototypische Umsetzung eines Benchmarks für mehrdimensionale Indexstrukturen

Martin Tobies Autor:

20. Mai, 2013

Betreuer:

Prof. Dr. rer. nat. habil. Gunter Saake M.Sc. Alexander Grebhahn Dipl.-Inform. Martin Schäler

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme Postfach 4120, D-39016 Magdeburg, Germany

Martin Tobies: Konzeption, Modellierung und prototypische Umsetzung eines Benchmarks für mehrdimensionale Indexstrukturen Masterarbeit, Otto-von-Guericke-Universität Magdeburg, 2013.

Inhaltsangabe

Aus mehrdimensionalen Daten wie sie zum Beispiel im Umfeld der Meteorologie, Bioinformatik (Genanalyse) oder bei Unternehmen wie Google, Netix oder Facebook erzeugt werden, Wissen zu generieren, ist in der heutigen Zeit von unschätzbarer Bedeutung. Hierbei liegt insbesondere der Fokus auf der Feststellung von Ähnlichkeiten innerhalb der Daten, die für die Suche im Datenbestand notwendig sind. Aufgrund des hohen Datenvolumen ist es notwendig Indexstrukturen zu verwenden um diese Prozesse performant durchführen zu können. Indexe haben im Kern die Aufgabe, die Anzahl der Abrufe von Datenob jekten durch eine Vorlterung zu verringern. In den vergangen Jahren wurden vielfältige Indexstrukturen veröentlicht, die versuchen Probleme wie den Fluch der Dimensionen zu lösen. Allerdings unterliegt die Evaluation neuer Verfahren keinen Richtlinien, wodurch der Vergleich der neuen Erkenntnisse untereinander nicht trivial ist. Allgemeiner Konsens ist es, neue Indexe mittels verschiedener Daten (real und synthetisch) zu testen. Sowohl die Wahl der Kenngröÿen wie Anzahl der Festplattenzugrie, Gesamtzeit oder Speicheraufwand als auch die Wahl der Anfragen unterscheiden sich je nach Autor allerdings. Als Anwender mit einem spezischen Anwendungsfall ist es somit nicht ohne umfangreiche Recherche möglich, das für ihn beste Indexierungsverfahren zu bestimmen. Eine Möglichkeit der Entscheidungshilfe wäre ein Benchmark für mehrdimensionale Indexstrukturen, um Indexstrukturen einheitlich vergleichen zu können. In der vorliegenden Arbeit wird dieser Ansatz bearbeitet. Hierzu werden Bestandteile eines Benchmarks für Indexstrukturen deniert, die basierend auf der Recherche bisheriger Veröentlichungen im Bereich mehrdimensionaler Indexstrukturen notwendig erscheinen. Auf Grundlage dieser Analyse wird dann ein Konzept zum Testen von Indexstrukturen aufgestellt, welches im letzten Schritt auf die praktische Eignung geprüft wird. Im Rahmen dieser Prüfung wird auch ein Vergleich mit dem Framework QuEval durchgeführt. Abschlieÿend werden Möglichkeiten der Weiterführung des theoretischen und praktischen Teils dieser Arbeit gegeben.

Inhaltsverzeichnis

Abbildungsverzeichnis

vii

Tabellenverzeichnis

ix

Quelltextverzeichnis

xi

Abkürzungsverzeichnis

xiii

Mathematische Symbole

xv

1 Einführung

1

1.1

Multimedia-Retrieval

1.2

Indexierung mehrdimensionaler Daten

. . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3 1.4

2

. . . . . . . . . . . . . . . . .

3

Zielstellung der Arbeit

. . . . . . . . . . . . . . . . . . . . . . . . . .

4

Gliederung der Arbeit

. . . . . . . . . . . . . . . . . . . . . . . . . .

4

2 Grundlagen

7

2.1

Daten

2.2

Distanzmetriken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.3

Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4

Mehrdimensionale Indexstrukturen

12

2.5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

7

2.4.1

Grid-File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.4.2

R-Baum

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.4.3

R

+ -Baum

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.4.4

* R -Baum

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.4.5

TV-Baum

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.4.6

X-Baum

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.4.7

M-Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.4.8

SS- & SR-Baum . . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.4.9

k-d- & K-D-B-Baum

. . . . . . . . . . . . . . . . . . . . . . .

26

2.4.10

VA-File

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

2.4.11

Pyramidentechnik . . . . . . . . . . . . . . . . . . . . . . . . .

28

2.4.12

Prototyp-/Permutation-basiertes Verfahren . . . . . . . . . . .

30

2.4.13

Locality Sensitive Hashing

2.4.14

Raumfüllende Kurven

Benchmark

. . . . . . . . . . . . . . . . . . . .

31

. . . . . . . . . . . . . . . . . . . . . .

31

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

2.5.1

Datenbankbenchmarks

. . . . . . . . . . . . . . . . . . . . . .

33

2.5.2

GiST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

vi

Inhaltsverzeichnis

2.6

2.5.3

MESSIF

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

2.5.4

ELKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

3 Benchmark 3.1

37

Kernkomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

3.1.1

Daten

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

3.1.2

Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

3.1.3

Metriken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

3.1.4

Kenngröÿen

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

3.2

Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

3.3

Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

4 Praktische Umsetzung 4.1

4.2 4.3

4.4

Implementierung

49

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

4.1.1

Indexstrukturanbindung

. . . . . . . . . . . . . . . . . . . . .

51

4.1.2

Workloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.1.3

Scheduler

55

4.1.4

WorkloadCongurator

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

QuEval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

4.3.1

Workloaddenition

. . . . . . . . . . . . . . . . . . . . . . . .

61

4.3.2

Durchführung

. . . . . . . . . . . . . . . . . . . . . . . . . . .

63

4.3.3

Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

5 Abschluss

69

5.1

Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

5.2

Ausblick

70

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Anhang

73

6.1

Distanzmetriken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

6.2

Mehrdimensionale Indexstukturen . . . . . . . . . . . . . . . . . . . .

75

6.3

Datengenerierung mit ELKI

. . . . . . . . . . . . . . . . . . . . . . .

76

6.4

XSD des Workloads . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

Literatur

79

Abbildungsverzeichnis

1.1

Allgemeiner Aufbau des Retrieval-Prozesses

. . . . . . . . . . . . . .

2.1

Einheitskreise ausgewählter Minkowski-Distanzen

2.2

Grid-File im zweidimensionalen Raum

3

. . . . . . . . . . .

9

. . . . . . . . . . . . . . . . .

14

2.3

R-Baum im zweidimensionalen Raum . . . . . . . . . . . . . . . . . .

15

2.4

TV-Baum im zweidimensionalen Raum

. . . . . . . . . . . . . . . . .

20

2.5

X-Baum im zweidimensionalen Raum . . . . . . . . . . . . . . . . . .

22

2.6

SS-Baum (links) und SR-Baum (rechts) im zweidimensionalen Raum

24

2.7

Adaptiver kd-Baum im zweidimensionalen Raum

27

2.8

Räumliche Ausprägung des VA-Files (links) und zugehörige Appro-

. . . . . . . . . . .

ximationsdatei (rechts) . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9

27

Visualisierung der Pyramide nach [BBK98b] (links) und [LK03] (rechts) im zweidimensionalen Raum

. . . . . . . . . . . . . . . . . . . . . . .

29

2.10 Visualisierung des Prototyp-basierten Verfahrens . . . . . . . . . . . .

30

2.11 Z-Kurve (links) und Hilbert-Kurve (rechts) im zweidimensionalen Raum 32

3.1

Verbreitete Datenverteilungen in Evaluationen

3.2

Modell des Indexstrukturbenchmarks

4.1

Aktivitätsdiagramm des Blackbox-Ansatzes

4.2

Aktivitätsdiagramm des Schnittstellen-Ansatzes

4.3

Komponentendiagramm des Benchmarking-Pro jektes

4.4

. . . . . . . . . . . . .

39

. . . . . . . . . . . . . . . . . .

47

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50 51 52

Grasche Parametrisierung von Indexen mithilfe des WorkloadCongurators

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

4.5

Evaluation mit uniformen, geclusterten und realen Daten (

d = 10)

. .

64

4.6

Evaluation mit uniformen, geclusterten und realen Daten (

d = 25)

. .

65

4.7

Evaluation mit uniformen, geclusterten und realen Daten (

d = 50)

. .

66

4.8

Evaluation mit uniformen, geclusterten und realen Daten (

d = 25)

. .

66

6.1

Übersicht mehrdimensionaler Indexstrukturen (basierend auf [GG98])

75

viii

Abbildungsverzeichnis

Tabellenverzeichnis

1.1

Auswahl an Features beziehungsweise Featureextraktionsverfahren . .

3

2.1

Klassen von Distanzmaÿen . . . . . . . . . . . . . . . . . . . . . . . .

8

2.2

Evaluation des Grid-Files [NHS84] . . . . . . . . . . . . . . . . . . . .

15

2.3

Evaluation des R-Baumes [Gut84], Variation der Knotengröÿen . . . .

16

2.4

Evaluation des R-Baumes [Gut84], Variation des Datenvolumens . . .

17

2.5

Evaluation des R

2.6

Evaluation des R -Baumes [BKS+90], Rechteckdaten

. . . . . . . . .

18

2.7

Evaluation des R -Baumes [BKS+90], Punktdaten . . . . . . . . . . .

19

2.8

Intra-Index-Evaluation des TV-Baumes [LJF94]

. . . . . . . . . . . .

21

2.9

Inter-Index-Evaluation des TV-Baumes [LJF94]

. . . . . . . . . . . .

21

. . . . . . . . . . . . . . . . . . .

22

2.11 Intra-Index-Evaluation des M-Baumes [CPZ97] . . . . . . . . . . . . .

23

2.12 Inter-Index-Evaluation des M-Baumes [CPZ97] . . . . . . . . . . . . .

23

2.13 Evaluation des SS-Baumes [WJ96b] . . . . . . . . . . . . . . . . . . .

25

2.14 Evaluation des SR-Baumes [KS97] . . . . . . . . . . . . . . . . . . . .

25

2.15 Evaluation des K-D-B-Baumes [Rob81]

26

+ -Baumes

[SRF87] . . . . . . . . . . . . . . . . . . .

* *

2.10 Evaluation des X-Baumes [BKK96]

. . . . . . . . . . . . . . . . .

2.16 Evaluation des VA-Files [WB97a; WSB98] 2.17 Evaluation der Pyramidentechnik [BBK98b]

17

. . . . . . . . . . . . . . .

28

. . . . . . . . . . . . . .

29

2.18 Evaluation des Prototyp-basierten Verfahrens [CFN08]

. . . . . . . .

31

2.19 Inter-Index-Evaluation des Local Sensitive Hashings [GIM99] . . . . .

32

3.1

Klassen von Kenngröÿen

42

4.1

Vergleich des QuEval-Frameworks mit der Umsetzung des Bench-

. . . . . . . . . . . . . . . . . . . . . . . . .

markmodells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

4.2

Konguration des Workloads . . . . . . . . . . . . . . . . . . . . . . .

64

6.1

Übersicht der Distanzmetriken . . . . . . . . . . . . . . . . . . . . . .

74

x

Tabellenverzeichnis

Quelltextverzeichnis

3.1

Format eines Datensatzes

. . . . . . . . . . . . . . . . . . . . . . . .

44

4.1

Schnittstelle der Indexstrukturen

. . . . . . . . . . . . . . . . . . . .

52

4.2

Beispiel einer Workloaddatei . . . . . . . . . . . . . . . . . . . . . . .

54

4.3

Konguration des WorkloadCongurators . . . . . . . . . . . . . . . .

57

4.4

Konguration des uniformen Datensatzes . . . . . . . . . . . . . . . .

62

6.1

ELKI-Parametrisierung uniformer Daten

. . . . . . . . . . . . . . . .

76

6.2

ELKI-Parametrisierung normalverteilter Daten . . . . . . . . . . . . .

76

6.3

ELKI-Parametrisierung geclusterter Daten

. . . . . . . . . . . . . . .

76

6.4

Grundlegender Aufbau einer Workloaddatei

. . . . . . . . . . . . . .

77

xii

Quelltextverzeichnis

Abkürzungsverzeichnis

AESA aNN D

Approximating and Eliminating Search Algorithm

approximierter Nächster Nachbar

Distanzfunktion

DU

Dreiecksungleichung

ELKI

Environment for DeveLoping KDD-Applications Supported by Index-Structures

GiST

Generalized Search Tree

HS

Hjaltason-Samet

JAXB JNI

Java Architecture for XML Binding

Java Native Interface

JSON KDD

JavaScript Object Notation

Wissensentdeckung in Datenbanken, (Knowledge Discovery in Databases)

kNN k-Nächste Nachbarn LAESA LSH

Locality Sensitive Hashing

MBR

minimal umgebende Rechtecke (minimal bounding rectangle)

MESSIF NN

Linear AESA

Metric Similarity Search Implementation Framework

nächster Nachbar

NOA

Near-Optimal Search Algorithm

OLAP

Online Analytical Processing

OLTP

Online Transaction Processing

xiv

Abkürzungsverzeichnis

PD

Pseudo-Distanzfunktion

POS RKV rNN

Positivität

Roussopoulos-Kelly-Vincent inverser Nächster Nachbar (Reverse nearest neighbor)

ROAESA SD SI

Reduced Overhead AESA

Semi-Distanzfunktion Selbstidentität

SPD

Semi-Pseudo-Distanzfunktion

SSA

Simple Search Algorithm

SY

Symmetrie

TIGER

Topologically Integrated Geographic Encoding and Referencing

TLAESA TPC TV

Tree AESA

Transaction Processing Performance Council

Teleskopvektor

UCI KDD VA

UCI Knowledge Discovery in Databases

Vektorapproximation

VPT

Vantage Point Tree

XSD

XML-Schemadenition

Mathematische Symbole

ap

Anzahl Prototypen

DB n

Datenmenge, Datenbasis

Gröÿe der Datenbasis

D, O, P , Q

Allgemeine Datenobjekte

DP , OP , PP , QP

Punktdaten

DR , OR , PR , QR

Räumliche Datenob jekte

DR d

Anzahl der Dimensionen

df

Distanzfunktion

o, p w I

Datenraum der mehrdimensionalen Objekte

Featureausprägung von Objekt

O

bzw.

Gewichtung einer Dimension

Mehrdimensionales Intervall

kM

Maximale Knotengröÿe

km

Minimale Knotengröÿe

Lm

Minkowski-Distanz mit der Norm

m

P

xvi

Mathematische Symbole

Kapitel 1

Einführung

Are you ready to create, consume, and manage 40 trillion gigabytes of data?  Gantz und Reinsel [GR12]

Dieses Zitat entstammt dem Bericht THE DIGITAL UNIVERSE IN 2020: Big Data, Bigger Digital Shadows, and Biggest Growth in the Far East der EMC Corporation, in dem geschätzt wird, dass sich das digitale Universum bis zum Jahr 2020 auf 40 Zettabytes vergröÿern wird und sich somit um den Faktor 300 im Vergleich zum Jahr 2005 vervielfacht. Eine weitere Studie der EMC Corporation schätzte das Datenvolumen im Jahr 2011 auf 1,8 Zettabytes [GR11]. Setzt man diese beiden Quellen in Relation, hat sich das Datenvolumen zwischen 2005 und 2011 um mehr als 1600 Exabytes vergröÿert. Was aber viel erstaunlicher ist, ist der Anstieg von über 38 Zettabytes bis zum Jahr 2020. Ein Groÿteil dieses enormen Datenvolumens fällt in die Rubrik unstrukturierte Daten, d.h. diese Daten müssen erst durch zum Beispiel Data-Mining-Verfahren aufbereitet werden, damit sie für den Endanwender nutzbar sind. So ist eine weitere Erkenntnis der DIGITAL UNIVERSE-Studie, dass 23% des Big-Data-Volumens im Jahr 2012 nutzbar gemacht hätte werden können, wenn diese entsprechend kategorisiert und analysiert worden wären. Durch diese Analysen werden die unstrukturierten Daten um Metadaten angereichert, was sie zu nutzbaren, wertvollen Informationen macht.

Beispiele für BigData nden sich in der Genetik, Meteorologie oder Kernphysik. So werden mithilfe des Large Hadron Collider

1

15 Petabytes an Daten jährlich erzeugt

[CER13]. Zum Begri BigData zählen weiterhin aber auch Mutlimediadaten wie Bilder, Audio und Video. Problematisch ist hierbei, dass die klassischen relationalen Datenbanksystem für diese Art der Daten ungeeignet sind. Stattdessen werden hier neue Verfahren zur Datenhaltung und -analyse eingesetzt, wie es in MultimediaDatenbanksystemen umgesetzt wird.

1 Der Large Hadron Collider ist der vom Kernforschungszentrum CERN betriebene Teilchenbeschleuniger.

2

1. Einführung

1.1

Multimedia-Retrieval

Multimedia-Retrieval beschreibt im Allgemeinen den computergestützten Prozess der Informationsgewinnung aus Multimediadaten. Nach Schmitt [Sch04] sind die Besonderheiten beziehungsweise Schwierigkeiten, die hierbei bewältigt werden müssen, die Folgenden.



Ein Multimedia-Retrieval-System muss groÿe Datenvolumen bearbeiten können. Bilder können je nach Auösung und Kompression mehrere hundert Megabyte groÿ sein, verlustfreie Lieder durchschnittlich 20-40 Megabyte und Videos erreichen Gröÿen im zweistelligen Gigabytebereich. Neben der reinen Speicherung dieser Daten, muss das System also auch optimierte Verfahren für eine eziente Nutzung bereitstellen.



Da Multimedia-Daten unstrukturierte Daten sind, ist ihre Semantik nur im-

plizit gegeben. Das heiÿt, dass durch verschiedene Analysen Informationen gewonnen werden müssen, die im Rahmen des Retrieval-Systems relevant sind. Daraus ergibt sich demzufolge auch, dass je nach Zielstellung des eigenen Systems die explizite Semantik unterschiedlich zu anderen Umgebungen ist.



Die initialen Rohdaten liegen normalerweise in unterschiedlichen Formaten vor. Populäre Formate bei Bildern sind zum Beispiel GIF, PNG, JPEG. Diese

Heterogenität der Daten muss zu Beginn der Datenimports beseitigt werden.



Multimedia-Daten können in komplexer Form vorliegen. So können beispielsweise aus einem Video Szenen (Bilder), Untertitel (Text) und Musik (Audio) extrahiert werden.



Zum Import und zur Darstellung der Rohdaten sind Ein- und Ausgabegeräte notwendig. Je nachdem, welche Datenformate unterstützt werden sollen, variiert die Anzahl der benötigten Geräte.

Retrievalysteme können im Wesentlichen in die 2 Kernprozesse Datenimport und Su-

che untergliedert werden. In Abbildung 1.1 auf der nächsten Seite sind die Abläufe und ihre Teilprozesse aufgeschlüsselt. Im ersten Schritt des Datenimports werden die Rohdaten in die Datenbank eingepegt, wobei hier Dateiformate und eventuell existierende Metainformationen wie Erstellungsdatum berücksichtigt werden. Es folgt die Analyse der importierten Daten mittels Featureextraktion. Hierbei werden Eigenschaften (Features ) aus den Rohdaten extrahiert, die für die Nutzung des Multimediasystems von Bedeutung sind. Ein Ausschnitt an möglichen Features und Verfahren kann Tabelle 1.1 auf der nächsten Seite entnommen werden. Das Ergebnis der Featureextraktion eines Datenob jektes ist somit eine endliche Menge an spezischen Eigenschaften, die dargestellt als Featurevektor das analysierte Objekt beschreiben. Mithilfe der Vektorschreibweise wird das Datenobjekt somit in einen mehrdimensionalen Raum abgebildet. Basierend auf dieser Darstellung ist es nun möglich den zweiten Kernprozess, die Ähnlichkeitssuche, durchzuführen. Die Suchanfrage wird hierbei ebenfalls in die interne mehrdimensionale Darstellung überführt, um dann gegen die Ob jekte in der Datenbank verglichen zu werden. Ist der

1.2.

Indexierung mehrdimensionaler Daten

3

Suchprozess

Importprozess Featureextraktion

Ähnlichkeitsberechnung

?

Ranking

Datenbank

Rohdaten

Anfragebearbeitung

!

Features

Abbildung 1.1: Allgemeiner Aufbau des Retrieval-Prozesses

Vergleichsprozess als sequentielle Suche implementiert, wird die Ähnlichkeit des Anfragedatum zu jedem Ob jekt in der Datenbank berechnet. Die sequentielle Suche ist aber kaum praxistauglich, da die Features aller Objekte geladen und verglichen werden müssen, was zu einem hohen Lade- und Berechnungsaufwand führt und somit sehr zeitintensiv ist. Abhilfe schat hier die Nutzung eines Indexes um die Anzahl der Datenzugrie und Vergleiche zu verringern.

Mediaformat

Feature (-extraktion)

Bild

Histogramme, Texturen, Texterkennung, Segmentierung

Audio

Sprache, Instrumente, Klangfarbe, Lautstärke

Video

Szenen-/Shoterkennung, Schlüsselszenen, Audioanalyse

Tabelle 1.1: Auswahl an Features beziehungsweise Featureextraktionsverfahren

1.2

Indexierung mehrdimensionaler Daten

Indexstrukturen fungieren als Filter, indem für die Suchanfrage nicht relevante Datenobjekte aussortiert werden. So werden im Vergleich zur sequentiellen Suche weniger Daten geladen, wodurch eventuell zeitintensive Zugrie auf Speichermedien verringert werden können. Die Wahl der Indexstruktur ist allerdings nicht trivial. Viele Verfahren degenerieren mit steigender Anzahl der Dimensionen zur sequentiellen Suche (Fluch der Dimensionen ) [Böh98, S. 11]. In diesem Fall ist die Nutzung von Indexstrukturen sogar nachteilig, da diese im Vergleich zur sequentiellen Suche eine komplexere Logik besitzen. Dies führt dann zu höherem Berechnungsaufwand und somit im Endeekt zu einer längeren Laufzeit. Es existieren Veröentlichungen, die diese Degeneration eingrenzen oder beheben [BBK98b]. Häug sind diese Lösungen aber in ihrer Anwendung eingeschränkt, weil zum Beispiel nur bestimmte Anfragearten unterstützt werden oder Datenverteilungen existieren, die die Funktionsweise stark beeinträchtigen. Ein Kernproblem bei der Wahl der Indexstruktur stellt die

4

1. Einführung

Art und Weise der Evaluation neuer Indexe in der Wissenschaft dar. Der Fokus bei der Indexevaluation liegt meist in der Darstellung der Vorteile des neuen Verfahrens, wodurch Limitationen in der Praxis unzureichend dargestellt werden. Da es keine einheitliche Testbasis gibt, sind die Ergebnisse verschiedener Veröentlichungen oft nur schwer zu vergleichen. Ein Beispiel solch einer Evaluation ist die Vorstellung des

+ -Baumes

R

von Sellis, Roussopoulos und Faloutsos [SRF87], die in Abschnitt 2.4.3

auf Seite 17 genauer betrachtet wird. In dieser Veröentlichung wird die Indexstruktur nur sehr einseitig evaluiert, da als einzige Vergleichsgröÿe die Anzahl der Festplattenzugrie genutzt wird. Dass der R

+ -Baum

allerdings einen höheren Or-

ganisationsaufwand hat als der zum Vergleich herangezogene R-Baum, wird in der Evaluation nicht berücksichtigt. Dieses Beispiel verdeutlicht, dass es schlussendlich ohne aufwändige Recherche nicht möglich ist eine geeignete Indexstruktur für den eigenen Anwendungsfall zu bestimmen.

1.3

Zielstellung der Arbeit

Das Ziel dieser Arbeit ist die Vereinheitlichung der Testdurchführung von mehrdimensionalen Indexstrukturen. Grundlage dafür ist das Darstellen der gegenwärtigen Arbeitsweise bei der Indexevaluation, indem entsprechende wissenschaftliche Publikationen analysiert werden. Hier raus sollen sich Erkenntnisse ergeben, die in ein Modell für einen Indexstrukturbenchmark einieÿen. Die folgenden fünf Fragen stehen dabei im Vordergrund beziehungsweise sind zur erfolgreichen Bewerkstelligung der Aufgabenstellung zu beantworten.

1. Welche Gemeinsamkeiten gibt es bei der Evaluation von Indexstrukturen in bisherigen Veröentlichungen?

2. Existieren Unterschiede beziehungsweise gibt es widersprüchliche Herangehensweisen bei den recherchierten Testdurchführungen?

3. Können diese Dierenzen gelöst werden ohne die Testumgebung einzuschränken?

4. Ist aus den gewonnenen Erkenntnissen ein Modell ableitbar?

5. Ist es möglich dieses Modell in der Praxis umzusetzen?

1.4

Gliederung der Arbeit

An dieses einleitende Kapitel 1 knüpfen die Grundlagen an, welche im Wesentlichen die Literaturrecherche mit dem Fokus auf den Evaluationen mehrdimensionaler Indexstrukturen widerspiegeln. Zu Beginn des Grundlagenkapitels wird der Indexstrukturbegri erläutert um danach die Themenbereiche Daten, Metriken und Anfragen zu beleuchten. Diese stellen notwendige Informationen zum Verständnis von

1.4.

Gliederung der Arbeit

5

Indexstrukturen und deren Funktionsweise dar. Im Kernteil des Grundlagenkapitels werden wichtige Indexe vorgestellt. Allerdings wird auf detaillierte Erläuterungen der Verfahren verzichtet. Stattdessen steht die Art und Weise, wie die Indexstrukturen jeweils getestet wurden im Fokus. Da das Ziel der Arbeit ein Benchmarkmodell ist, wird das Grundlagenkapitel mit der Benchmarkdenition beendet. Dabei wird auch auf existierende Ansätze zum Indexvergleich eingegangen. Die Kernaufgabe des Kapitel 2 ist die Darstellung der Testabläufe von Indexen in wissenschaftlichen Publikationen. Diese Erkenntnisse sollen in Kapitel 3 zur Erstellung eines Benchmarkmodells genutzt werden. Dazu werden die in der Zielstellung beschriebenen Fragen bezüglich Gemeinsamkeiten und Unterschiede aufgegriffen und beantwortet. In Kapitel 4 werden die Komponenten aus dem zuvor denierten Modell praktisch umgesetzt. Dabei wird auch geprüft, inwieweit das Modell in QuEval [SGS+13], ein Framework zum Indexstrukturvergleich, eingebunden werden kann. Zur Evaluation der Arbeit werden eine Reihe Indexstrukturen getestet, um die Anaylse basierend auf dem Benchmarkmodell zu erläutern. Die Arbeit schlieÿt Kapitel 5 ab, in dem neben der Zusammenfassung weitere Anknüpfpunkte an diese Arbeit gegeben werden.

6

1. Einführung

Kapitel 2

Grundlagen

In diesem Kapitel werden die für den Benchmark notwendigen Informationen vermittelt. Um den Indexstrukturbegri zu erläutert, werden zuerst die Themen Daten, Metriken und Anfragen aufgegrien um anschlieÿend ausgewählte Indexe in ihrer Funktionsweise betrachten zu können. Im Detail wird hierbei auf die Art und Weise der Evaluation in den jeweiligen Originalveröentlichung eingegangen. Auf diesen Fakten wird in den dann folgenden Kapiteln aufgebaut. Das Kapitel wird durch Erläuterungen zum allgemeinen Benchmarkbegri und Beispielen von existierenden Projekten mit ähnlichem Schwerpunkt wie diese Arbeit abgeschlossen.

2.1

Daten

Die Datengrundlage für die Indexstrukturen sind die in Kapitel 1 bereits erwähnten Featurevektoren. Die verbreitetste Darstellung ist die Abbildung in den reellen Datenraum

R.

Eine solche Datenmenge

DB

im d -dimensionalen Datenraum

DR

mit

n Datenpunkten ist wie folgt deniert.

DB = {O0 ; ...; On−1 }; Oi ∈ DR; i = 0, ..., n − 1; DR ⊆ Rd

(2.1)

Die Datenbasis besteht also aus einer endlichen Anzahl an Datenobjekten, die jeweils durch einen Vektor, welcher aus reellen Werten besteht, repräsentiert werden. Natürlich können die Eigenschaften der analysierten Daten auch in andere Datenräume überführt werden. So nutzen Kushilevitz, Ostrovsky und Rabani [KOR98] den Hammingwürfel (

DR ⊆ {0, 1}d ),

nach Böhm [Böh98, S. 16] wird der

Datenraum zur Vereinfachung häug auch auf den Unterraum

[0, 1]

d

Rd

-

begrenzt. Im

Verlaufe dieser Arbeit werden zudem auch Datenbasen erwähnt, die nicht auf der Darstellung von Punkten im mehrdimensionalen Raum beruhen und stattdessen eine räumliche Ausdehnung besitzen. Es wird also deutlich, dass die Wahl der Datengrundlage für Testdaten zur Indexstrukturevaluation sehr komplex ist. Testdaten sollten natürlich möglichst Realdaten der zukünftigen Anwendungsgebiete des Indexes darstellen, was aufgrund der Anwendungs- und Featurevielfalt und den daraus resultierenden bereits angesprochenen Darstellungsmöglichkeiten kaum allgemeingültig umsetzbar ist. Deshalb werden neben Realdaten primär eigene Datensätze

8

2. Grundlagen

generiert (synthetische Daten). Diese basieren auf Verteilungsfunktionen, die bestimmen wie die Datenobjekte im Raum angeordnet sind. Synthetischen Daten für Testzwecke sind häug uniform (gleich) verteilt oder liegen in geclusterter Form vor. Dass die Verteilung der Daten Einuss auf die Performanz einer Indexstruktur haben kann, zeigen beispielsweise Dorok, Tobies und Zaske in Einuss von multivariat schief normalverteilten Daten auf multidimensionale Indexstrukturen [DTZ12].

2.2

Distanzmetriken

Durch die zuvor beschriebene Überführung der Rohdaten mittels Featureextraktion in einen mehrdimensionalen Datenraum wird es nun möglich die Datenobjekte zu vergleichen. Hierzu ist eine Distanzfunktion notwendig, mithilfe derer ein Distanzwert zwischen zwei Features oder Datenob jekten berechnet werden kann. Dieser Distanzwert kann dann als Maÿ für die Ähnlichkeit interpretiert werden. Je kleiner der resultierende Wert ist, desto ähnlich sind sich die Objekte. Allgemein ist eine solche Funktion wie folgt deniert [Sch04, S. 152].

df : DR × DR → R+ 0

(2.2)

Eine Metrik kennzeichnet sich durch die folgenden vier Eigenschaften aus.



Selbstidentität (SI):

∀O ∈ DR : df (O, O) = 0



Positivität (POS):



Symmetrie (SY):



Dreiecksungleichung (DU):

∀O 6= P ; O, P ∈ DR : df (O, P ) > 0

∀O, P ∈ DR : df (O, P ) = df (P, O) ∀O, P, Q ∈ DR : df (O, Q) ≤ df (O, P ) + df (P, Q)

Basierend auf diesen Eigenschaften werden Distanzmaÿe in Klassen eingeteilt, wie sie in Tabelle 2.1 zu sehen sind. Ist also basierend auf Anforderungen ein Distanzmaÿ notwendig, welches keine negativen Abstände erzeugt, so sind die Klassen PseudoDistanzfunktion und Semi-Pseudo-Distanzfunktion auszuschlieÿen. Ein weiteres Beispiel, das die Relevanz dieser Klassen beschreibt, ist das in Abschnitt 2.5.3 auf Seite 34 vorgestellte Projekt  Metric Similarity Search Implementation Framework (MESSIF). Darin setzen die Entwickler zwingend die Erfüllung aller Eigenschaften voraus.

Klasse Distanzfunktion (D) Pseudo-Distanzfunktion (PD) Semi-Distanzfunktion (SD) Semi-Pseudo-Distanzfunktion (SPD)

SI

POS

SY

DU













√ √





Tabelle 2.1: Klassen von Distanzmaÿen

√ √

2.2.

Distanzmetriken

9

Minkowski-Metriken Die Minkowski-Familie stellt eine Menge von Distanzfunktionen für Punktdaten dar, die mit der euklidischen, Manhattan- und Chebychev-Distanzfunktion drei der populärsten Distanzmaÿe beinhaltet [Böh98, S. 17; Sch04, S. 155]. Aus diesem Grund werden diese Metriken nun genauer erläutert.

dfLm (O, P ) =

d−1 X

! m1 |oi − pi |m

(2.3)

i=0 In Formel 2.3 ist die Berechnungsvorschrift für die Minkowski-Funktionen zu sehen. Mit Parameter

m,

welcher auch als Norm bezeichnet wird, wird der Vertreter der

Minkowski-Funktionen deniert. So werden die fraktionalen Metriken mit der Norm

m = {x ∈ R | 0 < x < 1}, Manhattan mit m = 1, die euklidische Distanz mit m = 2 und die Chebychev-Distanz mit m → ∞ deniert. Der Unterschied zwischen den genannten Metriken kann durch die Gegenüberstellung der jeweiligen Einheitskreise, wie es in Abbildung 2.1 zu sehen ist, veranschaulicht werden. Es ist sichtbar, dass die fraktionale Distanz mit

m = 0.5

zu einem konkaven Einheitskreis führt und

somit die Dreiecksungleichung verletzt. Weiterhin ist auch eine Priorisierung von

m = 0,5 m=1 m=2 m=∞

Abbildung 2.1: Einheitskreise ausgewählter Minkowski-Distanzen

einzelnen Dimensionen wie es bei der gewichteten Minkowski-Distanzfunktion der Fall ist, denkbar. In Formel 2.4 ist die Anpassung der Berechnung zu sehen.

dfLwm (O, P ) =

d−1 X

! m1 wi |oi − pi |m

(2.4)

i= Mittels Parameter

wi

kann eine Dimension entsprechend den Anforderungen ge-

staucht oder gestreckt werden. Durch die Möglichkeit Dimensionen zu entfernen

wi = 0),

(

verliert die gewichtete Minkowski-Distanz die Eigenschaft der Positivi-

tät. Je nach Parametrisierung der Gewichtung und der Norm kann die gewichtete Minkowski-Distanz demnach zu den Distanzfunktionen, Pseudo-Distanzfunktionen

10

2. Grundlagen

als auch Semi-Pseudo-Distanzfunktionen zugeordnet werden.

Die Wahl einer geeigneten Metrik zur Ähnlichkeitsberechnung ist also ebenfalls bei der Evaluation von Indexstrukturen zu berücksichtigen. In den Veröentlichungen Fractional distance measures for content-based image retrieval [HR05] und On the Surprising Behavior of Distance Metrics in High Dimensional Spaces [AHK01] wurde der Einuss verschiedener Vertreter der Minkowski-Familie auf die Performanz von Ähnlichkeitsanfragen betrachtet. Weitere Metriken, wie sie auch in der Tabelle 6.1 auf Seite 73 zu sehen sind, waren Teil der in Implementierung und Evaluierung von Distanzfunktionen im Digi-Dak-Framework [KTN12] durchgeführten Evaluation. In dieser Übersicht sind zudem auch Metriken zu nden, die nicht auf Punktdaten beruhen. So sind Distanzen wie die Levenshtein-Distanz ebenfalls denkbar, sollte es sich bei den Features um Zeichenketten handeln.

2.3

Anfragen

Mit dem Wissen über mögliche Datenräume und entsprechende Distanzmetriken ist es nun möglich Suchanfragen zu denieren. Je nach Darstellung der Datenobjekte können sich die Anfragearten unterscheiden, was neben dierenzierten Berechnungen auch zu unterschiedlicher Namensgebung in wissenschaftlichen Veröentlichungen führt. In den Veröentlichungen [GG98; Böh98; BBK01; Sch04] werden Übersichten und Erläuterungen zu dem Thema Anfragen bereitgestellt. Diese Ausführungen werden nachfolgend erläutert, wobei auf Berechnungsvorschriften verzichtet wird, da diese aufgrund der Dierenzen zwischen den Quellen schwierig einheitlich darzustellen sind. Das Beheben der Unterschiede wird in Abschnitt 3.1.2 auf Seite 40 im Detail beschrieben, da diese Vereinheitlichung notwendig ist um das Benchmarkmodell erstellen zu können.

Denitionen nach [GG98] Gaede und Günther betrachten in Multidimensional access methods [GG98] Daten mit räumlicher Ausdehnung. Aus dieser Tatsache lässt sich schlussfolgern, dass es eine groÿe Anzahl von Anfragearten gibt, da verschiedenste Fälle abgedeckt werden müssen. So wird die Objektanfrage (Exact Match Query, Object query) als Prüfung auf enthalten sein des gegebenen Ob jektes in der Datenbasis beschrieben. Es wird also eine Aussage darüber getroen, ob ein identisches Ob jekt zur Anfrage in der Datenbasis existiert. Weiterhin wird von Gaede und Günther die Punktanfrage deniert, bei der geprüft wird, welche räumlichen Datenob jekte mit dem Anfragepunkt überlappen. Die Fensteranfrage (Window Query, Range Query) liefert alle Datenobjekte zurück, die mit dem Anfragebereich überlappen. Die Ausdehnung der Anfrage ist hierbei in allen Dimensionen deniert und achsenparallel. Bei Bereichsanfragen (Region Query, Intersect Query, Overlap Query) hingegen ist die räumliche Ausprägung der Anfrage beliebig. Weitere Anfragen mit räumlicher Ausdehnung sind wie folgt beschrieben.

2.3.

Anfragen



11

Eingeschlossene Anfrage : Gesuchte Objekte umschlieÿen den Anfragebereich jeweils vollständig (Enclosure Query).



Eingrenzende Anfrage : Es werden Ob jekte zurückgegeben, die vom Anfragebereich vollständig umschlossen werden (Containment Query).



Angrenzende Anfrage : Gesuchte Objekte grenzen an den gegebenen Anfragebereich an (Adjacency Query).

Neben diesen Typen beschreiben Gaede und Günther auch die  nächster Nachbar

(NN)-Anfrage und den Ähnlichkeitsverbund. NN-Anfragen liefern das Objekt zurück, welches zum gegebenen Ob jekt die kleinste Distanz aufweist. Bei den zuvor erwähnten Anfragen ist das Kriterium um Datenob jekte auszuschlieÿen statisch, da mit den Eingangsparametern wie Bereichsgrenzen xe Werte existieren. Im Gegensatz dazu ändert sich die minimale Distanz bei einer NN-Anfrage im Verlauf der Berechnung, wenn ein Objekt mit kleinerer Distanz zum Anfrageobjekt als dem Bisherigen ermittelt wird. Bei der Verbundanfrage sind als Eingabeparameter zwei Mengen anzugeben. Nach Gaede und Günther ist das Ergebnis des Ähnlichkeitsverbundes eine Menge von Objektpaaren mit je einem Kandidaten aus den Eingabemengen, wobei jedes Paar eine denierte Funktion zu erfüllen hat. Dies könnte zum Beispiel eine Distanzfunktionen für räumliche Daten sein.

Denitionen nach [Sch04; Böh98; BBK01] Schmitt [Sch04], Böhm [Böh98] und Böhm, Berchtold und Keim [BBK01] geben Anfragebeschreibungen basierend auf Punktdaten an. Schmitt versucht allerdings so weit wie möglich allgemeine Aussagen zu treen. Gaede und Günther unterschieden zwischen exakter und Punktanfrage, was bei der Eingrenzung auf Punktdaten nicht notwendig ist. Die Anfrage auf Enthalten sein in der Datenbasis wird von Böhm, Berchtold und Keim als Punktanfrage oder Exact-Match-Anfrage, von Schmitt als Punktanfrage oder Complete-Match-Anfrage bezeichnet. Unter dem Begri Bereichsanfragen (Region Query) werden von Böhm, Berchtold

-Distanzanfrage (Range Query) und Fensteranfrage (Window Query) eingegliedert. -Distanzanfragen werden mithilfe eines Datenpunktes, einer Metrik und Keim

und eines Distanzwertes deniert. Es werden alle Punkte gesucht, die innerhalb des Abstandes zum gegebenen Punkt liegen. Die Erläuterung zur Fensteranfrage deckt sich mit der Ausführung der Fensteranfrage von Gaede und Günther, da ein achsenparalleler Suchraum deniert wird, indem alle Dimensionen mit Werten belegt sind. Allerdings wird die Fensteranfrage von Böhm, Berchtold und Keim als

-Distanzanfrage

mit einer gewichteten Chebychev-Metrik realisiert(vgl. Ab-

bildung 2.1 auf Seite 9). Zudem beschreibt Böhm [Böh98, S. 20] Partial-Range Anfragen bei denen nicht alle Dimensionen betrachtet werden, was ebenfalls durch eine gewichtete Metrik umgesetzt werden kann. Die Gewichtung in den nicht relevanten Dimensionen ist dann null. Schmitt deniert die Bereichsanfrage ebenfalls als Obermenge, gibt aber nur allgemeine Aussagen bezüglich begrenzter und unbegrenzter Anfragen und die Möglichkeit der Prüfung auf Inklusion oder Überlappung

12

2. Grundlagen

an, wobei Letzteres wie bereits erwähnt bei Punktdaten nicht auftritt. Zusätzlich wird von Schmitt die Partial-Match-Anfrage vorgestellt, bei der nur eine Untermenge der Dimensionen angegeben wird, wie es auch bei der von Böhm vorgestellten Partial-Range-Anfrage der Fall ist. Bezüglich der NN-Anfrage werden sowohl von Schmitt als auch von Böhm, Berchtold und Keim noch weitere Unterscheidungen getroen als es bei Gaede und Günther der Fall war. So betrachtet Schmitt neben der NN-Anfrage auch die  approximier-

ter Nächster Nachbar (aNN)-Anfrage und die  inverser Nächster Nachbar ( Reverse nearest neighbor`) (rNN)-Anfrage. Bei der aNN-Anfrage kann im Rahmen eines denierten Ungenauigkeitwertes das Resultat von der NN-Anfrage abweichen. Die rNN-Anfrage gibt das Ob jekt zurück, für die das gegebene Eingabeobjekt der nächste Nachbar ist. Diese Anfrage ist aus dem Grunde sinnvoll, da die Relation des nächsten Nachbarn nicht symmetrisch ist. In seiner Dissertation Eciently Indexing High-Dimensional Data Spaces

gibt

Böhm ausführliche Erläuterungen zur Funktionsweise der NN-Anfrage an, indem mit dem  Roussopoulos-Kelly-Vincent (RKV)- und  Hjaltason-Samet (HS)-Algorithmus zwei Verfahren zur Realisierung der NN-Anfrage beschrieben werden. Für weiterführende Informationen wird an dieser Stelle auf die Originalveröentlichungen des RKV-Algorithmus [RKV95] und des HS-Algorithmus [HS95] verwiesen. Neben der rNN-Anfrage beschreiben Böhm, Berchtold und Keim die 

k -Nächste

Nachbarn

(kNN)-Anfrage und die Ranking-Anfrage. Bei der kNN-Anfrage werden die

k

Ob-

jekte zurückgegeben, die dem Anfrageobjekt am Ähnlichsten sind. Bei der RankingAnfrage hingegen kann die Ergebnismenge iterativ vergröÿert werden, sollte beispielsweise der Benutzer des Retrievalsystems mit den bisherigen Ergebnissen nicht zufrieden sein. Abschlieÿend sei erwähnt, dass der Ähnlichkeitsverbund, der schon von Gaede und Günther erwähnt wurde, in Multimedia-Datenbanken: Retrieval, Suchalgorithmen und Anfragebearbeitung [Sch04, S. 243] genauer speziziert wird. So spricht Schmitt explizit von einer Distanzmetrik, die den Verbund der Mengen bestimmt. Wertepaare werden genau dann in das Ergebnis aufgenommen, wenn die betrachteten Ob jekte innerhalb einer denierten Entfernung zueinander liegen.

2.4

Mehrdimensionale Indexstrukturen

Indexstrukturen sind Organisationsverfahren, die die Anzahl der Zugrie auf die Daten verringern, indem sie als Filter nicht relevante Datenob jekte ausschlieÿen. In den klassischen, relationalen Datenbanksystemen ist der von Bayer und McCreight [BM72] vorgestellte B-Baum die am weitesten verbreitete Indexstruktur. Dieser eindimensionale Index überführt die zugrundeliegenden Daten in eine hierarchische Ordnung. Im Gegensatz zur sequentiellen Suche, bei der alle Datenobjekte verglichen werden, werden bei dieser hierarchischen Variante mit jedem Level weitere Daten ausgeschlossen. Dadurch ergibt sich im Gegensatz zum linearen Laufzeitverhalten der sequentiellen Suche eine logarithmische Laufzeit. Wie in der Einleitung erwähnt, ist die in dieser Arbeit im Fokus stehende Datenbasis allerdings mehrdimensional, wodurch der B-Baum nicht ohne zusätzlichen Aufwand genutzt werden

2.4.

Mehrdimensionale Indexstrukturen

13

kann. Nach Schmitt [Sch04, S. 236] müssen mehrdimensionale Indexe die folgende Anforderungen erfüllen.



Suchanfragen müssen korrekte und vollständige Ergebnisse liefern.



Mehrdimensionale Indexstrukturen müssen hohe Dimensionsanzahlen ezient unterstützen. Hier stellt der Fluch der Dimensionen das primäre Problem dar, weshalb viele Indexe unzureichend mit steigender Dimension skalieren.



Aufgrund des mehrdimensionalen Datenraumes können Objekte verschiedene

Ausprägungen wie Punkt (0D), Linie (1D), Fläche (2D), Körper (3D), Hyperkörper (4D) etc. annehmen. Indexe müssen auf diesen Daten arbeiten können.



Indexstrukturen dienen der verbesserten Suche auf Daten, indem die Zugrie auf Speichermedien verringert werden. Somit sollte der Aufwand der Indexe maximal dem linearen Suchaufwand der sequentiellen Suche entsprechen.



Mehrdimensionale Indexe sollten verschiedene Anfragearten wie Punktanfragen,



-Distanzanfragen

oder NN-Anfragen unterstützen.

In dynamischen Umgebungen muss der Index Operationen wie Ändern, Lö-

schen und Einfügen von Datenob jekten beherrschen.



Die Vielfalt an verschiedenen Features und Anfragearten bedingt die Unterstützung verschiedener Distanzmetriken.



Die Nutzung eines Indexes ist mit einem erhöhten Speicherplatzaufwand verbunden, welcher minimal zu halten ist.

Die Umsetzung all dieser Anforderungen erweist sich allerdings als sehr schwierig. So existiert mit dem  Approximating and Eliminating Search Algorithm (AESA) [Rui86] beispielsweise ein Verfahren, welches die Distanzen zwischen den Objekten vorberechnet und in einer

n × n-Matrix

speichert. Die eigentliche Abarbeitung

von Anfragen kann dadurch sehr schnell geschehen, was allerdings auf Kosten einer aufwändigen Vorberechnung und einem hohen Speicheraufwand geschieht. Auch Erweiterungen wie  Linear AESA (LAESA) [MOV92],  Reduced Overhead AESA (ROAESA) [Vil95] oder  Tree AESA (TLAESA) [MOC96] können diese Probleme nur teilweise beheben. Detaillierte Ausführungen hierzu sind in Index-driven similarity search in metric spaces [HS03] beschrieben. Andoni und Indyk geben in ihrer Veröentlichung Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions [AI08] eine Einteilung von Indexstrukturen in approximierende und exakte Verfahren an. Die Arbeit an approximierenden Verfahren, bei denen das Ergebnis von Anfragen nur ein an das korrekte Ergebnis angenähertes ist, spiegelt wider, wie schwer es ist die Anforderungen zu erfüllen. Approximierende Verfahren versuchen die Laufzeit durch die Auockerung der Anforderung nach korrekten und vollständigen Ergebnissen zu verringern. Eine andere Einteilung ist in  A Quantitative Analysis and Performance Study for Similarity-Search Methods in High-Dimensional Spaces gegeben [WSB98]. Weber, Schek und Blott unterscheiden darin zwischen Datenraum und Daten aufteilenden

14

2. Grundlagen

Indexstrukturen (data partitioning, space partitioning). Daten aufteilende Verfahren indexieren nur den Raum, der von den Datenob jekten aufgespannt wird, wohingegen Datenraum aufteilende Verfahren den kompletten durch den Wertebereich aller Dimensionen denierten Raum berücksichtigen. Dies sind somit zwei grundlegend unterschiedliche Herangehensweisen zur Lösung der Probleme mit steigender Dimension. Ein drittes Unterscheidungskriterium von Indexstrukturen wurde in Anti-persistence: History independent data structures [NT01] betrachtet. Naor und Teague unterscheiden in ihrer Arbeit zwischen historisch abhängigen und historisch unabhängigen Indexierungsverfahren. Bei Indexen, die als historisch abhängig klassiziert sind, ist es möglich, basierend auf der aktuellen Ausprägung auf vergangene Änderungen des indexierten Datenbestandes zu schlieÿen (Löschen, Einfügen). Bei historisch unabhängigen Indexen kann diesbezüglich keine Aussage getroen werden. Wie sich mehrdimensionale Indexstrukturen in der Vergangenheit entwickelt haben, kann der Anmerkung auf Seite 75 entnommen werden. Diese Veranschaulichung basiert im Wesentlichen auf der Abbildung History of Multi-Dimensional Access Methods von Gaede und Günther [GG98, S. 5] und den Ausführungen in  Foun-

dations of Multidimensional and Metric Data Structures  von Samet [Sam05]. In der Abbildung ist zu erkennen, dass es verschiedene Ansätze bei der Indexierung von Daten gibt. Neben Baumverfahren existieren zum Beispiel Hashverfahren, die ähnliche Daten mithilfe einer Hashfunktionen gruppieren. Im Folgenden werden wichtige Indexierungsverfahren erläutert, wobei neben den Originalveröentlichungen auch Arbeiten mit umfangreichen Erläuterungen zu Indexen im Allgemeinen wie zum Beispiel [BDL+12; GG98; SHS05; Böh98; BBK01; Sch04] herangezogen wurden.

2.4.1 Grid-File Das Grid-File von Nievergelt, Hinterberger und Sevcik [NHS81; NHS84] ist ein datenraumaufteilendes Indexierungsverfahren, welches den Datenobjekten einen eindeutigen Schlüssel

zuweist und kann somit als Hashverfahren angesehen werden.

Basierend auf diesen Schlüsseln, die von den Dimensionswerten der Datenpunkte abgeleitet sind, lässt sich ein Objekt im Datenraum identifzieren. Der Datenraum

Seite 1 Seite 2 Seite 3 Seite 4 Seite 5

Abbildung 2.2: Grid-File im zweidimensionalen Raum

wird beim Grid-File in Grid-Zellen geteilt, was durch Aufteilen einzelner Dimensionen in Abschnitte geschieht. Im zweidimensionalen Raum wird somit ein Gitter, das Grid-Directory, mit Zellen variabler Gröÿe erstellt. So ein Grid-Directory ist in Abbildung 2.2 auf der vorherigen Seite dargestellt, welches hier exemplarisch aus sechs

2.4.

Mehrdimensionale Indexstrukturen

15

Grid-Zellen besteht. Mithilfe der fünf Grid-Regionen, die auch in Form einer konvexe Vereinigung von Grid-Zellen existieren können, ndet eine 1:1-Abbildung auf die Datensatzseiten statt. Jeder Datenpunkt ist einer Zelle zugeordnet, welche sich eindeutig durch die Abschnitte der zwei Dimensionen bestimmen lässt. Die Schwierigkeit des Indexes besteht in der optimalen Aufteilung der Dimensionen beziehungsweise des Zusammenführens von Hyperrechtecken bei Unterläufen (Datenobjekte werden gelöscht).

Bei der Evaluation des Grid-Files, die in Tabelle 2.2 dargestellt ist, wur-

Kategorie

Beschreibung

Daten

Gleich und nicht gleich verteilt,

Parametrisierung

Anzahl der Zellen (16 bis 100)

Kenngröÿen

Anzahl und Füllgrad der Zellen

Vergleichsob jekte

Strategien zum Zusammenlegen von Zellen und

d = 2, 3

Verhalten beim Einfügen, Löschen Anfragen

-

Weiteres

Implementierung in Pascal und Modula-2

1

Tabelle 2.2: Evaluation des Grid-Files [NHS84]

den die drei Anwendungsfälle Wachstum, Stagnation (Anzahl des Einfügens gleich Anzahl des Löschens) und Rückgang der Datengröÿe betrachtet, wobei die maximale Anzahl der Zellen variiert wurde. Dadurch konnten Kenntnisse über den Füllgrad der Zellen bei verschiedenen Zellengenerierungsstrategien gewonnen werden.

2.4.2 R-Baum K1

K5

D2

D3 K7 D1

K6

K3 K1

K2

K2

K3

K4

K5

K6

K7

D1

D2

D3

K4 Abbildung 2.3: R-Baum im zweidimensionalen Raum

Der von Guttman im Jahr 1984 veröentlichte R-Baum [Gut84] legte den Grundstein für viele weitere mehrdimensionale, datenaufteilende Indexierungsverfahren wie in

1 Modula-2 ist eine im Jahr 1978 von Niklaus Wirth veröentlichte Programmiersprache, die auf der Programmiersprache PASCAL aufbaut.

16

2. Grundlagen

Anmerkung auf Seite 75 zu sehen ist. Grundidee des R-Baumes ist es, die Datenpunkte in  minimal umgebende Rechtecke ( minimal bounding rectangle`) (MBR) zu unterteilen. MBRs können wiederum weitere MBRs beinhalten, wodurch sich eine hierarchische Baumstruktur ergibt, welche exemplarisch in Abbildung 2.3 auf der vorherigen Seite zu sehen ist. Dieser Baum ist ähnlich dem B-Baum höhenbalanciert. Die Wurzel des R-Baumes umfasst den gesamten Datenbestand und mit jedem

Kategorie

Beschreibung

Daten

Entwurf eines integrierten Schaltkreises des RISC-II Chips (1057 Rechtecke)

Parametrisierung

Variation der maximalen und minimalen Knotengröÿe, 15 verschiedene Parametrisierungen insgesamt

Kenngröÿen

CPU-Zeit (Einfügen, Löschen und Suchen), Seitenzugrie (Pages touched), Speicherauslastung (Bytes required)

Vergleichsob jekte

Linearer, quadratischer und vollständiger Split

Anfragen

Fensteranfrage (5% Selektivität)

Weiteres

Implementierung in C

Tabelle 2.3: Evaluation des R-Baumes [Gut84], Variation der Knotengröÿen

absteigendem Level wird die Menge der Datenpunkte weiter eingeschränkt. Auf der untersten Ebene, den Blattknoten, nden sich Verweise auf die eigentlichen Datenobjekte. Durch die von Guttman beschriebenen Einfüge- und Löschalgorithmen können MBRs des gleichen Levels überlappen. Somit müssen bei der Suche nach Ob jekten unter Umständen mehrere Pfade betrachtet werden, da Datenpunkte aufgrund der Überlappung potenziell in mehreren MBRs liegen können. Die Wahrscheinlichkeit, dass sich MBRs überlappen, steigt mit wachsender Dimensionsanzahl. Im schlimmsten Fall müssen alle Knoten abgefragt werden, wodurch der R-Baum aufgrund des Mehraufwandes (Traversierung) im Hinblick auf die Performanz schlechter als die sequentielle Suche abschneidet.

Die Evaluation des R-Baumes in  R-Trees: A Dynamic Index Structure for Spatial Searching [Gut84] ist eine Intra-Indexstrukturanalyse, da keine weiteren Indexe zum Vergleich herangezogen werden. Stattdessen steht die Parametrisierung der minimalen und maximalen Knotengröÿe (

km

und

kM )

im Fokus. Zudem werden Splitalgo-

rithmen der Knoten in Form des linearen, quadratischen und vollständigen Splits betrachtet. In Tabelle 2.3 ist die Testdurchführung zur Bestimmung der Werte für die Knotengröÿen beschrieben, wohingegen in Tabelle 2.4 auf der nächsten Seite die Evaluation mit variierendem Datenvolumen dargestellt wird.

2.4.

Mehrdimensionale Indexstrukturen

17

Kategorie

Beschreibung

Daten

2 Entwürfe integrierter Schaltkreise (real), zusätzlich 2 weitere Entwürfe aus diesen generiert (1057, 2238, 3295 und 4559 Rechtecke)

Parametrisierung

Maximale Knotengröÿe x (

kM = 50), km = 2,

Linearer Splitalgorithmus mit

Quadratischer Splitalgorithmus mit Kenngröÿen

km =

kM 2

CPU-Zeit (Einfügen, Löschen und Suchen), Seitenzugrie (Pages touched), Speicherauslastung (Bytes required)

Vergleichsob jekte

Linearer, quadratischer und vollständiger Split

Anfragen

Fensteranfrage (5% Selektivität)

Weiteres

Implementierung in C

Tabelle 2.4: Evaluation des R-Baumes [Gut84], Variation des Datenvolumens

2.4.3 R+-Baum Das Problem der Überlappung von MBRs lösen Sellis, Roussopoulos und Faloutsos mit dem R

+ -Baum [SRF87]. Beim R+ -Baum wird durch angepasste Algorithmen das

Überlappen von Knoten des gleichen Levels verhindert. Im Falle einer Überlappung wird ein Split der Nachbarknoten vorgenommen, was allerdings dazu führen kann, dass weitere Kinderknoten betroen sind. Letztendlich kann diese Splitstrategie zu einer hohen Anzahl an Blattknoten mit jeweils wenigen Ob jekteinträgen führen. Ein weiteres Problem tritt bei Ob jekten mit räumlicher Ausdehnung auf, die im schlimmsten Fall durch mehrere kleinere Blattknoten referenziert werden müssen. Dieses Verhalten wird umfangreich in  Datenbanken  Implementierungstechniken  [SHS05, S. 282-284] beschrieben. Diese erwähnten Nachteile führen zu einem zeit-

+ -Baum

und speicherintensiven Verhalten. Da der R

Kategorie

Beschreibung

Daten

Menge aus Segmenten,

als optimierte Variante des R-

generiert aus 2 Teilmengen Parametrisierung

Dichte und Gröÿe der Datenmenge

Kenngröÿen

Festplattenzugri

Vergleichsob jekte

R-Baum

Anfragen

Punktanfrage, Segmentanfrage (Segment query)

Weiteres

Keine Aussage über Knotengröÿen

+ -Baumes

Tabelle 2.5: Evaluation des R

[SRF87]

18

2. Grundlagen

Baumes entwickelt wurde, haben Sellis, Roussopoulos und Faloutsos diese beiden Indexe gegeneinander evaluiert. Bei dieser Inter-Indexanalyse, wie sie in Tabelle 2.5 auf der vorherigen Seite zusammengefasst ist, wurde als Datengrundlage die Vereinigung zwei Mengen aus Segmenten (

xAnf ; xEnd )

verwendet. Die Segmente jeder

Menge haben dabei eine einheitliche Länge und sind zudem uniform verteilt, was bedeutet, dass die Dichte der Daten im Datenraum konsistent ist. Diese Dichte ist neben der Gröÿe der Datenmenge als Parametrisierung genutzt worden. Die Anzahl der Festplattenzugrie bei der Punkt- und Segmentanfrage (Segment query) wird als Vergleichskriterium eingesetzt. Über Einfügeaufwand, Löschaufwand und die Parametrisierung der Indexstrukturen wurden keine Aussagen gemacht. Es kann aber angenommen werden, dass die Parameter für R-Baum und R+-Baum gleich gewählt worden sind.

2.4.4 R*-Baum Auch der in The R*-tree: an ecient and robust access method for points and

*

rectangles [BKS+90] vorgestellte R -Baum basiert auf der im R-Baum vorgestellten Idee den Datenraum in MBRs hierarchisch einzuteilen. Mithilfe neuer Algorithmen beim Ändern des indexierten Datenbestandes versuchen Beckmann et al. das Überlappen der MBRs zu reduzieren. Wird beim Einfügen eines Datenobjektes ein Überlauf im entsprechenden Knoten festgestellt, werden eine bestimmte Anzahl an Objekten aus dem Knoten entfernt und neu in den Baum eingefügt. Erst bei erneuter Überlappung werden Knoten aufgeteilt. Dieser Ansatz führt zu besserer

Kategorie

Beschreibung

Daten

6 Rechteckmengen im

[0, 1)2 -Datenraum:

Uniform, Cluster, Parcel, Gauss, Real (Kartographiedaten), Gemischt uniform Parametrisierung

Knotengröÿe 1024 Bytes

Kenngröÿen

Festplattenzugri bei der Suche und beim Einfügen, Speicherauslastung

Vergleichsob jekte

R-Bäume (Linear, Quadratisch, Greene)

Anfragen

Intersection(1%, 0.1%, 0.01%, 0.001% Selektivität), Punktanfrage, Enclosure, Ähnlichkeitsverbund

Weiteres

Implementierung in Modula-2

*

Tabelle 2.6: Evaluation des R -Baumes [BKS+90], Rechteckdaten

Ausnutzung existierender Knoten und damit zu geringerem Speicherverbrauch und schlussendlich zu einer optimaleren Indexierung des Datenbestandes. Zudem kommen beim Ändern der Knoten durch Splits oder Löschung weitere Heuristiken zum Einsatz. So lag der Fokus beim R-Baum darin, den Leerraum, der beim Wechsel von Elternknoten zu Kindknoten auftreten kann, zu minimieren. Beckmann et al.

*

hingegen, berücksichtigen beim R -Baum zusätzlich die folgenden drei Punkte.

2.4.

Mehrdimensionale Indexstrukturen

19



Minimierung der Überlappung zwischen MBRs.



Der Umfang von Elternknoten ist zu minimieren.



Optimierung der Speicherausnutzung (Höhenminimierung des Baumes).

*

Da der R -Baum eine Optimierung des R-Baumes darstellt, wurde er mithilfe des R-Baumes evaluiert. Die in Modula-2 umgesetzten Indexe wurden mit einer Kno-

*

tengröÿe von 1024 Bytes parametrisiert. Neben dem R -Baum wurde die R-BaumVariante von Greene [Gre89], der R-Baum mit quadratischem Split und der R-Baum mit linearem Split zur Analyse herangezogen. Beim Splitverfahren von Greene werden MBRs entlang der Dimension geteilt, bei der die gröÿten Abstände zwischen den Datenob jekten der zwei resultierenden MBRs erzielt werden. Für die Evaluation wurden drei verschiedene Anfragen generiert, wie sie nachfolgend beschrieben sind.



Fensteranfrage, wobei alle Rechtecke gesucht werden, die mit dem gegebenen Objekt überlappen (Intersection Query).



Punktanfrage.



Fensteranfrage, wobei alle Rechtecke gesucht werden, die vom gegebenen Objekt umschlossen werden (Enclosure Query).

Im ersten Testdurchlauf (Tabelle 2.6 auf der vorherigen Seite) wurden sechs Rechteckmengen mit verschiedenen Verteilungen als Testdaten genutzt. Basierend auf diesen Daten und Anfragen wurden die Indexe mit den erzeugten Festplattenzugrif-

*

fen verglichen, wobei die Angabe der Ergebnisse relativ zum R -Baum angegeben wurden. Weiterhin wurden das Einfügen von Daten und der Speicheraufwand der Indexstrukturen verglichen.

Kategorie

Beschreibung

Daten

7 Mengen von 2D-Punktdaten mit je ca. 100.000 Punkten, stark korreliert

Parametrisierung

-

Kenngröÿen

Festplattenzugri bei Suche relativ zum R -Baum,

*

Festplattenzugri beim Einfügen, Speicherauslastung Vergleichsob jekte

R-Bäume (Linear, Quadratisch, Greene), Grid-File

Anfragen

Fensteranfrage (0.1%, 1%, 10% Selektivität), zwei Partial-Match-Anfragen (Je eine Dimension beliebig)

Weiteres

-

*

Tabelle 2.7: Evaluation des R -Baumes [BKS+90], Punktdaten

Als weitere Anfrageart haben Beckmann et al. den Ähnlichkeitsverbund verglichen, wobei hier angepasste Datenmengen genutzt werden mussten. Für einen weiteren

20

2. Grundlagen

Testfall haben die Autoren neben den zuvor genutzten Indexen zusätzlich das GridFile, welches in Abschnitt 2.4.1 auf Seite 14 beschrieben wurde, herangezogen und auf ihre Eignung für Punktdaten getestet. Die Zusammenfassung dieses Testfalls ist in Tabelle 2.7 auf der vorherigen Seite beschrieben.

2.4.5 TV-Baum Lin, Jagadish und Faloutsos entwickelten im Jahr 1994 den Teleskopvektor (TV)Baum [LJF94], bei dem im Vergleich zu den bereits beschriebenen Indexen die Dimensionsanzahl der Daten reduziert wird um so auch in hohen Dimensionen performante Ergebnisse zu erzielen. Hierzu ndet eine Unterscheidung in aktive und

inaktive Dimensionen statt. In realen Daten nden sich häug korrelierte Dimen-

K5 K1

K1

D2

K2

D3 K3

K6 K7

D1 K4

K2

K3

K4

K5

K6

K7

D1

D2

D3

Abbildung 2.4: TV-Baum im zweidimensionalen Raum

sionen, d.h. sie hängen von anderen Dimensionen ab. Diese Dimensionen liefern nur einen geringen zusätzlichen Informationsgehalt zur Unterscheidung der Datenob jekte. Beim TV-Baum wird versucht den Datenraum zuerst mithilfe von aussagekräftigen Dimensionen (Gute Streuung der Daten im Raum) zu teilen. Lin, Jagadish und Faloutsos verweisen auf die Karhunen-Loève-Transformation [Fuk90] um aktive Dimensionen zu bestimmen. Die Daten werden wie in den vorherigen Indexen in Regionen eingeteilt (ähnlich der MBRs). Diese Regionen werden durch einen sogenannten Teleskopvektor, welcher durch den Mittelpunkt der Region deniert ist, und einer Distanz beschrieben. Basierend auf der Distanzberechnungsvorschrift wird die Form der Regionen deniert. So erreicht man zum Beispiel bei der Verwendung der Chebychev-Distanz eine Einteilung in (Hyper-)Rechtecke wie beim R-Baum. In Abbildung 2.4 ist ein TV-Baum mit zwei aktiven Dimensionen und der euklidischen Distanzmetrik illustriert. Die Entfernung von Dimensionen mit geringerem Informationsgehalt wird herbeigeführt, indem die Teleskopvektoren, die in dem abgebildeten Fall die Mittelpunkte der Kreise beschreiben um die entsprechenden Dimensionen gekürzt werden. Die Ausdehnung in diesen Dimensionen ist somit nicht vorhanden.

Die Evaluationen des TV-Baumes, die von Lin, Jagadish und Faloutsos durchgeführt wurden, fand in zwei Stufen statt und werden in Tabelle 2.8 und Tabelle 2.9 auf der nächsten Seite zusammengefasst. Als Datengrundlage kam ein Wörterbuch zum Einsatz, wobei die Wörter basierend auf der Anzahl ihrer Buchstaben in den

2.4.

Mehrdimensionale Indexstrukturen

21

Kategorie

Beschreibung

Daten

Wörtersammlung in 27-dimensionalen Raum basierend auf Buchstabenanzahl transformiert

Parametrisierung

Wörterbuchgröÿe (2.000 bis 16.000 Wörter)

Kenngröÿen

Blattzugri

Vergleichsob jekte

Aktive Dimensionen (1-6)

Anfragen

-Distanzanfrage

Weiteres

Implementierung in C++, Manhattan-Metrik

mit Distanz von 0 (Punktanfrage) bis 2

Tabelle 2.8: Intra-Index-Evaluation des TV-Baumes [LJF94]

27-dimensionalen Raum abgebildet wurden. Der Umfang des Wörterbuches variierte hierbei im Bereich von 2.000 und 16.000 Wörtern. Zuerst wurde eine IntraIndexanalyse durchgeführt um zu bestimmen, welches ein vielversprechender Wert für die Anzahl aktiver Dimensionen ist. Hierbei wurden sowohl

-Distanzanfragen

mit der Distanz zwei als auch mit null, welches einer Punktanfrage entspricht, durchgeführt. Die Kenngröÿe, nach der verglichen wurde, war der Zugri auf die Blätter

*

des TV-Baumes. Im zweiten Test, dem Vergleich des TV-Baumes mit dem R -Baum, wurde der Festplattenzugri und der Speicheraufwand der Indexe betrachtet. Ebenfalls im Fokus stand der Festplattenzugri beim Einfügen von Ob jekten in die Indexe.

Kategorie

Beschreibung

Daten

Wörtersammlung in 27-dimensionalen Raum transformiert

Parametrisierung

Wörterbuchgröÿe (2.000 bis 16.000 Wörter)

Kenngröÿen

Blattzugri bei Suche, Festplattenzugri bei Suche und Einfügen, Speicherauslastung

*

Vergleichsob jekte

R -Baum

Anfragen

-Distanzanfrage

Weiteres

Implementierung in C++, Manhattan-Metrik

mit Distanz von 0 (Punktanfrage) bis 2

Tabelle 2.9: Inter-Index-Evaluation des TV-Baumes [LJF94]

2.4.6 X-Baum Der von Berchtold, Keim und Kriegel [BKK96] entwickelte X-Baum (Extensible Tree) teilt den Datenraum wie die R-Bäume in MBRs ein. Neu hingegen sind Su-

perknoten, die durch die Vereinigung normaler Knoten erstellt werden, sollte es nicht möglich sein, beim Einfügen eines neuen Datenobjektes die Überlappung minimal zu halten. In Abbildung 2.5 auf der nächsten Seite ist ein X-Baum dargestellt, dessen

22

2. Grundlagen

Knoten K5 bis K8 zu einem Superknoten vereinigt wurden. Mithilfe dieser Anpassung kann einer schlechten Knotenauslastung aufgrund von häugen Splits entgegen gewirkt werden.

K1

K3

K2

K4

K5

K6

K7

D1

D2

D3

K8

Abbildung 2.5: X-Baum im zweidimensionalen Raum

*

Zur Evaluation des X-Baumes wurden der TV-Baum und der R -Baum genutzt. Alle genannten Indexe wurden in C++ implementiert. Als Testdaten nutzten Berchtold, Keim und Kriegel drei unterschiedliche Datensätze, wobei die maximale Dimensionsanzahl bei allen Daten auf 16 beschränkt war. Neben Fourierpunkten und räumlichen

Kategorie

Beschreibung

Daten

Fourierpunkte und CAD-Daten: Uniforme Daten:

Parametrisierung

d = 2, 4, 8, 16 d = 2, 3, 4, 6, 8, 10, 12, 14, 16

Blockgröÿe 4 KByte, Reduktion der Datengröÿe mit steigender Dimension

Kenngröÿen

Seitenzugri, CPU-Zeit, Gesamtsuchzeit

Vergleichsob jekte

R -Baum, TV-Baum

Anfragen

Punktanfrage, NN-Anfrage (Nicht TV-Baum)

Weiteres

Implementierung in C++

*

Tabelle 2.10: Evaluation des X-Baumes [BKK96]

Objekten basierend auf CAD-Daten wurde auch eine synthetische, gleich verteilte Datenmenge genutzt. Punktanfragen wurden an alle drei Indexe gestellt, wohingegen die NN-Anfrage beim TV-Baum nicht möglich war. Zusätzlich zu den Kenngröÿen CPU-Zeit und Seitenzugri wurde auch ein Vergleich zur absoluten Suchzeit durchgeführt. In Tabelle 2.10 ist die Evaluation nochmals zusammengefasst.

2.4.7 M-Baum Die Familie der R-Bäume war in ihrer Nutzung auf den euklidischen Vektorraum begrenzt, wohingegen der von Ciaccia, Patella und Zezula [CPZ97] beschriebene

2.4.

Mehrdimensionale Indexstrukturen

23

M-Baum (metric space) beliebige Metriken verwenden kann, solange diese die Dreiecksungleichung einhalten. Die Daten werden basierend auf ihrer Entfernung zu einem Mittelpunkt gruppiert, welche allerdings selber wieder basierend auf ihrer Entfernung in Regionen eingeteilt sind. Im euklidischen Raum entsprechen diese

Kategorie

Beschreibung

Daten

Synthetische, geclusterte Daten im Datenraum

Parametrisierung

Knotengröÿe 4 KByte, Variation der

[0, 1]d

Dimension (5-50), Datengröÿe (10.000 bis 100.000) Kenngröÿen

CPU-Kosten, I/O-Kosten, DistanzSelektivität, Volumen der Seiten

Vergleichsob jekte

Splitverfahren (Suche und Baumgenerierung)

Anfragen

10-NN-Anfrage

Weiteres

Generalized Search Tree (GiST), Implementierung in C++, Chebychev-Metrik

Tabelle 2.11: Intra-Index-Evaluation des M-Baumes [CPZ97]

Regionen Hypersphären. Zu den Regionen, die durch den Mittelpunkt und Radius deniert sind, wird zusätzlich die Entfernung zum Elternknoten gespeichert. Mithilfe dieser bereits vorberechneten, in den Routing-Knoten gespeicherten Distanzen und der Dreiecksungleichung können Datenobjekte bei Anfragen geltert werden, wodurch die Anzahl der Distanzberechnungen reduziert wird.

Kategorie

Beschreibung

Daten

Synthetische, geclusterte Daten im Datenraum

Parametrisierung

Knotengröÿe 4 KByte, Variation der

[0, 1]d

Dimension (5 bis 50) Kenngröÿen

CPU-Kosten, I/O-Kosten, Distanzselektivität

*

Vergleichsob jekte

R -Baum

Anfragen

Fensteranfrage (square range query), Seitenlänge =

Weiteres

√ d

0.01

GiST, Implementierung in C++

Tabelle 2.12: Inter-Index-Evaluation des M-Baumes [CPZ97]

Für den M-Baum wurde ähnlich der Vorgehensweise beim TV-Baum zuerst eine Intra-Index-Evaluation durchgeführt, wie sie in Tabelle 2.11 dargestellt ist. Der Fokus bei dieser Testreihe war es, die besten Splitstrategien zu bestimmen, indem diese in den Kategorien CPU-Aufwand (Anzahl der Distanzberechnungen), I/O-Aufwand

24

2. Grundlagen

(Seitenzugrie), Volumen je Seite und Distanzselektivität verglichen wurden. Letzteres ist ein Maÿ, welches den CPU-Aufwand in Verhältnis zur Anzahl der Gesamtobjekte stellt. Bei der zweiten Testreihe (Tabelle 2.12 auf der vorherigen Seite) wurden

*

I/O-Kosten, CPU-Kosten und Distanzselektivität des R -Baum und M-Baumes gemessen und verglichen. Alle Indexstrukturen wurden mithilfe des GiST-Projektes ([BNZ07]) umgesetzt, welches in Abschnitt 2.5.2 auf Seite 34 genauer betrachtet wird.

2.4.8 SS- & SR-Baum Ebenfalls datenaufteilende Baumverfahren sind der von White und Jain [WJ96b] veröentlichte SS-Baum und der SR-Baum, welcher in The SR-tree: an index structure for high-dimensional nearest neighbor queries [KS97] vorgestellt wurde. Der

*

SS-Baum nutzt im Gegensatz zum R -Baum keine Einteilung in Hyperrechtecke sondern Hypersphären, wohingegen der SR-Baum eine Kombination aus beiden Verfahren nutzt. Beide Aufteilungen sind in Abbildung 2.6 dargestellt. Es ist sichtbar, dass jeder Knoten im SR-Baum aus zwei Regionen besteht.

K5

K5 K1

K1

D2

D2 D3

D3 K3

K3

K6 K7

D1 K4

K6

K2

K7

D1 K4

K2

Abbildung 2.6: SS-Baum (links) und SR-Baum (rechts) im zweidimensionalen Raum

Der Übersicht halber wurden die Wurzelknoten beider Bäume und die zusätzlichen MBRs der zweiten Ebene im SR-Baum nicht abgebildet. Neben der Verwendung anderer Regionen zur Dateneinteilung im Vergleich zum R-Baum nutzen White und Jain auch angepasste Verfahren zum Einfügen von Objekten und dem Teilen der Knoten. Diese Änderungen werden auch im SR-Baum umgesetzt. Im Fokus von White und Jain stand die Performanz der NN-Anfrage im Vergleich

*

zum R -Baum. Drei Datenverteilungen mit verschiedenen Dimensionen wurden für diesen Zweck verwendet. Eine genauere Auistung kann Tabelle 2.13 auf der nächsten Seite entnommen werden. Die in Katayama und Satoh [KS97] durchgeführte, sehr umfangreiche Evaluation basierte ebenfalls ausschlieÿlich auf der NN-Anfrage. Nach einer Analyse der Vor- und Nachteile von Hyperrechtecken und Hypersphären zur Motivation der Idee des SR-Baumes (Reduzierung der Speicherauslastung), wurde der SR-Baum mit dem SS-Baum und dem VAM-Split-R-Baum

2

[WJ96a] ver-

2 Splits werden beim VAMSplit-R-Baum in der Dimension durchgeführt, die die höchste Streuung (

a

variance) der Daten aufweist. median) [WJ96a].

( pproximately the

Die genaue Splitposition ist ungefähr der Mittelwert

2.4.

Mehrdimensionale Indexstrukturen

25

glichen. Hierfür wurden gleichverteilte Punktdaten und reale von Bildern extrahierte Features genutzt. Während Datengröÿe und Dimension variiert wurden, wurde unter Anderem die CPU-Zeit, die Anzahl der Festplattenzugrie und Volumen und Durchmesser der Blattknoten erfasst (Tabelle 2.14). Eine weitere Arbeit, die in

Kategorie

Beschreibung

Daten

gleich-, normalverteilte Daten, Eigengesichter

Parametrisierung

Synthetischen Daten (

Kenngröÿen

Blattknotenzugrie (leaf nodes), davon Zugrie mit Resultat-

d = [2, 11]),

Reale Daten (

d = [10, 100])

änderung (useful leaf nodes) und Zugrie nach letzter Änderung (last useful leaf nodes), Speicherauslastung, Festplattenzugrie und CPU-Zeit beim Einfügen

*

Vergleichsob jekte

R -Baum

Anfragen

21-NN-Anfrage

Weiteres

-

Tabelle 2.13: Evaluation des SS-Baumes [WJ96b]

diesem Zusammenhang erwähnt werden soll, ist die Veröentlichung Distributed Continuous Range Query Processing on Moving Objects von Wang, Zimmermann

*

und Ku, in der R -, SS- und SR-Baum unter Verwendung von GiST ausführlich evaluiert wurden. So wurden insgesamt 24 Kombinationen aus Indexstruktur und verschiedensten Knotenanpassungsstrategien betrachtet. Dadurch konnten Erkenntnisse gewonnen werden, wie groÿ der Einuss der Strategien auf die Performanz ist beziehungsweise inwieweit die zugrundeliegende Dateneinteilung (Hyperrechtecke, -sphären und Kombination) am Ergebnis beteiligt ist. Für weitere Informationen wird auf die Veröentlichung [WZK06] verwiesen.

Kategorie

Beschreibung

Daten

Synthetische, gleichverteilte Punktdaten und Punktdaten basierend auf Bildeigenschaften

Parametrisierung

Variation der Dimension und Datengröÿe

Kenngröÿen

CPU-Zeit, Festplattenzugri, Knotenzugrie, Blattknotenzugrie, Distanzwerte, Volumen und Durchmesser der Blattknoten

Vergleichsob jekte

SS-Baum, VAM-Split-Baum

Anfragen

NN-Anfrage

Weiteres

Implementierung in C++

Tabelle 2.14: Evaluation des SR-Baumes [KS97]

26

2. Grundlagen

2.4.9 k-d- & K-D-B-Baum 1975 entwickelte Bentley den k-d-Baum, welcher die Daten im Hauptspeicher in einem Suchbaum organisiert [Ben75]. Die Daten liegen hierbei direkt in den Knoten vor. Mit jedem Levelabstieg wird alternierend eine weitere Dimension verglichen. So liegen Daten, die in der ersten Dimension kleinere Werte haben als die Wurzel links im k-d-Baum, wohingegen Elemente mit gröÿeren Werten rechts zu nden sind. Auf der nächsten Baumebene wird nun die zweite Dimension verglichen. Nachdem die letzte Dimension als Unterscheidungskriterium genutzt wurde, wird die Knoteneinteilung wieder beginnend mit der ersten Dimension vorgenommen.

Mit dem adaptiven k-d-Baum wurde 1979 eine optimierte Variante vorgestellt [Ben79]. Da der originale Suchbaum sehr von der Einfügereihenfolge der Daten abhängt und im schlimmsten Fall stark entarten kann, wurde versucht mit einer optimierten Splitstrategie eine balancierte Variante zu generieren. Hierbei ist es allerdings notwendig

Kategorie

Beschreibung

Daten

Gleichverteilte Punktdaten im Bereich

d = {2; 3},

Datengröÿe

[0, 1),

= 100.000

Parametrisierung

Knotenanzahl, -gröÿe

Kenngröÿen

Speichernutzung, Seitenzugri je Einfügeoperation

Vergleichsob jekte

-

Anfragen

Fensteranfrage (13 unterschiedliche Gröÿen)

Weiteres -

Tabelle 2.15: Evaluation des K-D-B-Baumes [Rob81]

die Daten ausschlieÿlich in den Blattknoten zu speichern. Die Elternknoten beinhalten den Funktionswert der entsprechend dem Level zu betrachtenden Dimension, welcher notwendig ist um die Daten möglichst gleichmäÿig in zwei Mengen (dem Pfad folgende Teilbäume) zu teilen. Der adaptive k-d-Baum ist in Abbildung 2.7 auf der nächsten Seite für den zweidimensionalen Fall dargestellt. Evaluationen zu diesen beiden Indexierungsverfahren wurden in den Orginalveröentlichungen nicht durchgeführt [Ben75; Ben79].

+

Robinson [Rob81] entwickelte basierend auf dem adaptiven k-d-Baum und dem B

den K-D-B-Baum. Dieser ist ein ausgeglichener Baum, welcher als Knotenelemente wieder Bäume enthält. Robinson führte eine Intra-Indexanalyse mit dem Fokus auf Speichernutzung und Seitenzugrie bei Fensteranfragen durch, welche in Tabelle 2.15 dargestellt ist. Der K-D-B-Baum wurde hierbei mit gleichverteilten zwei- und dreidimensionalen Daten befüllt.

2.4.

Mehrdimensionale Indexstrukturen

27

X2 X1 D6

D1 D2

Y2

Y1

Y2

D5

Y1

X2

D3

X3

D6

D4

D3

D1 X1

D2

D4

D5

X3

Abbildung 2.7: Adaptiver kd-Baum im zweidimensionalen Raum

2.4.10 VA-File Die bisher vorgestellten Verfahren unterliegen alle dem Fluch der Dimensionen. Das bedeutet, dass sie in hohen Dimensionen zur sequentiellen Suche ausarten beziehungsweise sogar schlechteres Laufzeitverhalten aufweisen [WB97b]. Das von Weber, Schek und Blott vorgestellte Vektorapproximation (VA)-File ist ein Ansatz, der die sequentielle Suche optimiert und dadurch eine bessere Skalierung in hohen Dimensionen erreicht [WB97a; WB97b; WSB98]. Basierend auf einen berechneten Approximationensvektor der Datenpunkte können nicht relevante Daten bei Anfragen ausgeschlossen werden. Hierzu werden die Dimensionen in Bereiche aufgeteilt, wobei jedem Bereich ein eindeutiger Bitwert zugewiesen wird.

11

D1

10

D5

D4 D8

D6

D7

D9

01

D3

D2

D10

D12

D11

D15 00

D13 00

D16

D14 01

10

D17

D18

D1 D2 D3 D4 D5 D6 D7 D8 D9

00 11 01 11 10 11 11 11 00 10 01 10 10 10 11 10 00 01

D10 D11 D12 D13 D14 D15 D16 D17 D18

01 01 10 01 11 01 00 00 01 00 01 00 10 00 11 00 11 00

11

Abbildung 2.8: Räumliche Ausprägung des VA-Files (links) und zugehörige Approximationsdatei (rechts)

In Abbildung 2.8 ist eine zweidimensionale Darstellung eines VA-Files gegeben, wobei jede Dimension in vier Abschnitte (zwei Bits) untergliedert ist. Die Datenob jekte werden somit eindeutig einer Bitsequenz (Approximation) zugewiesen. Basierend auf den Approximationen und den Grenzen der Zellen können Datenpunkte bei der Suche ausgeschlossen werden.

28

2. Grundlagen

Bei der Evaluation des VA-Files wurden synthetische, gleichverteilte Daten im Datenraum

[0, 1]d

und reale Daten basierend auf der Farbverteilung von Bildern ge-

nutzt. Betrachtet wurde das VA-File zum einen mit dem  Simple Search Algorithm (SSA) und zum anderen mit dem  Near-Optimal Search Algorithm (NOA). Im

*

nächsten Schritt wurde das VA-File dann mit dem R -Baum und dem X-Baum verglichen. Die detaillierte Aufschlüsselung des Inter-Index-Vergleiches ist Tabelle 2.16 zu entnehmen. Aufbauend auf das VA-File entwickelten Ferhatosmanoglu et al. [FTA+00] das VA

+-

File, welches eine variable Anzahl an Bits für die Dimensionen zulässt. Dadurch ist es möglich, Dimensionen feingranularer einzuteilen als Andere, sollten so die Daten gleichmäÿiger verteilt werden können. Somit wird ein ähnlicher Ansatz der Dimensionsgewichtung gewählt wie schon beim TV-Baum im Abschnitt 2.4.5 auf Seite 20 beschrieben worden ist.

Kategorie

Beschreibung

Daten

Synthetische uniform verteilte Daten (

[0, 1]d ),

Realdaten extrahiert von Bildern (Farbverteilung) Parametrisierung

Variation der Gröÿe (50.000 bis 300.000) und Dimension (2 bis 45)

Kenngröÿen

Vektorenzugrie (total und prozentual), CPU-Zeit, Gesamtzeit (Wall-Clock-Time)

*

Vergleichsob jekte

SSA, NOA, R -, X-Baum

Anfragen

10-NN-Anfrage

Weiteres

Euklidische Metrik

Tabelle 2.16: Evaluation des VA-Files [WB97a; WSB98]

2.4.11 Pyramidentechnik Bei der in  The Pyramid-Technique: Towards Breaking the Curse of Dimensionality von Berchtold, Böhm und Kriegel [BBK98b] vorgestellten Pyramidentechnik wird der

d-dimensionale

Datenraum in

2∗d

Pyramiden aufgeteilt, wobei die Spitze

jeder Pyramide das Zentrum des Datenraumes ist. Die Pyramiden selber werden dann horizontal zur entsprechenden Pyramide in Ebenen untergliedert wie es in Abbildung 2.9 auf der nächsten Seite links zu sehen ist. Diese Ebenen stellen die Regionen zur Gruppierung der Datenobjekte dar, womit ein mehrdimensionales Datum durch einen Schlüsselwert beschrieben werden kann. Dieser besteht aus dem Paar Pyramide und Ebene, wobei die Ebene basierend auf der Distanz zur Spitze bestimmt wird. Dieser Schlüssel kann dann in einer eindimensionalen Datenstruktur wie dem B

+ -Baum

gespeichert werden, welcher eziente

Algorithmen beim Ändern der Daten mit sich bringt.

2.4.

Mehrdimensionale Indexstrukturen

29

Abbildung 2.9: Visualisierung der Pyramide nach [BBK98b] (links) und [LK03] (rechts) im zweidimensionalen Raum

Weiterhin wurden von Berchtold, Böhm und Kriegel Ansätze betrachtet, bei denen die Spitze der Pyramiden aus dem Raummittelpunkt verschoben wird um Datenverteilungen, die nicht gleichmäÿig verteilt sind, besser aufteilen zu können. Umfangreich evaluiert wurde allerdings die statische Variante (Tabelle 2.17), die sowohl mit realen als auch synthetischen Daten gegen den X-Baum, den Hilbert-R-Baum (siehe Abschnitt 2.4.14 auf Seite 31) und die sequentielle Suche verglichen wurde. Im Fokus standen hierbei CPU-Zeit, Seitenzugrie und die Gesamtzeit bei

-

Distanzanfragen.

Kategorie

Beschreibung

Daten

synthetische uniform verteilte Daten, Realdaten (Internetseiten, Data-Warehouse-Daten)

Parametrisierung

Variation der Gröÿe (500.000 bis 2.000.000) und Dimension (8 bis 100)

Kenngröÿen

CPU-Zeit, Seitenzugrie, Gesamtzeit, zusätzlich prozentualer Vergleich zum X-Baum

Vergleichsob jekte

X-Baum, Hilbert-R-Baum, Sequentielle Suche

Anfragen

-Distanzanfrage

Weiteres

-

(Selektivität

10−5 %

bis

31%)

Tabelle 2.17: Evaluation der Pyramidentechnik [BBK98b]

Eine Anpassung an dieses Verfahren nehmen Lee und Kim [LK03] vor, indem sie die Pyramiden nicht mit horizontalen Schnitten einteilen, sondern Sphären nutzen. Die rechte Darstellung in Abbildung 2.9 zeigt diese Einteilung. Dadurch kann garantiert werden, dass alle Punkte einer Region den gleichen Abstand zur Spitze besitzen, wodurch verbesserte Algorithmen zur Bearbeitung von kNN-Anfragen umgesetzt werden können.

30

2. Grundlagen

2.4.12 Prototyp-/Permutation-basiertes Verfahren Beim Prototyp- respektive Permutations-basierten Verfahren von Chavez, Figueroa und Navarro [CFN08] wird die Ähnlichkeit von Objekten durch ihre Entfernung zu denierten Punkten aus der Datenbasis, den sogenannten Prototypen, bestimmt. So werden zu Beginn

a

Punkte als Prototypen deniert, die den Datenraum mög-

lichst gleichmäÿig beschreiben. Daraufhin werden für alle im Datenraum liegenden Punkte die Distanzen zu den Prototypen berechnet und der Entfernung nach aufsteigend sortiert. Es ergibt sich für jeden Punkt eine Permutation aus Prototypen, die als Approximationswert zur Bestimmung von Kandidaten bei Anfragen benutzt werden kann. Ähnliche Punkte werden dadurch bestimmt, dass sich ihre Permutationen ebenfalls ähnlich sind. Daraus ist natürlich zu schlussfolgern, dass die Performanz dieses Verfahrens extrem von der Bestimmung der Prototypen abhängt. Im schlimmsten Fall ist es möglich, dass die Mehrheit der Datenobjekte die gleiche Permutation aufweisen, wodurch sich der sequentiellen Suche angenähert wird.

P1P3P2

P3P1P2

D2 P1

P1P2P3

P3P2P1

D1

D1 D2 D3 D4 D5 D6

P1P2P3 P1P3P2 P3P2P1 P2P3P1 P2P1P3 P2P1P3

P3 P2 D3 D6

D4 D5 P2P1P3

P2P3P1

Abbildung 2.10: Visualisierung des Prototyp-basierten Verfahrens

Abbildung 2.10 veranschaulicht einen durch drei Prototypen aufgeteilten zweidimensionalen Datenraum mit den aus der Aufteilung resultierenden Permutationen für die sechs Datenobjekte D1-D6.

Die Evaluation wurde primär mithilfe der sequentiellen Suche und des von Bustos und Navarro [BN02] beschriebenen Pivot-basierten Verfahrens durchgeführt. Bei dem pivot-basierten Verfahren wurde zudem die Metrik variiert. Im Rahmen des Vergleichs mit Gesichtsdaten nutzten die Autoren weiterhin den k-d-Baum und AESA. Eine Besonderheit dieser Evaluation ist die Nutzung von Metriken wie der fraktionalen Minkowski-Distanz und der Edit-Distanz. In Tabelle 2.18 auf der nächsten Seite ist die komplette Parametrisierung dieser Vergleichsdurchführung dargestellt. Da es sich bei dem Prototyp-basierten Verfahren um eine approximative Indexstruktur handelt wurden neben den häug genutzten Kenngröÿen CPU-Zeit und Distanzberechnungen Aussagen über den Erfolg der Anfragen getroen, indem relative Fehler, korrekte Anfragen und der prozentuale Anteil korrekter Ergebnisse gemessen wurden.

2.4.

Mehrdimensionale Indexstrukturen

31

Kategorie

Beschreibung

Daten

Uniform und multivariat normalverteilte Daten, Reale Daten (Gesichterdaten, Dokumentensammlung)

Parametrisierung

ap = {126, 256}, d = 128

Kenngröÿen

CPU-Zeit, Vergleich der Datenob jekte, Erfolgreiche

bis

1024, n = 10.000

Anfragen/Fehler, Prozent korrekter Ergebnisse Vergleichsob jekte

kd-Baum, AESA, Pivot-basiert, Sequentielle Suche

Anfragen

-Distanzanfrage (Selektivität 0.05%, 0.035%), kNN-Anfrage (k = [1, 20])

Weiteres

Edit-Distanz, Minkowski (Fraktional, Euklid)

Tabelle 2.18: Evaluation des Prototyp-basierten Verfahrens [CFN08]

2.4.13 Locality Sensitive Hashing Wie auch das VA-File oder das Prototyp-basierte Verfahren wird beim  Locality Sensitive Hashing (LSH), welches von Indyk und Motwani [IM98] beschrieben wurde, ein Approximationsansatz zur Identizierung der Datenob jekte gewählt. Im Gegensatz zur normalen Arbeitsweise von Hashfunktionen, bei denen es wichtig ist möglichst kollisionsfrei auf der entsprechenden Datenmenge zu arbeiten, ist es beim LSH gewünscht, dass die Hashfunktionen Kollisionen verursachen. Datenpunkte sollen genau dann kollidieren beziehungsweise den gleichen Hashwert aufweisen, wenn sie räumlich nah beieinander liegen (local sensitive). Somit wird der mehrdimensionale Datenraum auf einen eindimensionalen Hashwert abgebildet auf Grundlage dessen dann Ähnlichkeitsbeziehungen hergestellt werden können. Evaluiert wurde dieses Verfahren in Similarity Search in High Dimensions via Hashing [GIM99]. Neben 20.000 Histogrammen mit bis zu 64 Dimensionen wurde auch ein Datensatz bestehend aus Punktdaten mit 275.465 Ob jekten und einer maximalen Dimension von 60 genutzt. Nach der ersten Phase, in der verschiedene Variablen des LSH-Verfahrens getestet wurden, haben Gionis, Indyk und Motwani die Auswirkung der Gröÿe der Datenmenge und der Dimension auf den SR-Baum und LSH evaluiert. Bei dieser Inter-Index-Evaluation wurden aNN-Anfragen gestellt und für diese die Anzahl der Festplattenzugrie und Genauigkeit berechnet (Tabelle 2.19 auf der nächsten Seite). Die Wahl geeigneter Hashfunktionen ist entscheidend bei der Nutzung dieses Verfahrens. An dieser Stelle wird auf die Arbeit Locality-sensitive hashing scheme based on p-stable distributions von Datar et al. [DII+04] verwiesen, die p-stabile Verteilungen für

Lm , m = (0, 2]

vorschlagen.

2.4.14 Raumfüllende Kurven Mit dem TV-Baum in Abschnitt 2.4.5 auf Seite 20 wurde bereits ein Verfahren beschrieben, welches den Fluch der Dimensionen löst, indem zur Ähnlichkeitsberechnung nur eine Untermenge aller Features genutzt wird. Mit raumfüllenden Kurven

32

2. Grundlagen

Kategorie

Beschreibung

Daten

Histogramme, Punktdaten

Parametrisierung

8 KByte Blockgröÿe, Variation der gröÿe der Hashzellen (100 bis 1000), der Ob jektanzahl und Dimension

Kenngröÿen

Geschwindigkeit (Anzahl von Festplattenzugrien), Genauigkeit (nur LSH)

Vergleichsob jekte

SR-Baum

Anfragen

aNN-Anfragen mit

Weiteres

-

k = {1, 10}

Tabelle 2.19: Inter-Index-Evaluation des Local Sensitive Hashings [GIM99]

existiert ein ähnlicher Ansatz der Dimensionsreduktion, bei dem die mehrdimensionalen Daten in den eindimensionalen Raum abgebildet werden können [Pea90; Hil91]. Mit der Z-Kurve [Mor66] und der Hilbert-Kurve [FR89] sind zwei dieser raumfüllenden Kurven in Abbildung 2.11 für den zweidimensionalen Raum abgebildet. Anwendung ndet die Z-Kurve im UB-Baum von Bayer [Bay97], der die Datenobjekte mithilfe des Schlüssels der Z-Kurve in den B-Baum integriert. Der HilbertR-Baum hingegen, ist ein angepasster R-Baum, der die Hilbert-Kurve nutzt um ähnliche Objekte in gleichen MBRs zu gruppieren [KF94]. Dadurch kann eine Minimierung der Fläche und des Umfangs der Regionen erreicht werden.

Abbildung 2.11: Z-Kurve (links) und Hilbert-Kurve (rechts) im zweidimensionalen Raum

2.5

Benchmark

Der Prozess des Benchmarking

beschreibt im allgemeinen Sprachgebrauch einen

Vergleichsprozess mit dem Ziel Erkenntnisse über die Eignung der betrachteten Vergleichsobjekte oder -prozesse zu gewinnen. In  Benchmarking: Leitfaden für die Pra-

xis  [SK08, S. 8] wird der Begri Benchmark als Referenzpunkt einer gemessenen

2.5.

Benchmark

33

Bestleistung deniert. Die Schwierigkeit beim Benchmarking liegt in der Sicherstellung von objektiven, validen und wiederholbaren Ergebnissen. Weiterhin ist die Wahl eines geeigneten Bezugswertes von grundlegender Bedeutung für das Benchmarking. Häug basiert dieser Wert auf mehreren Kenngröÿen, die im Laufe des Vergleichsprozesses gemessen werden. Dieser Bezugswert sollte für den Anwender möglichst aussagekräftig sein. Beispielsweise ist der Widerstandsbeiwert eines Autos (Strömungswiderstand) für den Käufer eines Kraftfahrzeugs eine wenig relevante Kenngröÿe zum Vergleich, wohingegen sich die komplexere Bezugsgröÿe Spritverbrauch wesentlich mehr eignet. Da das Ziel dieser Arbeit ein Benchmarkmodell für mehrdimensionale Indexstrukturen ist, werden im Folgenden einige Benchmarking-Pro jekte beschrieben, die sich thematisch in den Bereich datenintensiver Systeme einordnen lassen. Weiterhin wird jeweils der Bezug zur vorliegenden Arbeit hergestellt um so die Aufgabenstellung im Vergleich zu den Projekten abgrenzen zu können.

2.5.1 Datenbankbenchmarks TPC Das Transaction Processing Performance Council (TPC)

3

ist ein Unternehmen, wel-

ches Benchmarks von Datenbanksystemen bereitstellt. Die Leistung der Systeme wird basierend auf der Anzahl durchgeführter Transaktionen oder Anfragen in einem bestimmten Zeitintervall angegeben. Darüber hinaus werden wirtschaftliche Bezüge in Form von Energieverbrauch und monetären Kosten je Transaktion respektive Anfrage gemessen. Das Unternehmen deniert mehrere Benchmarks aus unterschiedlichen Anwendungsbereichen. Im TPC-C-Benchmark wird ein System eines Zulieferers simuliert, welcher global tätig ist [Cou10a]. Parallele Transaktionen zum Ändern von zum Beispiel Bestellungen oder Bezahlungen sind ebenso integriert wie reine Überwachungsanfragen.

TPC-E ist zwar ebenso wie TPC-C ein  Online Transaction Processing (OLTP)Benchmark, Daten, Transaktionsverteilungen und Datengeneration unterscheiden sich allerdings [Cou10b]. Ein umfangreicher Vergleich wird von Chen et al. [CAA+11] durchgeführt. Im Gegensatz dazu simulieren TPC-DS und TPC-H  Online Analytical Processing (OLAP)-Umgebung in Form von Decision Support-Systemen [Cou12a; Cou12b]. In diesen Anwendungsfällen werden groÿe Datenmengen angefordert und verarbeitet, was sich in hohem CPU- und I/O-Aufwand widerspiegelt.

PolePosition An dieser Stelle sei der Open Source Benchmark PolePosition

4

erwähnt, welcher in

Java geschrieben, ebenfalls Datenbanken auf ihre Performanz hin vergleicht. Allerdings haben sowohl die TPC-Benchmarks als auch PolePosition mit der Evaluation

3 http://www.tpc.org/, Zugri am 02.05.2013 4 http://polepos.org/, Zugri am 02.05.2013

34

2. Grundlagen

von Datenbanken einen anderen Geltungsbereich als die in dieser Arbeit mit mehrdimensionalen Indexstrukturen abgesteckte Aufgabenstellung.

2.5.2 GiST  Generalized Search Tree (GiST)

5

ist ein Pro jekt mit dem Ziel die vielfältigen mehr-

dimensionalen Baumverfahren in einem Paket zu vereinen [HNP95]. Hierzu werden Klassen bereitgestellt, die die generelle Funktionsweise von Baumstrukturen bereits bereitstellen (Suche, Einfügen, Löschen). Vom Anwender ist die Klasse der Datenobjekte anzugeben, die beispielsweise in Form von MBRs realisiert werden kann, sollte der R-Baum umgesetzt werden wollen. In der zu implementierenden Klasse sind die Methoden Consistent, Union, Compress, Decompress, Penalty und PickSplit zu denieren. GiST ist somit ein erster Ansatz Baumverfahren durch die Bereitstellung gemeinsamer Klassen zu vergleichen. Weiterhin ist es leicht möglich, existierende Verfahren um neue Datenräume zu erweitern. Allerdings wird der Entwickler durch die Nutzung von GiST auch eingeschränkt. So sind die Nutzung der GPU, aber auch die Parallelisierung der Baumverfahren aktuelle Forschungsgebiete [BKS96; BBB+97; LJC+11; YZ12; Her13]. Dies wäre mit GiST nur schwer umzusetzen, da Kernalgorithmen wie Suche und Einfügen bereits vorgegeben sind.

2.5.3 MESSIF Das  Metric Similarity Search Implementation Framework (MESSIF)

6

wurde von

Batko, Novak und Zezula [BNZ07] mit dem Ziel Indexstrukturen im metrischen Raum zu evaluieren, entwickelt. Im Gegensatz zu GiST, welches in C++ geschrieben ist, wurde MESSIF in Java implementiert. MESSIF besteht aus mehreren Modulen von denen einige im Folgenden näher erläutert werden.



Operationen: Neben den Änderungsoperationen der Datenbasis (Einfügen und Löschen) werden in diesem Modul auch

-Distanzanfrage,

kNN-Anfrage und

Ranking-Anfrage speziziert.



Speicher: Implementierungen zur Nutzung des Arbeitsspeichers als auch sekundärer Speicher zur Ablage der Datenobjekte sind umgesetzt worden.



Indexe: Dieses Modul beinhaltet die fünf Verfahren M-Baum [CPZ97], PMBaum [Sko04], D-Index [DGS+03], aD-Index und Vantage Point Tree (VPT) [ZAD+06].



Überwachung: Statistische Angaben zu den Algorithmen, Raumaufteilung und Anfragen sind hier implementiert.

5 http://gist.cs.berkeley.edu/, Zugri am 02.05.2013 6 http://lsd..muni.cz/trac/messif/, Zugri am 02.05.2013

2.6.

Zusammenfassung

35

Da sich bei MESSIF allerdings auf den metrischen Raum beschränkt wird, sind zum Beispiel Berechnungsvorschriften wie die fraktionale Minkowski-Distanz ausgeschlossen.

2.5.4 ELKI  Environment for DeveLoping KDD-Applications Supported by Index-Structures (ELKI)

7

ist ein Framework zur Wissensentdeckung in Datenbanken, (Knowledge

Discovery in Databases) (KDD) und kann zur Evaluation von Indexstrukturen genutzt werden [AGK+12]. Um ob jektive Ergebnisse erzielen zu können, empfehlen die Autoren die Nutzung von Java, gleichen Backend-Features, ähnlichen Abstraktionen von Algorithmen und den jeweils besten Parametrisierungen von Indexverfahren. Neben verschiedenen Möglichkeiten der Datengeneration werden Distanzmetriken, Anfragen und die im Fokus des Benchmarking stehenden Clusteralgorithmen und Indexstrukturen bereitgestellt.

2.6

Zusammenfassung

In diesem Kapitel sind die Grundlagen beschrieben worden, mithilfe derer in den folgenden Kapiteln die Fragestellung aus Abschnitt 1.3 auf Seite 4 gelöst werden soll. Zu Beginn dieses Kapitels wurden die Themenbereiche Daten, Anfragen und Metriken erläutert, da sie für die darauf folgenden Beschreibungen verschiedener Indexstrukturen notwendig waren. Dabei wurde jeweils kurz die Funktionsweise des Indexes erläutert, um im Anschluss daran die Evaluationen im Detail darstellen zu können. Im letzten Abschnitt ist auf den Benchmarkbegri und ausgewählte Benchmarkprojekte eingegangen worden.

7 http://elki.dbs.i.lmu.de/, Zugri am 02.05.2013

36

2. Grundlagen

Kapitel 3

Benchmark

In diesem Kapitel werden die Fragen zu Gemeinsamkeiten und Unterschieden beim Vergleichen von Indexen, die in Abschnitt 1.3 auf Seite 4 gestellt wurden, beantwortet. Als Grundlage dienen die im Abschnitt 2.4 beschriebenen Evaluationen von ausgewählten Indexstrukturen. Das Ziel ist es ein Modell zum Benchmarking von Indexstrukturen zu denieren um die Art und Weise der Testdurchführung vereinheitlichen zu können. Dadurch soll es möglich werden, ob jektive, valide und wiederholbare Ergebnisse zu erhalten. Aus den in Abschnitt 2.4 erläuterten Evaluationen lassen sich Kernelemente ableiten, die Bestandteil der Mehrheit der Testumgebungen waren. In den nachfolgenden Abschnitten wir die Umsetzung dieser Elemente in den Evaluationen beschrieben. Im letzten Teil einer jeden Beschreibung werden dann Ansätze deniert, wie die entsprechenden Kernelemente in das Benchmarkmodell einieÿen können. Das Modell selber wird dann in Abschnitt 3.2 auf Seite 43 erläutert.

3.1

Kernkomponenten

Schritt eins aller Evaluationen ist die Festlegung der Datensätze, auf Grundlage derer die Indexstrukturen evaluiert werden. Diese Kernkomponente wird im folgenden Abschnitt 3.1.1 auf der nächsten Seite näher betrachtet. Stehen die Daten bereit, werden diese in die Indexstruktur(en) eingefügt. Danach wird dann der eigentliche Vergleichsprozess durchgeführt, welcher auf vielfältige Weise parametrisiert werden kann. So kommt bei einer Intra-Indexstrukturanalyse nur ein Indexstrukturverfahren zum Einsatz, wie es beispielsweise beim TV-Baum, M-Baum oder dem VA-File gehandhabt wurde. Hierbei handelt es sich allerdings häug um die erste Phase der Evaluation, in der Erkenntnisse über sinnvolle Parametrisierungen des betrachteten Verfahrens gewonnen werden. Man kann sich dieses Vorgehen als einen Kalibrierungsprozess von Indexstrukturen vorstellen. Die Variation von Parametrisierungen ist nur ein Beispiel eines Intra-Indexvergleiches. So ist zum Beispiel die Variation von äuÿeren Parametern wie Datengröÿe oder Dimensionsanzahl bei gleicher Indexstruktur ebenfalls denkbar. Es existieren zudem auch Evaluationen, bei denen die erste Phase nicht durchgeführt wird. Dies ist beispielsweise der Fall, wenn bereits ausreichend Kenntnisse über die Parametrisierung des/der Index(e) exisitieren.

38

3. Benchmark

In der zweiten Phase, dem Inter-Indexvergleich, werden die Informationen aus der ersten Phase genutzt um aussagekräftige Ergebnisse im Vergleich zu anderen Indexierungsverfahren zu erhalten. Zum Testen der Indexe werden Anfragen generiert, die mithilfe der zu evaluierenden Indexe beantwortet werden. Wie bereits in Abschnitt 2.3 auf Seite 10 beschrieben, existieren je nach zugrundeliegenden Daten vielfältige Anfragearten. Diese zweite Kernkomponente eines Indexstrukturbenchmarks wird in Abschnitt 3.1.2 auf Seite 40 im Detail erläutert, wobei der Fokus auf der Generierung und der Wahl geeigneter Anfragearten liegt. Bei der Beantwortung von Anfragen mithilfe von Indexstrukturen sind Metriken notwendig, welche Ähnlichkeitsbeziehungen zwischen den Datenobjekten herstellen. Das Ergebnis der Evaluation sind eine oder mehrere Kenngröÿen, die die Basis des Vergleich der Indexstruktur(en) sind. Aus den Informationen in Abschnitt 2.4 auf Seite 12 wird ersichtlich, dass die die Wahl von Kenngröÿen vielfältig ist. Laut der Erläuterung des Benchmarkbegries aus Abschnitt 2.5 auf Seite 32 ist eine primäre Kenngröÿe notwendig, um ein einheitliches Benchmarking sicher zu stellen. Die Lösung dieses Problems wird in Abschnitt 3.1.4 auf Seite 42 beschrieben.

3.1.1 Daten Es existieren vielfältige Datenausprägungen, die bei der Evaluation von Indexstrukturen genutzt werden können. Diese Möglichkeiten werden nur durch die Indexstruktur selber eingeschränkt. Zum Beispiel arbeitet das in Abschnitt 2.4.1 beschriebene Grid-File auf Punktdaten, wohingegen der R-Baum und dessen Erweiterungen für räumliche Datenob jekte entwickelt wurden. So nutzte Guttman [Gut84] beim RBaum Entwürfe der RISC II-Mikroarchitektur [KSP+84], wohingegen Kamel und Faloutsos [KF94] zur Evaluation des Hilbert-R-Baumes auf umfangreiche, geograsche Datensätze des  Topologically Integrated Geographic Encoding and Referencing (TIGER)-Projektes

1

zurück greifen konnten. Dass sich die R-Baum-Familie aller-

*

dings auch für Punktdaten eignet, wurde bei der Evaluation des R -Baumes gezeigt [BKS+90], indem sieben unterschiedlich verteilte 2D-Punktdaten zum Einsatz kamen. Aus diesen Beispielen wird ersichtlich, dass nicht nur der Datenraum der Datensätze an sich beachtet werden muss, sondern auch die Quelle aus der die Daten stammen. Zum einen werden reale Daten genutzt, wobei allerdings keine Einigkeit bei der Wahl der Herkunft besteht. So werden Features von Bildern unterschiedlichster Quellen verwendet [AS10; Bri95; WB97a; WSB98; YOT+01; ZOT04]. Bei Textdaten ist dies ebenfalls der Fall [Bri95; BBB+97; BBK98a; BBK98b; BBK+00]. Beispielsweise nutzen Berchtold, Böhm und Kriegel Internetseiten als Grundlage [BBK98b], Brin hingegen verwendet Textpassagen der Tragödie Hamlet [Bri95]. Verschiedene Datensätze des bereits erwähnten TIGER-Pro jekt sind ebenfalls häug Grundlage für Evaluationen [KF94; BS01; ABH+04]. Zum anderen greifen die Autoren neben realen Daten auf synthetische, also selbst

1 http://www.census.gov/geo/maps-data/data/tiger.html

3.1.

Kernkomponenten

39

generierte Daten zurück. Wie in Abschnitt 2.1 auf Seite 7 bereits erwähnt, werden zur Datengenerierung Verteilungsfunktionen genutzt. Mit der Gleichverteilung (uniform), der Normalverteilung (Gauss) und einem geclusterten Datensatz sind drei der verbreitetsten Verteilungen in Abbildung 3.1 abgebildet. Zur Generierung dieser Daten kam ELKI zum Einsatz, welches zur Parametrisierung XML-Dateien benötigt. Die zu den Abbildungen zugehörigen XML-Dateien sind in der Anmerkung auf Seite 76 zu nden. Die Gleichverteilung ist bis auf wenige Ausnahmen Teil jeder Evaluation. Die Normalverteilung wird ebenfalls oft genutzt [BKS+90; LK03; WJ96b], noch häuger nden jedoch geclusterte Datenmengen Anwendung [BKS+90; CPZ97; AS10; ABH+04; WHL98; ZOT04; YOT+01]. Die Wahl der Verteilung bedingt zudem den Umfang der notwendigen Parametrisierung bei der Datengenerierung. Unabhängig von der Verteilung sind Parameter wie Anzahl der Datenobjekte und Dimensionen. Bei der Normalverteilung beispielsweise kann zudem der Mittelwert, die Abweichung und die Korrelation zwischen den Dimensionen deniert werden.

(a) Gleichverteilte Daten

(b) Normalverteilte Daten

(c) Geclusterte Daten

Abbildung 3.1: Verbreitete Datenverteilungen in Evaluationen

Die erläuterte Datenvielfalt macht deutlich wie komplex das Thema Datengrundlage bei der Evaluation von Indexstrukturen ist. Da Indexstrukturen in unzähligen Bereichen Anwendung nden, ist es praktisch nicht möglich alle Realdaten zukünftiger Anwendungsgebiete in die Evaluation einzubeziehen. Eine Funktionalität eines Benchmarks für Indexstrukturen sollte die Generierung von gleichverteilten, normalverteilten und geclusterten Daten mit dem entsprechenden Umfang an Parametern sein. Die Bereitstellung von Realdaten sollte exemplarisch nach Anwendungsgebiet und/oder Datentyp erfolgen wie es beispielsweise beim Archiv der  UCI Knowledge Discovery in Databases (UCI KDD) gehandhabt

2

wird . Höchste Priorität muss hierbei den Punktdaten gegeben werden, da diese die am häugsten genutzte Datenausprägung ist. Eine Erweiterung, die ebenfalls denkbar wäre, ist die Einbindung von Dimensionsreduktionsverfahren wie die Singulärwertzerlegung in die Datengenerierungsphase, da dies ebenfalls ein Ansatz zum Lösen der Probleme bei steigender Dimensionalität ist [RAS98].

2 http://archive.ics.uci.edu/ml/datasets.html, Zugri am 28.03.2013

40

3. Benchmark

3.1.2 Anfragen Im Bereich der Anfragen gestaltet sich ein ähnlich komplexes Bild. In Abschnitt 2.3 auf Seite 10 wurden bereits die wichtigsten Anfragen beschrieben, wobei dort bereits die Problematik der einheitlichen Namensgebung aufgegrien wurde. So wurden beispielsweise von Sellis, Roussopoulos und Faloutsos [SRF87] Segmentanfragen durchgeführt (siehe Tabelle 2.5 auf Seite 17), welche in der Ausdehnung doppelt so groÿ sind wie die Segmente der Datenbasis. Dadurch ist diese Segmentanfrage eine Anfrage mit räumlicher Ausdehnung, obwohl der Name im Bezug zur Datenbasis eher eine Exact-Match-Anfrage suggeriert. Im Folgenden werden die Beschreibungen des Grundlagenkapitels vereinheitlicht und jeweils Berechnungsvorschriften angegeben. Hierbei wird von einer allgemeinen Datenbasis

DB ausgegangen. Datenobjekte können also sowohl als Punktdaten als auch

als räumliche Objekte dargestellt sein. Sollten explizit räumliche Daten beziehungsweise Punktdaten gefordert sein, werden diese entsprechend der im Verzeichnis der mathematischen Symbole aufgeführten Darstellung gekennzeichnet (Seite xv). Wird ein genau deniertes Objekt in der Datenbasis gesucht, wird von einer Ob-

jektanfrage

oa(O)

gesprochen. Wie in Formel 3.1 zu sehen, ist das Ergebnis der

Objektanfrage ein Wahrheitswert, der Auskunft darüber gibt, ob das Ob jekt in der Datenmenge enthalten ist oder nicht.

( oa(O) =

Die Punktanfrage

paR (P )

wahr, O ∈ DB f alsch, O ∈ / DB

(3.1)

wird hier ausschlieÿlich als räumliche Anfrage deniert.

Wie von Gaede und Günther [GG98] beschrieben, muss der Fall, dass ein Punkt innerhalb von Objekten liegen kann, geprüft werden. Die Punktanfrage deniert sich wie folgt, wobei

OR

explizit räumliche Objekte und

PP

ein Punktdatum darstellen.

paR (PP ) = {∀OR |PP ∩ OR = PP };

(3.2)

Der Begri Bereichsanfrage wird als Oberbegri für die im Folgenden denierten Anfragen genutzt, wie es auch von Schmitt [Sch04] und Böhm, Berchtold und Keim [BBK01] gehandhabt wurde. Bereichsanfragen kennzeichnen sich dadurch aus, dass eine Region des Datenraumes deniert wird. Zwei Vertreter der Bereichsanfragen sind die Fensteranfrage

f a(I)

und die

-Distanzanfrage da(O, dist, df ),

die beide zu

den begrenzten Bereichsanfragen zuzuordnen sind. Die Fensteranfrage wird durch Intervalle beschrieben, die jede der

d

d

Dimensionen einschränken. Die Berechnungs-

vorschrift der Fensteranfrage ist in Formel 3.3 angegeben.

f a(I) = {∀P |P ∩ I 6= ∅}; I = [x1 , y1 ] × [x2 , y2 ] × ...[xd , yd ]

(3.3)

Aus dieser Denition ist zu schlussfolgern, dass die Region in jeder Dimension achsenparallel ist. Bei räumlichen Daten werden alle Objekte zurückgegeben, die mit dem Intervall überlappen. Im Falle von Punktdaten sind die Punkte Teil der Ergebnismenge, die im Intervall liegen.

3.1.

Kernkomponenten

Bei der

41

-Distanzanfrage da(O, dist, df ),

ebenfalls eine begrenzte Bereichsanfrage,

wird als Eingabeparameter eine Distanz, ein Punkt und eine Distanzfunktion angegeben.

da(O, dist, df ) = {∀P |df (O, P ) ≤ dist}

(3.4)

Zwar beschreiben Gaede und Günther [GG98] mit dem Intersection Query, Enclosure Query, Containment Query

und dem Adjacency Query

noch weitere

Bereichsanfragen für spezielle räumliche Fälle, allerdings werden diese hier nicht explizit vorgestellt. Die genauen Vorschriften decken sich mit den von Gaede und Günther erläuterten Denitionen. Neben diesen begrenzten Bereichsanfragen gibt es auch Anfragen, bei denen die Region nicht in jeder Dimension deniert ist. So wird aus der Objektanfrage eine

partielle Objektanfrage, wenn nur eine Untermenge der Dimensionen speziziert ist. Dieser Fall existiert zudem auch für die Fensteranfrage. So kennzeichnet sich eine

partielle Fensteranfrage dadurch aus, dass weniger als Partielle

-Distanzanfragen

d

Intervalle deniert sind.

lassen sich mit gewichteten Metriken realisieren, bei de-

nen nicht relevante Dimensionen mit null gewichtet werden. Neben Objekt-, Punkt- und Bereichsanfragen sind auch die verschiedenen NN-

Anfragen zu denieren. Nachfolgend sind die Berechnungsvorschriften für die NN-, kNN-, aNN- und rNN-Anfrage angegeben, welche bereits in Abschnitt 2.3 auf Seite 10 beschrieben wurden.

nn(O, df ) = {P |∀Q : df (P, O) ≤ df (Q, O) ∧ Q 6= O}

(3.5)

knn(O, k, df ) = {P0 ...Pk−1 | 6 ∃Q ∈ DB \ {P0 ...Pk−1 } ∧ 6 ∃i, 0 ≤ i < k : df (Pi , O) > df (Q, O) ∧ Q 6= O}

(3.6)

ann(O, df, ) = {P |∀Q : df (P, O) ≤ (1 + ) · df (Q, O) ∧ Q 6= O}

(3.7)

rnn(O, df ) = {P |O = nn(P, df )}

(3.8)

Da die Ranking-Anfrage nur eine iterative kNN-Anfrage mit wachsendem

k

ist, wird

sie hier nicht genauer beschrieben. Als letzte wichtige Anfrageart ist der Ähnlichkeitsverbund

aev(S1 , S2 , df, dist)

zu

denieren.

aev(S1 , S2 , df, dist) = {{(O, P )}|O ∈ S1 ∧ P ∈ S2 ∧ df (O, P ) ≤ dist}

(3.9)

Die Anfragen, die hier nun im Detail mit Bildungsvorschrift erläutert wurden, sollten von einem Indexstrukturbenchmark unterstützt werden. Besonders hervorheben muss man hier die NN- und kNN-Anfrage als auch die begrenzten Bereichsanfragen, da diese mehrheitlich genutzt wurden. Eine weitere, wünschenswerte Eigenschaft wäre die Angabe der Selektivität bei begrenzten Bereichsanfragen, da diese häug in Evaluationen zu nden ist [WB97b; PM97; Gut84; ZOT04; BBK98b; KS03; BBK98a; BBK+00; CPZ97; BKS+90; BNM03]. Die Selektivität beschreibt den prozentualen Anteil am gesamten Datenraum, der durch die Anfrage ausgefüllt wird. Damit wäre die Selektivität ein guter Indikator, wie das Verhältnis der Eingabemenge zu den angeforderten Daten und zur Ergebnismenge ist.

42

3. Benchmark

3.1.3 Metriken Funktionen, die einen Ähnlichkeitswert zwischen zwei Datenobjekten berechnen, sind ebenfalls als Kernkomponente eines Indexstrukturbenchmarks zu klassizieren. Ein Groÿteil der Indexstrukturverfahren nutzt die euklidische Distanz, explizit erwähnt wurde sie allerdings nur in wenigen Evaluationen [WB97b; AS10; Bri95]. Aus der Minkowski-Familie wurden zudem die Manhattan-Distanz und die ChebychevDistanz genutzt [LJF94; CPZ97]. Brin gri im Rahmen der Evaluation mit Textdaten auf die Editierdistanz zurück [Bri95]. Wie auch schon bei der Beschreibung eines fairen Benchmarkings in der ELKI-

3

Umgebung , kann die unterschiedliche Implementierung von Distanzen in Indexstrukturen zu einem erheblichen Ungenauigkeitsfaktor beim Vergleich werden. Für das Benchmarking ist es also sinnvoll, häug genutzte Distanzmetriken zentral bereitszustellen.

3.1.4 Kenngröÿen Die Praxistauglichkeit eines Benchmarks ist davon abhängig wie gut dieser interpretiert werden kann. Die Bezugsgröÿe muss ein aussagekräftiger Indikator dafür sein, wie performant eine Indexstruktur ist. Hier stellt sich nun die Frage, wie man die Performanz beziehungsweise Eignung einer Indexstruktur auf eine Bezugsgröÿe abbilden kann. Ein ähnliches Bild wie bei den Anfragen ist nämlich auch bei den Kenngröÿen gegeben. In der Literatur sind eine Vielzahl verschiedenster Kenngröÿen zu nden, wobei die Namensgebung nicht einheitlich ist. Basierend auf der Recherche können die Kenngröÿen in drei Klassen eingeordnet werden wie sie in Tabelle Tabelle 3.1 mit Beispielen beschrieben sind.

Kategorie

Beispiele

Rechenaufwand (CPU)

Distanzberechnungen, CPU-Zeit

Kommunikationsaufwand (I/O)

Seiten-, Festplatten-, Knotenzugrie, I/O-Zeit

Weitere Kenngröÿen

Gesamtzeit, Speicherverbrauch, Präzision

Tabelle 3.1: Klassen von Kenngröÿen

Der Rechenaufwand wird in vielen Veröentlichungen in Form der CPU-Zeit angegeben [BBK98b; LK03; CPZ97; BKS96; BKK96], aber auch die reine Angabe der durchgeführten Distanzberechnungen wird angewendet [KS03; AS10; Bri95]. Bezüglich des Kommunikationsaufwandes gestaltet sich ein etwas komplexeres Bild. So ist die Anzahl der durchgeführten Seitenzugrie weit verbreitet [Gut84; ZOT04; BBK98b; KS03; BNM03; YOT+01]. Weiterhin wird auch die Bezeichnung Fest-

plattenzugri häug genutzt [WJ96b; KF94; BKS+90; BKS96]. Bei Baumverfahren

3 http://elki.dbs.i.lmu.de/wiki/Benchmarking, Zugri: 31.03.2013; use the same level of abstraction/modularization (e.g. modular distance functions as opposed to hard-coded euclidean distance)

3.2.

Modell

43

werden zudem eher Knotenzugrie gezählt [PM97; WHL98; LJF94; WSB98] und bei dem VA-File wurden Vektor- beziehungsweise Blockzugrie gemessen [WB97b; WSB98]. Aussagen über den Speicherverbrauch der jeweilgen evaluierten Verfahren nden sich in [Gut84; LJF94; AS10; WJ96b]. Neben dem Speicherverbrauch als Vertreter der dritten Klasse nden sich auch Kenngröÿen wie Suchzeit [WSB98; BEK+98] oder Gesamtzeit [BNM03; YZ12; LK03] in den Evaluationen. Neben den hier im Detail erläuterten Kenngröÿen existieren noch viele weitere Werte wie sie beispielsweise bei Bulkloading-Techniken sinnvoll sind (Einfüge-, Lade-, Bauzeit). Die Klassen spiegeln sehr deutlich die Schwierigkeit bei der Wahl einer Kenngröÿe wieder. Der Grundgedanke bei der Entwicklung von Indexstrukturen war es eine performante Alternative zur sequentiellen Suche bereit zu stellen. Die sequentielle Suche kennzeichnet sich durch niedrigen Rechenaufwand, aber hohen Kommunikationsaufwand aus. Bei Indexstrukturen wird nun versucht den Kommunikationsaufwand zu verringern, indem die notwendigen Zugrie auf die Datenobjekte reduziert werden. Dies wiederum geschieht aber zu Lasten des Rechenaufwands. Bei einer Evaluation muss also sowohl der Rechenenaufwand als auch der Kommuniaktionsaufwand betrachtet werden. Ein Negativbeispiel wurde bereits in Abschnitt 1.2 auf Seite 3 mit

+ -Baumes

der Evaluation des R

verglichen den R- und

angesprochen. Sellis, Roussopoulos und Faloutsos

+ R -Baum

nur auf Basis des Festplattenzugries. Da durch

komplexe Einfüge- und Löschverfahren die Überlappung der MBRs beseitigt wurde, konnte eine erhebliche Reduzierung des I/O-Aufwandes erreicht werden. Aufgrund der komplexen Algorithmen ist beim R

+ -Baum

allerdings ein höherer Rechenauf-

wand zu verzeichnen, was nicht betrachtet wurde [SRF87]. Ein objektiver Benchmark sollte also sowohl den Rechen- als auch den Kommunikationsaufwand berücksichtigen, da ansonsten nur einseitige Ergebnisse generiert werden. Beispiele für solche Kenngröÿen sind zum Beispiel der Durchsatz oder die

Antwortzeit.

3.2

Modell

Der Kern dieser Arbeit ist die Erstellung eines Modells zum Benchmarking von mehrdimensionalen Indexstrukturen. In Abschnitt 2.5 auf Seite 32 wurden bereits Projekte mit ähnlicher Aufgabenstellung beschrieben. Allerdings sind diese entweder nicht direkt für Indexstrukturen ausgelegt (TPC) oder schränken die Nutzung von Indexstrukturen ein (GiST, MESSIF). Durch die folgenden Eigenschaften soll sich das Modell von bisherigen Arbeiten abgrenzen. Diese Eigenschaften werden als notwendig angesehen, damit der Benchmark beziehungsweise das allgemeine Modell überhaupt eine praktische Relevanz hat.



Der Benchmark schlieÿt keine Indexstrukturen aus.



Das Einbinden von Indexstrukturen soll mit minimalen Anpassungsaufwand zu realisieren sein.

44

3. Benchmark



Es exisistiert eine primäre Vergleichsgröÿe (Benchmark).



Evaluationen sollen reproduzierbar sein.

Im folgenden wird das Modell beschrieben, welches die vier Komponenten Daten, Anfragen, Metriken und Kenngröÿen unter Berücksichtigung der genannten Eigenschaften umsetzt.

Daten Bei den Daten wurden reale und synthetische Daten deniert, welche vor der eigentlichen Evaluation bereitzustellen sind. Die zu evaluierenden Indexierungsverfahren müssen natürlich die Datensätze unterstützen. Hierbei sollte der Fokus auf Punktdaten liegen, da diese die am weitesten verbreitete Klasse ist. Weiterhin sollte ein Datenformat genutzt werden, welches bereits in anderen Pro jekten genutzt wird und sich somit bewährt hat. Beispiel für solche Formate sind das ARFF-Format, welches zum Beispiel von WEKA verstanden wird oder das in ELKI genutzte Ein-

4

gabeformat . Letzteres kann dann auch in GnuPlot R-Projekts

6

5

dargestellt oder mithilfe des

interpretiert werden. Durch diese Unterstützung kann dann beispiels-

weise ELKI auch als Datengenerator für die darin implementierten Verteilungen (Uniform-, Normal- und Gammaverteilung) genutzt werden. In Quelltext 3.1 ist ein Ausschnitt eines formatierten Datensatzes dargestellt.

1 2 3 4 5 6 7 8 9 10

 #Gleichverteilung: Dimension=4;Anzahl=10;Min=0;Max=255 145 131 101 106 73 165 108 124 136 127 171 87 147 129 156 51 146 89 177 112 181 110 115 104 131 97 85 104 118 142 153 131 94 145 104 72 





Quelltext 3.1: Format eines Datensatzes

Je Zeile wird ein Datensatz deniert, wobei Zahlen als Daten und Zeichenfolgen zusätzliche Bezeichner darstellen. Kommentare können mit vorangestellter Raute identiziert werden. Eine andere Möglichkeit, Daten basierend auf Verteilungsfunktionen zu generieren, bietet das R-Projekt. Diese Variante wurde bereits mit der multivariat schiefen Normalverteilung in Form des RDataGenerator durchgeführt [DTZ12], wodurch ein weiteres Werkzeug zur Datenegenerierung herangezogen werden kann.

4 http://elki.dbs.i.lmu.de/wiki/InputFormat, Zugri: 02.05.2013 5 http://www.gnuplot.info/, Zugri: 09.05.2013 6 http://www.r-project.org/, Zugri: 02.05.2013

3.2.

Modell

45

Kenngröÿen Für die Komponente Kenngröÿe wurde bereits der Durchsatz und die Antwortzeit als mögliche primäre Kenngröÿen angesprochen. Der TPC-Benchmark nutzt als primäre Vergleichsgröÿe Transaktionen beziehungsweise Anfragen je Zeiteinheit. In ELKI wird mit der Laufzeit für denierte Workloads eine ähnliche Vergleichsmethodik gewählt. Diese Gröÿen sind sowohl vom Rechenaufwand als auch vom Kommunikationsaufwand abhängig und bieten sich deshalb als Benchmark an. Allerdings sind mit der Präzision und dem Speicherverbrauch sekundäre Kenngröÿen zu messen, welche unter Umständen zur Interpretation der primären Kenngröÿen notwendig sind. Beispiele für solche Evaluationen sind die Nutztung von approximierenden Indexstrukturen oder im Falle des Speicherbrauchs der Vergleich mit Indexen mit unverhältnismäÿig hohem Speicheraufwand (AESA).

Metriken Die Metrikkomponente sollte mindestens aus der Minkowskifamilie in Form der Manhattan-, Euklid- und Chebychevdistanz bestehen. Die Schwierigkeit bei dieser Komponente liegt aber in der Bereitstellung dieser Distanzen. Wie bereits in Abschnitt 3.1.3 auf Seite 42 angesprochen, würde eine einheitliche Nutzung von Metriken zur besseren Vergleichbarkeit der Ergebnisse führen. Werden allerdings die Routinen der Metriken vorgegeben, führt das dazu, dass die möglichen Programmiersprachen eingeschränkt werden. Hier ist also abzuwägen, ob die Entwickler der Indexstrukturen diese Alghorithmen selber implementieren oder ob es sinnvoller ist Metriken zentral bereit zu stellen. Aus der Recherche konnten C++ und Java als die am häugsten genutzten Sprachen identiziert werden. Im Fall der Vorgabe der Metriken sollten also Implementierungen der Minkowski-Metriken in Java und C++ realisiert werden, wodurch bereits ein hohes Maÿ an Funktionalität erreicht werden kann.

Anfragen Um Indexstrukturen möglichst objektiv zu vergleichen, ist es zwingend notwendig, dass Anfragetypen zum Einsatz kommen, die zukünftige Anwendungsgebiete weitestgehend abdecken. Neben der einfachen Objektanfrage ist es sinnvoll Indexstrukturen auch bezüglich NN-Anfragen und Bereichsanfragen zu testen. Vetreter wie die kNN-Anfrage und die

-Distanzanfrage

werden zum einen sehr häug genutzt und

unterscheiden sich zudem in ihrer Funktionsweise, wodurch die Indexierungsverfahren umfangreich getestet werden können. Hierbei ist es nicht zwingend erforderlich explizit die kNN-Anfrage oder die

-Distanzanfrage

zu nutzen. rNN-Anfragen

oder Fensteranfragen würden bezüglich der Interpretierbarkeit der Ergebnisse ebenso sinnvoll sein. Bei der Umsetzung dieser Komponente ist ebenso wie bei den Metriken abzuschätzen, inwieweit einheitlicher Code zum Beispiel in Form einer Schnittstelle bereitgestellt werden muss um ob jektive Ergebnisse zu gewährleisten. Bei dieser Variante geht natürlich wiederum die Progammiersprachenunabhängigkeit verloren, da die Implementierung einer Schnittstelle gefordert wird. Eine weitere Möglichkeit der Umsetzung der Anfragen ergibt sich mit der Erläuterung der nächsten Komponente.

46

3. Benchmark

Workloads Die bisherigen Komponenten wurden für einen Indexstrukturbenchmark als notwendig erachtet, da sie wiederholt in den betrachteten Evaluationen auftreten. Die nun im Folgenden beschriebene Komponente begründet sich in der geforderten Eigenschaft reproduzierbare Evaluationen bereitstellen zu wollen. Hierfür ist es notwendig die durchgeführte Evaluation und die berechneteten Ergebnisse (Kenngröÿe(n)) in einer einheitlichen Form darzustellen. Dieses Format sollte sich zum einen dadurch auszeichnen, dass es einfach verteilt werden kann und zum anderen durch eine gut lesbare Form. Durch letztere Eigenschaft kann gewährleistet werden, dass man sich schnell einen Eindruck über den Umfang einer Evaluation und somit über die Interpretierbarkeit der Ergebnisse machen kann. Diese Komponenten wird im Folgenden

Workloads genannt. Vor der Evaluation beschreibt ein Workload den gesammten Umfang der Durchführung. Es werden also alle Datensätze, Metriken, Anfragen, Indexstrukturen und notwendige Kongurationen aufgeführt. Nach der Evaluation werden zusätzlich die berechneten Kenngröÿen in die Workloaddatei aufgenommen. Durch diese Workloadkomponente erönet sich die Möglichkeit den Indexstrukturen den Workload als Parameter zu übergeben, wodurch es nicht mehr notwendig ist, eine Schnittstelle für Anfragen zu denieren. Genauerere Ausführungen zu den hier erwähnten Möglichkeiten werden in Kapitel 4 auf Seite 49 gegeben.

Indexstrukturen Die letzte Komponente eines Indexstrukturbenchmarks sind die Indexstrukturen selber, welche natürlich ebenso Teil des Benchmarks sind. Im Gegensatz zu Projekten wie GiST, bei dem unter diesem Punkt nur die Baumverfahren eingeordnet sind, werden hier keine Einschränkungen gemacht.

Aus der bisherigen Arbeit ist deutlich geworden wie umfangreich die Evaluation von Indexstrukturen ist und es nahezu unmöglich ist alle Optionen in einem Modell festzuhalten. Aus diesem Grund ist das Ergebnis des theoretischen Teils dieser Arbeit ein Modell, welches den minimalen Umfang eines Indexstrukturbenchmarks darstellt. Die in diesem Kapitel beschriebenen Komponenten resultieren in dem in Abbildung 3.2 auf der nächsten Seite dargestellten Modell, indem alle notwendigen Komponenten zur Indexstrukturevaluation beschrieben sind.

3.3

Zusammenfassung

In diesem Kapitel sind die aus Kapitel 2 auf Seite 7 beschriebenen Ausführungen in die Kernkomponenten Daten, Kenngröÿen, Metriken, Anfragen und Indexstrukturen gruppiert worden. Hierzu war es insbesondere bei den Anfragen und Kenngröÿen notwendig, Dierenzen in der Beschreibung und Namensgebung zu lösen. Weiterhin wurde mit dem Workload eine neue Komponente geschaen um eine einheitliche

7 Zur Darstellung wurde das Eclipse-Plugin FeatureIDE genutzt [TKB+12].

3.3.

Zusammenfassung

47

Benchmark

Indexstrukturen

Kenngrößen

Primär

Durchsatz

Antwortzeit

Anfragen

Sekundär

Präzision

Objekt

kNN

Metriken

Distanz

Manhattan

Euklid

Daten

Chebychev

Speicherverbrauch

Punktdaten

Synthetisch

Gleichverteilung

Workloads

Real

Normalverteilung

Cluster

7

Abbildung 3.2: Modell des Indexstrukturbenchmarks

Beschreibung von Evaluationen realisieren zu können. Das Ergebnis dieser theoretischen Erläuterungen ist das in Abbildung 3.2 abgebildete Modell eines Benchmarks für mehrdimensionale Indexstrukturen. Zudem wurden zu Beginn von Abschnitt 3.2 auf Seite 43 Eigenschaften deniert, die bei der Umsetzung des Modells zu beachten sind. Im folgenden Kapitel wird das Modell prototypisch implementiert, wobei neben ebendiesen Eigenschaften auch die in diesem Kapitel bereits erwähnten Schwierigkeiten bezüglich der Umsetzung der Metrik- und Anfragekomponente aufgegrien werden.

48

3. Benchmark

Kapitel 4

Praktische Umsetzung

In Abschnitt 3.2 auf Seite 43 wurden mit dem Modell und den zugehörigen Beschreibungen Richtlinien zur Umsetzung eines Benchmarks für mehrdimensionale Indexstrukturen gegeben. Weiterhin wurden kurz Schwierigkeiten erläutert, in wieweit die Umsetzung einzelner Komponenten den Anpassungsaufwand an den Indexstrukturen bei der Einbindung in ein Benchmarkprojekt beeinussen können, beziehungsweise es sogar dazu führen kann, dass Indexstrukturen nicht umgesetzt werden können. In diesem Kapitel wird eine prototypische Implementation des Modells beschrieben, wobei auf verschiedene Möglichkeiten der Umsetzungen einzelner Komponenten eingegangen wird. Weiterhin wird ein Vergleich zum Projekt QuEval gezogen und abschlieÿend eine Evaluation durchgeführt um die Eignung der Implementation zu überprüfen.

4.1

Implementierung

Aus dem vorgestellten Modell können ganz vereinfacht zwei Routinen abgeleitet werden. Im ersten Schritt müssen Workloads deniert werden, die dann in der sich anschlieÿenden Phase mithilfe der Indexstrukturen umgesetzt werden. Beim Designprozess dieser beiden Routinen sind zwei unterschiedliche Konzepte entstanden, welche sich in der Anbindung der Indexstrukturen unterscheiden.

Blackbox Beim ersten Ansatz, die Indexstruktur als Blackbox anzusehen, liegt der Fokus auf der Erfüllung der Eigenschaft, keine Indexstrukturen auszuschlieÿen. Die Idee ist hier, die Indexstruktur als eigenständiges Programm zu denieren, welches über die Kommandozeile gestartet werden kann. Hierdurch wird Programmiersprachenunabhängigkeit erreicht und zudem ein hoher Grad an Freiheit bei der Umsetzung der Indexierungsverfahren gewährleistet. Der Ablauf dieses Konzeptes ist in Abbildung 4.1 auf der nächsten Seite dargestellt. Im ersten Schritt wird für jede zu evaluierende Indexstruktur ein Workload erstellt um die Indexstrukturen danach sequentiell auszuführen. Die Workloads beinhalten

50

4. Praktische Umsetzung

bei dieser Variante Datensätze, Anfragen und die Parametrisierung der Indexstruktur. Allerdings hat dieser Ansatz gravierende Nachteile, wodurch der Benchmark kaum praktische Relevanz besäÿe. So sind die Ergebnisse, die berechnet werden, kaum objektiv, da diese von den Indexstrukturen selber gemessen werden. Weiterhin muss die Indexstruktur neben der eigentlichen Basisfunktionalität weitere zusätzliche Routinen mitbringen. Zum einen müssen mit der Indexstruktur verschiedene Metriken bereitgestellt werden, welches aufgrund unterschiedlicher Implementationen zwischen den Indexierungsverfahren zu weiterer Ungenauigkeit führen kann. Zum anderen müssen die Indexstrukturen Routinen besitzen um den Workload analysieren zu können. Bei dieser Implementierungsvariante kann zudem nicht gesteuert werden, wie auf die eigentlichen Daten zugegrien wird (Hauptspeicher, Sekundärspeicher). Im Endergebnis würde also viel unterschiedlicher Code mit gleicher Funktionalität erstellt werden, der zu kaum interpretierbaren Ergebnissen führt.

Indexstrukturen evaluieren (Blackbox) [Kein weiterer Index] [Weiterer Index]

Indexbez. & Parameter

Workloads erstellen

Ergebnisse

Index evaluieren

Abbildung 4.1: Aktivitätsdiagramm des Blackbox-Ansatzes

Schnittstelle Um die Nachteile der ersten Variante zu beheben, ist es notwendig, die Messung der primären Vergleichsgröÿe (Durchsatz, Antwortzeit) an zentraler Stelle durchzuführen. Zudem sollte der Code zur Workloadanalyse nicht Teil der Indexstrukturen sein, was impliziert, dass eine zentrale Komponente die Evaluationen steuern muss. Bei dieser Variante wird also im Gegensatz zur Blackbox eine Schnittstelle für Indexstrukturen bereitgestellt. Aufgrund der Notwendigkeit einer Schnittstelle ist die Programmiersprachenunabhängigkeit allerdings nicht mehr gewährleistet. Wie dieses Problem gelöst wird, kann dem in Abbildung 4.2 auf der nächsten Seite dargestellten Aufbau entnommen werden. Die Idee ist es, für jede Programmiersprache einen sogenannten Scheduler bereit zu stellen, welcher den Workload einliest und basierend auf diesem Indexstrukturen instanziiert und die Evaluation entsprechend durchführt. Der Vorteil hierbei ist, dass mit dem Scheduler Metriken zentral bereit gestellt werden können. Der Scheduler übernimmt zudem die Messung der Vergleichsgröÿen. Der Unterschied bei der Workloaddenition im Gegensatz zum ersten Ansatz besteht darin, dass ein Workload mehrere Indexstrukturen beinhalten kann, da ein Workload Scheduler spezisch ist und dieser mehrere Indexstrukturen unterstützen kann. Bei dieser zweiten Variante liegt der Fokus also in der Generierung von objektiven Ergebnissen, wodurch es allerdings notwendig wird, das Indexstrukturen eine Schnittstelle implementieren und zudem weitere Abhängigkeiten wie zentrale Distanzmetriken existieren.

4.1.

Implementierung

51

Indexstrukturen evaluieren (Schnittstelle)

[Keine weiterere Programmiersprache] [Weiterere Programmiersprache]

Indexbez. & Parameter

Workloads erstellen

Ergebnisse

Scheduler starten

Scheduler starten

Workload laden

Index instanziieren

Index evaluieren Kenngrößen messen

[Weiterer Index] [Kein Weiterer Index]

Abbildung 4.2: Aktivitätsdiagramm des Schnittstellen-Ansatzes

Der Schnittstellenansatz ist prototypisch für die Programmiersprache Java umgesetzt worden. Die Wahl der zweiten Variante ist mit der Wichtigkeit von objektiven Ergebnissen zu begründen. Zudem wird der Aufwand bei der Entwicklung einer Indexstruktur für den ersten Ansatz höher eingeschätzt als für die zweite Variante, da im Gegensatz zur Schnittstellenunterstützung und der Nutzung weiterer Pakete wie Metriken bei der Blackbox-Variante die Workloadanalyse und Metriken selber umgesetzt werden müssen. Im Folgenden wird die Implementation beschrieben, wobei hier zuerst auf die Klassen eingegangen wird, die notwendig sind um eine Indexstruktur anbinden zu können. Danach werden die Workloadimplementation und der Scheduler beschrieben. Abschlieÿend wird mit dem WorkloadCongurator ein Beispiel gegeben, wie Workloads mithilfe einer graschen Benutzeroberäche generiert werden können. Der gesamte Aufbau ist in Form eines Komponentendiagramms in Abbildung 4.3 auf der nächsten Seite grasch dargestellt.

4.1.1 Indexstrukturanbindung Um Indexstrukturen nutzen zu können, müssen diese eine Schnittstelle implementieren, mit der es den Schedulern dann möglich ist, die Indexstrukturen zu instanziieren und notwendige Methoden aufzurufen. Die Schnittstelle ist hier in Form einer abstrakten Klasse implementiert, da zur Instanziierung ein einheitlicher Konstruktor gegeben sein muss. Die Klasse ist in Quelltext 4.1 auf der nächsten Seite abgebildet. Einer Indexstrukturinstanz werden eine Kongurationsdatei übergeben, welche Indexstruktur spezische Parameter und eine Ausprägung einer Distanzmetrik beinhaltet. Die Übergabe der Metrik mithilfe des Konstruktor ist sinnvoll, da bei Än-

52

4. Praktische Umsetzung

Metriken

Indexe

Scheduler Workload

Metric

Benchmark

Index

WorkloadConfigurator Abbildung 4.3: Komponentendiagramm des Benchmarking-Pro jektes

derung der Metrik die entsprechende Indexstruktur eventuell komplett neu erstellt werden muss. Die Schnittstelle fordert zudem Methoden um Datenobjekte einzufügen, zu löschen und Routinen zur Durchführung der verschiedenen Anfragearten. Weiterhin wird in Quelltext 4.1 deutlich, dass als Datentyp Punktdaten in Form von double-Feldern umgesetzt werden. Der double-Datentyp wird hier genutzt um den gröÿtmöglichen Wertebereich abzudecken.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

 public abstract class Indexstructure {



protected Properties config; protected DistanceMetric metric; public Indexstructure(Properties config, DistanceMetric metric) throws IndexPropertyException { this.config = config; this.metric = metric; DistanceMetric.setInstance(metric); } public public public public public } 

abstract abstract abstract abstract abstract

boolean insert(double[] dataset); boolean delete(double[] dataset); boolean search(double[] datasetToSearch); double[][] searchKNN(double[] dataItem, int k); double[][] searchRange(double[] dataItem, double range); 

Quelltext 4.1: Schnittstelle der Indexstrukturen

Neben dieser Schnittstelle sind in dem Pro jekt zur Schnittstellenanbindung, welches in der Java-Variante JBenchmark genannt wurde, natürlich auch Distanzmetriken eingegliedert, da die Indexstrukturschnittstelle von Diesen abhängig ist. Weiterhin ist mit der Klasse Diskaccess die Funktionalität bereitgestellt, Zugrie auf sekundäre Speichermedien simulieren zu können. Im Falle von Hauptspeicherindexen ist die Nutzung dieser Klasse natürlich nicht notwendig. Indexstrukturen, die auf Sekundärspeicher zugreifen, sollten zum Zugri allerdings auf die Diskaccess-Methoden

4.1.

Implementierung

53

zurückgreifen. Diese Bedingung ist notwendig um vergleichbare Ergebnisse bei der Indexstrukturevaluation erhalten zu können. Mit der Diskaccess-Klasse wird eine Beispielimplementierung bereitgestellt. Zusammenfassend können folgende Abhängigkeiten und Richtlinien angegeben werden, die bei der Anbindung von Indexstrukturen zu beachten sind.



Implementierung der Indexstrukturschnittstelle



Nutzung der Distanzmetrik, soweit möglich



Parametrisierung der Indexstruktur mithilfe der Properties-Datei



Simulation von Zugrien auf Sekundärspeicher (zum Beispiel mithilfe der DiskaccessKlasse)

4.1.2 Workloads Als Auszeichnungssprache für die Workloads wurde XML gewählt, da es mit XML möglich ist, komplexe Abläufe in menschenlesbarer Form zu denieren. Mit der Denition eines XML-Schemadenition (XSD) kann eine umfangreiche und dennoch strikte Workloadbeschreibung realisiert werden. Der Nachteil des Overheads bei der Gröÿe einer XML-Datei im Vergleich zu zum Beispiel JavaScript Object Notation (JSON) kann bei dieser Aufgabenstellung vernachlässigt werden. Eine Workloaddatei muss alle notwendigen Daten für den Scheduler bereitstellen, damit dieser die Evaluation durchführen kann. Diese Anforderungen an die Workloaddenition sind im Folgenden aufgelistet.



Eine beliebige Menge von Datensätzen (Minimum ein Datensatz)



Eine beliebige Menge von Indexstrukturen (Minimum ein Index)



Eine beliebige Menge von Anfragen (Minimum eine Anfrage)



Eine beliebige Menge von Metriken (Minimum eine Metrik)



Angabe von Iterationen (Wiederholungen des Workloads)



Ergebnisse, die vom Scheduler berechnet wurden.

Die XML-Beschreibung muss jede Möglichkeit, die sich aus den ersten vier Anforderungen ergibt, unterstüzten, da der Fokus bei Indexstrukturevaluationen je nach Anwender variieren kann. Beispielsweise führen Fragestellungen wie Welche Indexstruktur funktioniert am besten mit gleichverteilten Daten? oder Wie beeinussen Distanzmetriken meine neu entwickelte Indexstruktur? zu sehr unterschiedlichen Workloaddenitionen. Um diese Variabilität zu gewährleisten, wird der Workload in Testläufe, den Runs, untergliedert. Ein Testlauf ist durch das Quartett Datensatz, Indexstruktur, Anfragen und Metrik deniert. Bei der ersten Fragestellung würde man nun über mehrere Testläufe nur die Indexstrukturkomponente verändern, wohingegen bei der zweiten Fragestellung nur die Metrik variiert wird. Die Resultate

54

4. Praktische Umsetzung

werden dann vom Scheduler zu den jeweiligen Runs hinzugefügt. Die Forderung, den Workload beliebig wiederholen zu können, wird durch das Attribut Iteration, welches workloadspezisch ist, umgesetzt. Die komplette XSD kann dem Quelltext 6.4 auf Seite 77 entnommen werden, eine konkrete Ausprägung dieses Schemas ist in Quelltext 4.2 dargestellt. Zur Umsetzung der Workloadkomponente kam die  Java Architecture for XML Binding (JAXB) zum Einsatz, eine Programmierschnittstelle, mithilfe derer sowohl Java-Ob jekte aus einer XML-Datei generiert werden können als auch XML-Dateien basierend auf Java-Objekten erstellt werden können. Beispielsweise ist das bereits erwähnte Workload-Schema auf Seite 77 mithilfe des Befehls schemagen basierend auf den implementierten Java-Workloadklassen automatisch erstellt worden.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42



C:\datasets\20_1000_0_255.txt 0 255 1000 5 index.structures.Pyramidentechnik 3 metrics.MinkowskiMetric 2 67 93 175 184 68 237 22 229 254 31 164 172 232 26 255 87 1 204 87 125 218 46 3 36 91 1.2E−10 1.0 72 231 51 47 228 243 71 108 138 86 244 182 4 219 168 3.1E−5 1.0 2.5E−5 138037264







Quelltext 4.2: Beispiel einer Workloaddatei

Der Workloadknoten (Quelltext 4.2, Zeile 2) besteht also aus mehreren Testläufen und besitzt zudem das Attribut Iteration, welches die Wiederholungen des gesamten Workloads angibt. Zudem kann optional die Programmiersprache (Attribut lang ) angegeben werden, da ein Workload Programmiersprachen spezisch ist. Weiterhin

4.1.

Implementierung

55

ist die Gesamtzeit (Zeile 41) ein direkter Kindknoten des Workloads. Diese Zeit ist optional, da sie erst in der Ergebnisvariante relevant ist. Ein einzelner Testlauf, wie er in Quelltext 4.2 auf der vorherigen Seite ab Zeile 3 zu sehen ist, besteht mindestens aus den Knoten für Daten, Anfrage, Metrik und Indexstruktur. Der Datensatzknoten (Zeile 4) kann neben dem Pfad zur Datei weitere Datensatz spezische Parameter wie Datensatzgröÿe oder Dimension besitzen. Die Indexstruktur (Zeile 11) kennzeichnet sich durch ein Feld für den Name (Klassennamen) und weiterhin durch Indexstruktur spezische Parameter aus. Bei der ab Zeile 15 dargestellten Metrik wird ebenso vorgegangen, da auch hier neben der eigentlichen Namenskennung spezische Parameter für die Metrik angegeben werden. Jeder Durchlauf besitzt genau einen Datensatz, eine Metrik und eine Indexstruktur. Die Denition der Anfragen ist allerdings komplexer, da ein Durchlauf mehrere Anfragen unterstützen muss und zudem Anfragearten mehrfach und in beliebiger Reihenfolge auftreten sollen. Nur dadurch können alle möglichen Anfragepläne unterstützt werden. Ein Durchlauf besitzt also mehrere Anfragen wie in Quelltext 4.2 auf der vorherigen Seite ab Zeile 19 sichtbar ist. Im XML-Schema resultiert diese Variabilität in der Nutzung des choice-Elements für alle drei unterstützten Anfragearten (Quelltext 6.4 auf Seite 77, Zeile 20). Ein Anfrageknoten beschreibt hierbei allerdings nicht nur eine einzelne Anfrage, sondern einen Block von Anfrageobjekten mit den gleichen Parametern. Der erste Anfrageblock in Quelltext 4.2 auf der vorherigen Seite umfasst beispielsweise fünf knn-Anfragen, wobei jeder dieser Anfragen mit

k =3

parametrisiert ist (Zeile 19). Jeder Anfrageblock besitzt zudem die op-

tionalen Ergebnisparameter Zeit, Durchsatz und Präzision (Zeile 25 - Zeile 27). Der Durchlauf besitzt ebenfalls optionale Ergebnisknoten. Neben dem Durchsatz und der Zeit kann hier auch der Speicherverbrauch der Indexstruktur angegeben werden (Zeile 37 - Zeile 39). Bei den Ergebnisknoten für Durchsatz und Zeit ist zudem als Attribut die Angabe des Zeitintervalls notwendig um eine eindeutige Interpretierbarkeit der Ergebnisse zu gewährleisten. Die Java-Klassen der Workloadumsetzung sind in das JBenchmark-Pro jekt integriert worden, welches bereits in Abschnitt 4.1.1 auf Seite 51 erwähnt wurde.

4.1.3 Scheduler Aufbauend auf dem JBenchmark-Pro jekt, in dem die Indexstrukturanbindung, die Metriken und die Schemadenition des Workloads zusammengefasst sind, wird der Scheduler als eigenes Projekt deniert. Folgende Routinen müssen im Scheduler umgesetzt werden.



Einlesen des Workloads



Durchführen der einzelnen Testläufe



Instanziierung der entsprechenden Indexstruktur mit Konguration und Metrik

 

Einfügen der Datenobjekte Anfragedurchführung und Messen der Kenngröÿen

56

4. Praktische Umsetzung

 •

Eventuelles Wiederholen der Durchläufe (Iterationsattribut)

Zurückschreiben des Workloads mit Ergebnissen

Mithilfe von JAXB wird im ersten Schritt die Workloaddatei vom Scheduler eingelesen und auf die entsprechenden Java-Klassen, die im JBenchmark-Projekt erstellt wurden, abgebildet. Das daraus resultierende Workloadobjekt kann nun von den folgenden Routinen genutzt und verändert werden. Die Testlaufknoten werden sequentiell abgearbeitet, wobei jeder Testlauf so oft wiederholt wird, wie es im Iterationsattribut speziziert ist. Bei jedem Testlauf wird eine Indexstruktur mit der entsprechenden Konguration und Metrik instanziiert. Die Metrik kann selber ebenfalls durch eine Kongurationsdatei parametrisiert werden. Der Scheduler übernimmt die Umwandlung der spezischen Eigenschaften des Indexes und der Metrik, die in der XML-Datei angegeben sind, in eine Java-Properties-Datei. Zu der Indexkonguration fügt der Scheduler zudem die Eigenschaften des Datensatzes hinzu. So sind in der Indexstruktur Informationen wie Datensatzgröÿe und Dimension abrufbar. Nachdem die Indexstruktur erstellt worden ist, wird diese mit den Daten befüllt um daran anschlieÿend die Anfragen durchführen zu können. Während der Anfragenabarbeitung werden die Kenngröÿen gemessen und an entsprechender Stelle ins Workloadobjekt eingefügt. Die Berechnung der Ergebnisse wird nun im Detail beschrieben um die korrekte Interpretation dieser sicher zu stellen. Jeder Durchsatz- als auch Antwortzeitwert bezieht sich auf eine einzelne Anfrage. Für jede Anfrage eines Blocks wird die Antwortzeit gemessen und über diese das arithmetische Mittel gebildet. Dieses wird als Ergebnis in das Workloadobjekt zum entsprechenden Anfrageblock hinzugefügt. Basierend auf dieser gemittelten Antwortzeit wird dann der Durchsatz berechnet. Die Angabe beider Kenngröÿen ist somit zwar redundant, da es sich aber um eine prototypische Umsetzung handelt, werden beide Gröÿen angegeben um die verschiedenen Möglichkeiten aufzuzeigen. Die Berechnung der primären Kenngröÿen für einen gesamten Durchlauf gestaltet sich komplexer, da mehrere Anfrageblöcke mit unterschiedlicher Anfrageanzahl und Anfrageart existieren können. Die einzelnen Ergebnisse der Blöcke werden gewichtet und aufaddiert. Die Gewichtung ist der prozentuale Anteil der Anfrageblockgröÿe an der gesamten Anfrageanzahl des Testlaufes. Die Berechnungsvorschrift für den Durchsatz und für die Antwortzeit eines Testlaufes sind in Formel 4.2 und Formel 4.3 gegeben.

anzAnf ragen =

n X

blockGroessei

(4.1)

i=0

ergZeit =

n X blockGroessei i=0

anzAnf ragen

∗ blockZeiti

anzAnf ragen ergDS = ergZeit

(4.2)

(4.3)

Durch diese Angabe der primären Kenngröÿe je Durchlauf ist es möglich Indexstrukturen basierend auf komplexen Anfrageplänen zu vergleichen. Ist man beispielsweise auf der Suche nach dem besten Indexstrukturverfahren, wenn 25% der Anfragen Objektanfragen, 20% 3-NN-Anfragen und 55% 10-NN-Anfragen sind, kann dies durch die Denition der folgenden drei Anfrageblöcke realisiert werden.

4.1.

Implementierung



250 Ob jektanfragen



200 3-NN-Anfragen



550 10-NN-Anfragen

57

Die Indexstruktur, die für diesen Durchlauf die kleinste Antwortzeit zurückliefert, führt die Suchanfragen im Mittel am Schnellsten aus. Da die Kenngröÿen zudem je Block angegeben werden, kann hier eine genaue Analyse auch nach einzelnen Anfragekongurationen durchgeführt werden. Neben den primären Kenngröÿen sind zur Interpretation aber auch Speicherverbrauch und bei der Evaluation von approximierenden Indexen die Präzision relevant. Der Speicherverbrauch der Indexe wird nach dem Ausführen aller Anfragen mit der MemoryMeter-Klasse des jamm-Pro jektes

1

gemessen und zum entsprechen-

den Durchlauf hinzugefügt. Die Präzision wird je Anfrageblock angegeben und ist als arithmetisches Mittel über die einzelnen Anfragen eines Blocks deniert. Da die einzelnen Durchläufe beliebig wiederholt werden können (Iterationen), werden die Resultate in diesem Fall entsprechend über alle Iterationen gemittelt. Abschlieÿend wird das Workload-Ob jekt, welches nun um die Ergebnisse erweitert wurde, mithilfe der JAXB.marshal()-Methode in ein XML-Dokument umgewandelt und abgespeichert.

4.1.4 WorkloadCongurator Als letzte Komponente ist das WorkloadCongurator -Projekt umgesetzt worden, um Workloads über eine grasche Benutzeroberäche erstellen zu können. Zwar ist diese Komponente zur XML-Generierung in Java implementiert, sie kann aber ebenso in beliebig anderer Form umgesetzt werden. Die Komponente muss lediglich das denierte XML-Schema beachten und zudem über Informationen zu den möglichen Programmiersprachen, Indexstrukturen und Metriken verfügen. Im Falle des WorkloadCongurators sind die Zugrispfade zu den entsprechenden Informationen mittels Properties-Datei zu übergeben, welche in Quelltext 4.3 dargestellt ist.

1 2 3 4 5 6 7

 #list of the progamming languages (comma seperated), no duplicates lang=java #path to java metrics & indexes java.metric=./java/metricpool/ java.metric.pool=./java/metricpool/_metric_pool.properties java.index=java/indexpool/ java.index.pool=./java/indexpool/_index_pool.properties 





Quelltext 4.3: Konguration des WorkloadCongurators

In der Pool-Datei der Indexe beziehungsweise der Metriken bendet sich eine Auistung aller Namenskennungen (Quelltext 4.3, Zeile 5 & 7). Unter den mit  java.metric (Zeile 4) beziehungsweise  java.index (Zeile 4) spezizierten Pfaden

1 https://github.com/jbellis/jamm, Zugri: 29.04.2013

58

4. Praktische Umsetzung

nden sich die eigentlichen Klassen und ihre ihre Properties-Dateien mit DefaultWerten. Diese Klassen sind im Komponentendiagramm (Abbildung 4.3 auf Seite 52) als Klassenartifakte dargestellt. Mit diesen Informationen ist es nun möglich, Workloads zu generieren. Die grasche Oberäche ist in drei Tabs zur Datensatz-, Anfrage- und Indexparametrisierung eingeteilt. Datensätze werden mithilfe eines Dateiauswahldialogs bestimmt. Je Datei müssen dann die zugehörigen Datensatz spezischen Eigenschaften Gröÿe, Dimension, Wertebereichsgrenzen (min, max) angegeben werden. Da Datensätze einem bestimmten Format, wie in Abschnitt 3.2 auf Seite 43 bereits beschrieben, unterliegen, wäre es natürlich auch möglich das Programm so zu erweitern, dass Datensatzgröÿe und Dimension automatisch ausgelesen werden. Neben der Angabe von bereits erstellten Daten, bietet der WorkloadCongurator auch die Möglichkeit an gleichverteilte Daten zu generieren. Bei der Anfragegenerierung können die drei Anfragearten

-Distanzanfrage,

Objek-

tanfrage und kNN-Anfrage deniert werden. Je Anfrage kann zudem speziziert werden, ob die Anfrageobjekte aus der Datensatzdatei entnommen werden sollen oder ob sie basierend auf den Datensatzeigenschaften zufallsgeneriert werden. Tab drei dient der Indexstrukturparametrisierung und ist in Abbildung 4.4 auf der nächsten Seite abgebildet. Hier sind die Programmiersprachen, Indexstrukturen und Metriken, die beim Start konguriert wurden, in die entsprechenden DropDownElemente eingefügt. Wird ein Paar aus Index und Metrik zum Workload hinzugefügt, werden die zugehörigen Standardkongurationen geladen, sollten sie vorhanden sein. Diese können dann natürlich in den jeweiligen Textfeldern angepasst werden. Nachdem alle drei Tabs konguriert sind, kann der Workload als XML über das Menü gespeichert werden.

4.2

QuEval

Nachdem sowohl der theoretische Anteil mit der Modellbeschreibung als auch der praktische Teil mit der prototypischen Implementation der verschiedenen Teilprojekte abgeschlossen ist, soll nun ein Vergleich zum QuEval-Projekt

2

gezogen werden.

QuEval ist ein Framework zum Evaluieren von mehrdimensionalen Indexstrukturen, welches an der Otto-von-Guericke-Universität entwickelt wird. Das hauptsächlich in Java implementierte Projekt umfasst verschiedene Indexierungsverfahren und Metriken und kann sowohl grasch als auch automatisiert gesteuert werden. Es bietet Datengeneratoren für gleichverteilte und geclusterte Daten, arbeitet allerdings ausschlieÿlich auf ganzzahligen Punktdaten (Integer-Felder) und verwendet Präzision, Speicherverbrauch, Einfügezeit, Anfragezeit und Anzahl der Festplattenzugrie als Kenngröÿen. Über eine Schnittstelle können weitere Indexstrukturen für das Framework implementiert werden.

Der initiale Ansatzpunkt dieser Arbeit war das Erstellen eines allgemeinen Benchmarkmodells und die Anwendung auf das QuEval-Framework. Mit Fortschreiten

2 http://wwwiti.cs.uni-magdeburg.de/iti_db/research/iJudge/index_en.php, Zugri: 09.05.2013

4.2.

QuEval

59

Abbildung 4.4: Grasche Parametrisierung von Indexen mithilfe des WorkloadCongurators

der Modelldenition kristallisierte sich aber heraus, dass es sinnvoller ist, das Modell prototypisch in einem neuen Pro jekt umzusetzen, statt QuEval anzupassen. Im Folgenden wird evaluiert, wie das Benchmarkmodell zu QuEval in Bezug gesetzt werden kann. Hier wird auch auf den notwendigen Anpassungsaufwand eingegangen. Im zweiten Schritt werden die in diese Kapitel beschriebene Implementation und das QuEval-Framework verglichen.

Das Benchmarkmodell besteht aus den sechs Komponenten Index, Daten, Anfragen, Metriken, Kenngröÿen und Workloads. Zudem gehören zu dem Benchmarkmodell die am Anfang des Abschnitt 3.2 auf Seite 43 beschriebenen Eigenschaften dazu. QuEval unterstützt reale und synthetische Punktdaten und liefert sogar Generatoren für gleichverteilte und geclusterte Daten mit, wobei man wie bereits erwähnt auf den Integer-Bereich von Java beschränkt ist. Die in dem Featuremodell auf Seite 47 geforderten Metriken werden sowohl in Java als auch in C++ bereitgestellt. An

Anfragearten wird die Ob jektanfrage und die kNN-Anfrage unterstützt, wohingegen eine Bereichsanfrage nicht vorgesehen ist. Die Kenngröÿen wurden bereits im vorherigen Absatz erwähnt. Es wird bei QuEval nicht explizit zwischen primären und sekundären Messgröÿen unterschieden, mit der Antwortzeit, der Präzision und dem Speicherverbrauch unterstützt das Framework aber alle notwendigen Kenngröÿen. Die Antwortzeit muss aber noch aufbereitet werden, da diese je Anfragetyp und Iteration angegeben wird. Die Komponente Workload wird in QuEval mit der Automatisierungsfunktionalität ebenfalls umgesetzt, da komplexe Evaluationspläne mithilfe von CSV-Dateien beschrieben werden und vom Framework automatisiert abgearbeitet werden können. Die Indexkomponente

ist in QuEval in Form einer

60

4. Praktische Umsetzung

Schnittstelle realisiert, wobei die Klassendateien selber dann ähnlich einem PluginKonzept in einem spezizierten Ordner abzulegen sind. Es wird also deutlich, dass das Framework prinzipiell einen Groÿteil des Modells bereits umsetzt. Mit der Antwortzeit und der Automatisierung werden zudem auch zwei der geforderten Eigenschaften umgesetzt (Primäre Vergleichsgröÿe, reproduzierbare Evaluationen), wenn auch bei der Vergleichsgröÿe eine Nachbearbeitung notwendig ist um aus den Ergebnissen eine primäre Kenngröÿe zu erhalten. Was QuEval allerdings nicht erfüllt, ist die Anforderung den Anpassungsaufwand beim Einbinden der Indexierungsverfahren minimal zu halten. QuEval unterstützt gegenwärtig Java und C++-Indexe, wobei Letztere mithilfe des Java Native Interface (JNI) angebunden werden. Die Nutzung weiterer Programmiersprachen wie beispielsweise C# ist nicht vorgesehen. Die Indexstrukturschnittstelle ist zudem verhältnismäÿig komplex, da zum Beispiel grasche Elemente zu implementieren sind, damit die Indexstruktur in der GUI parametrisiert werden kann. Weiterhin wird eine Routine zum Festplattenzugri vorgeschrieben. Das fördert natürlich die Vergleichbarkeit der Ergebnisse, schränkt die Programmierung von Indexstrukturen aber weiter ein. Durch die zwingende Nutzung einer Routine zum Zugri auf Sekundärspeicher, werden zudem Hauptspeicherindexe ausgeschlossen. Bei C++-Indexen gestaltet sich ein noch komplexeres Bild, da neben den eigentlichen C++-Klassen auch Wrapper-Objekte in Java geschrieben werden müssen. Zudem kommen die JNI-spezischen Nachteile wie aufwändigeres Debuggen zum Tragen. Hier müsste der Code der Schnittstelle also vereinfacht werden, was allerdings die komplette Arbeitsweise von QuEval verändern würde. Ähnlich schwierig wäre es eine Alternative für JNI zu nden.

Mit der erfolgten Beschreibung von QuEval im Bezug zum Modell soll nun ein Vergleich zum praktischen Teil dieser Arbeit gezogen werden. Generell muss festgehalten werden, dass QuEval wesentlich komplexer ist, was hauptsächlich in dem gröÿeren Funktionsumfang begründet liegt. Da die Umsetzung des Modells in Java realisiert wurde, konnten einige Programmierdetails aus QuEval genutzt werden und mit Anpassungen in das neue Pro jekt einieÿen. So konnten sowohl die in Java implementierten Metriken als auch Indexe gröÿtenteils übernommen werden. An dieser Stelle konnte der Code aufgrund einer vereinfachten Schnittstelle reduziert werden. Weiterhin mussten die Klassen an den neuen reellen Datentyp angepasst werden. Zudem konnte der Datengenerator für gleichverteilte Daten in den WorkloadCongurator einieÿen. Eine abschlieÿende Übersicht über den Funktionsumfang beider Projekte ist in Tabelle 4.1 auf der nächsten Seite dargestellt.

4.3

Evaluation

In diesem Abschnitt wird die Überprüfung der Modellimplementation beschrieben. Hierbei ist zuerst ein Workload zu generieren, was im folgenden Abschnitt erläutert wird. An die daran anschlieÿende Durchführung der Evaluation folgt die Auswertung der Ergebnisse.

4.3.

Evaluation

61

Kategorie

QuEval

Modellumsetzung

Daten

Ganzahlige Punktdaten (Integer)

Reelle Punktdaten (Double)

Anfragen

Objekt-, kNN-Anfrage

Objekt-, kNN-Anfrage,

-Distanzanfrage Kenngröÿen

Indexe

Antwortzeit, Festplattenzugri,

Antwortzeit/Durchsatz,

Präzision, Speicherverbrauch

Präzision, Speicherverbauch

Verschiedene Metriken für Java

Seq. Suche, Pyramiden-

und C++

technik, Prototyp, VA-File,

*

LSH, KD-Baum, R -Baum Metriken

Workload

Weiteres

Verschiedene Metriken für Java,

Identische Java-

zusätzlich Minkowski in C++

Metriken

CSV-Datei mit Daten, Anfragen

XML-Datei,

werden zur Laufzeit generiert

Anfrageobjekte vorgeneriert

Datengeneratoren, eMail-

-

benachrichtigung

Tabelle 4.1: Vergleich des QuEval-Frameworks mit der Umsetzung des Benchmarkmodells

4.3.1 Workloaddenition Die gröÿte Schwierigkeit bei dieser generischen Evaluation liegt in der Workloadbeschreibung. Anstatt auf einen konkreten Anwendungsfall als Grundlage zurück greifen zu können, wäre hier ein Workload ratsam, der möglichst viele Anwendungsfälle abdeckt, also möglichst allgemeingültig ist. Was einen solchen Workload aber ausmacht, ist wesentlich umfangreicher als das es an dieser Stelle erarbeitet werden kann. So wären beispielsweise folgende Fragestellungen zu beantworten.



Welche Datentypen und -verteilungen sind in Anwendungen mit mehrdimensionalen Daten vorherrschend?



Wie sieht das Anfrageverhalten in solchen Umgebungen aus (Anfragearten, -anteile, -parameter)?



Welche Metriken sind in der Praxis relevant?



Sind basierend auf diesen Fragen Indexstrukturen auszuschlieÿen?

Bei der Recherche zur Beantwortung dieser Fragen kann eine klare Abgrenzung zur hier vorliegenden Arbeit getroen werden. Bei dieser Arbeit standen Indexstrukturevaluationen in der Wissenschaft im Fokus, wohingegen die Denition eines allgemeingültigen Workloads mithilfe statistischer Auswertungen der praktischen Nutzung von Indexen zu realisieren ist. Hier sollten theoretisch natürlich Gemeinsamkeiten zu nden sein.

62

4. Praktische Umsetzung

Der Umfang der im Folgenden beschriebenen Evaluation ist durch den Funktionsumfang der Implementation bestimmt, was die Denition eines allgemeingültigen Workloads entsprechend weiter erschwert. Beispielsweise kann bei den Anfragearten die

-Distanzanfrage ausgeschlossen werden, da diese nur bei der sequentiellen Suche

und dessen parallelen Varianten umgesetzt ist. Auch mit diesen Einschränkungen ist ein Workload, der alle möglichen Komponenten berücksichtigt, sehr umfangreich. So können neben den Daten, Anfragepläne, Metriken und Indexstrukturen variiert werden. Jede dieser Komponenten kann zudem weiter konguriert werden, wodurch ein umfassender Workload dementsprechend komplex wird. Da das Ziel dieser Arbeit die Erstellung eines Benchmarkmodells ist und nicht ein umfassender wissenschaftlicher Vergleich von Indexstrukturen, wird in der folgenden Evaluation auf die Variation von Indexstruktur spezischen Parametern verzichtet. Stattdessen liegt der Fokus hier auf der Darstellung der Art und Weise der Durchführung einer Evaluation, welche auf dem Benchmarkmodell basiert.

Parametrisierung Zur Evaluation werden drei Datenverteilungen genutzt, die aus unterschiedlichen Quellen stammen. Mit dem RDataGenerator

werden drei uniforme Datensätze

mit 130.000 Objekten und den Dimensionen 10, 25 und 50 generiert [DTZ12]. Die Kongurationsdatei zum 50-dimensionalen Datensatz ist in Quelltext 4.4 dargestellt. Neben der Datenverteilung (Zeile 3), der Dimension (Zeile 4) und der Datensatzgröÿe (Zeile 6) wurde zudem der Wertebereich auf

[0, 1]

beschränkt (Zeile 5 & 8).

Bei den übrigen zwei uniformen Datensätzen wurde nur der Dimensionsparameter entsprechend auf 10 und 25 geändert.

1 2 3 4 5 6 7 8 9

 # #Tue May 07 21:23:17 CEST 2013 PROPERTIES_DISTRIBUTION=UniformDistribution PROPERTIES_DIMENSION=50 PROPERTIES_MAX=1 PROPERTIES_ROWCOUNT=130000 PROPERTIES_SEED=3141 PROPERTIES_MIN=0 PROPERTIES_REALVALUES=true 





Quelltext 4.4: Konguration des uniformen Datensatzes

Zum Erstellen der zweiten Datensatzgruppe wird der Generator des ELKI-Frameworks genutzt. Zur Parametrisierung dieses Generators wird die in Quelltext 6.3 auf Seite 76 aufgeführte Konguration verwendet, die lediglich auf 10, 25 und 50 Dimensionen erweitert wird. Zudem wurden die Gröÿen für den ersten Cluster auf 10.000, für den zweiten Cluster auf 40.000 und für den dritten Cluster auf 80.000 erhöht. Mit der Wahl eines Datensatzes aus dem Archiv des maschinellen Lernens der University of California, Irvine ist als letzte Datengrundlage ein realer Datensatz gewählt worden. Hierbei handelt es sich um einen 50-dimensionalen Datensatz mit

3

130.064 Objekten . Wie auch bei den uniformen und geclusterten Daten wurde die

3 http://archive.ics.uci.edu/ml/datasets/MiniBooNE+particle+identication, Zugri: 08.05.2013

4.3.

Evaluation

63

Dimension sowohl mit 10 und 25 als auch mit den originalen 50 Dimensionen deniert. Hierfür wurden entsprechend die 10 und 25 ersten Dimensionen extrahiert. Bei den Metriken wird auf eine Variation verzichtet und stattdessen die euklidische Distanz als einziger Vertreter gewählt. Weitere Metriken werden nicht betrachtet, da dies im Bezug zur Aufgabenstellung wenig sinnvoll erscheint. Der Anfrageplan besteht aus den zwei unterstützen Anfragearten Ob jektanfrage und kNN-Anfrage und umfasst insgesamt 1000 Anfragen. Der Anteil beider Anfragearten ist mit 50% identisch, wobei bei der kNN-Anfrage zwei Parametrisierungen vorgenommen werden. Basierend auf den in Abschnitt 2.4 auf Seite 12 erläuterten Evaluationen ist es sinnvoll den Parameter

k

im Bereich von

[1, 20]

zu wählen.

k = 10 war dabei eine populäre Konguration, weshalb die zwei kNN-Anfrageblöcke mit k = 5 und k = 15 konguriert werden. Sowohl die 5-NN- als auch die 15-NNAnfrage ieÿen mit je 25% in den Anfrageplan ein. Es werden alle Indexstrukturen evaluiert, die vom Framework QuEval übernommen und angepasst wurden. Für

*

den R -Baum, der Pyramidentechnik und dem VA-File werden die Standardwerte zum Kongurieren der Indexstrukturen genutzt. Da das Prototyp-basierte Verfahren und das LSH approximierende Verfahren sind, werden hier entsprechende Parametrisierungen vorberechnet um eine Präzision von mindestens 90% gewährleisten zu können. An dieser Stelle wird nochmals betont, dass die Parametrisierungen der Indexierungsverfahren nicht die jeweils beste Wahl darstellen und somit die Ergebnisse wenig wissenschaftliche Aussagekraft besitzen werden. Die Anzahl der Durchläufe ist zudem auf 20 beschränkt, sollte bei wissenschaftlichen Auswertungen aber mindestens 30 betragen [GBE07]. Diese Einschränkungen bei der Variation der Evaluationsparameter sind allerdings notwendig, da ein umfassender wissenschaftlicher Vergleich von Indexstrukturen aufgrund des Zeitaufwandes und der dierenzierten Aufgabenstellung dieser Arbeit nicht sinnvoll ist. Eine Übersicht über die resultierenden Kongurationen der Testläufe des durchzuführenden Workloads ist in Tabelle 4.2 auf der nächsten Seite dargestellt. Mit dem WorkloadCongurator ist basierend auf diesen Informationen der Workload in die XML-Darstellung überführt worden. Nachdem der Workload nun erfolgreich deniert worden ist, kann im zweiten Schritt die eigentliche Evaluation durchgeführt werden.

4.3.2 Durchführung Zur Evaluation ist der denierte Workload nur an die entsprechenden Scheduler zu übergeben. In dieser Beispielevaluation wird nur der Scheduler für in Java implementierte Indexstrukturen genutzt, da es der einzige umgesetzte Scheduler zum Zeitpunkt der Evaluation war. Zum Vergleich der sieben Indexstrukturen wurde ein PC mit Windows 7 in der 64-Bit Variante genutzt, welcher mit 4 GB Arbeitsspeicher und einem AMD Phenom II X4 965 Prozessor mit 3,4 GHz ausgestattet ist. Bei der Evaluationsdurchführung wurden mit dem Durchsatz beziehungsweise der Antwortzeit (je Anfrageblock und Testlauf ), dem Speicherverbrauch und der Präzision alle verfügbaren Kenngröÿen gemessen. Das Ergebnis, in Form der um die gemessenen Kenngröÿen erweiterten XML-Datei, ist dann im nächsten Schritt aufbereitet wor-

64

4. Praktische Umsetzung

Szenario

SS

kd

Dimension;

*

R -Baum

Pyramide

VA-File

Prototyp

LSH

min;max

Scheiben

Bits

Prototypen;

Fkt.;

% Daten

W

Verteilung 10;Uniform

-

-

2;4

3

4

25;15

10;10

10;Geclustert

-

-

2;4

3

4

25;15

10;10

10;Real

-

-

2;4

3

4

25;15

10;10

25;Uniform

-

-

2;4

3

4

25;15

10;10

25;Geclustert

-

-

2;4

3

4

25;15

10;10

25;Real

-

-

2;4

3

4

25;15

10;10

50;Uniform

-

-

2;4

3

4

25;15

10;10

50;Geclustert

-

-

2;4

3

4

25;15

10;10

50;Real

-

-

2;4

3

4

25;15

10;10

Präzision

> 90%,

20 Iterationen, Euklidische Distanz

Tabelle 4.2: Konguration des Workloads

den. Die Kenngröÿen sind aus der XML-Datei extrahiert worden, von Nanosekunden in Sekunden umgerechnet worden, um dann grasch dargestellt werden zu können. Im folgenden Kapitel erfolgt die Auswertung dieser Ergebnisse.

4.3.3 Interpretation In diesem Abschnitt wird beschrieben, wie die Ergebnisse mithilfe der primären Kenngröÿen im Bezug zum Workload zu interpretieren sind. In Abbildung 4.5 sind die gemessenen Werte für Durchsatz und Antwortzeit für den 10-dimensionalen Fall dargestellt. Hier sei angemerkt, dass die Durchsatzwerte in allen Diagrammen logarithmisch skaliert sind. Die sequentielle Suche hat eine mittleren Durchsatz von 4 Anfragen pro Sekunde bei dem hier denierten Workload. Das heiÿt, dass man bei

64,00

0,35

32,00

0,30 0,25

16,00

0,20 8,00

0,15 4,00

0,10

2,00

0,05 0,00

1,00 SS

kd

R

Pyr

VA

Proto

LSH

(a) Durchsatz in Anfragen/Sekunde

SS

kd

R

Pyr

VA

Proto

LSH

(b) Antwortzeit in Sekunden

Abbildung 4.5: Evaluation mit uniformen, geclusterten und realen Daten (

d = 10)

4.3.

Evaluation

65

einer Anfrageverteilung von 50% Ob jektanfragen und 50% kNN-Anfragen mit einer

*

mittleren Antwortzeit von ca. 0,25 Sekunden rechnen kann. KD-Baum, R -Baum und VA-File schneiden über alle Datenverteilungen hinweg besser ab. Sowohl bei der Pyramidentechnik als auch beim LSH kann der Fall eintreten, dass die Verfahren schlechter abschneiden als die sequentielle Suche. Hier sollten allerdings Optimierungen mithilfe angepasster Indexkongurationen möglich sein. Bei 10-dimensionalen Daten erreicht das VA-File mit teilweise über 30 Anfragen pro Sekunde die besten Werte. Mit der Steigerung der Dimensionsanzahl auf 25 Dimensionen wird ein ähnliches Bild wie zuvor bei 10 Dimensionen sichtbar (Abbildung 4.6). Sowohl LSH als auch die Pyramidentechnik liefern ähnlich schlechte Werte wie die sequentielle Suche. Das VA-File hingegen beantwortet über alle Datenverteilungen hinweg ca. 16 Anfragen je Sekunde. Allerdings wird sichtbar, dass durch die Dimensionserhöhung ein Einbruch auf etwa die Hälfte des Durchsatzen wie bei 10 Dimensionen zu verzeichnen ist. Neben der sequentiellen Suche sind die beiden approximierenden Indexe hier die Verfahren, die über alle Dimensionen hinweg den konstantesten Durchsatz aufweisen.

0,40

64,00

0,35

32,00

0,30 16,00

0,25

8,00

0,20 0,15

4,00

0,10 2,00

0,05 1,00

0,00 SS

kd

R

Pyr

VA

Proto

LSH

(a) Durchsatz in Anfragen/Sekunde

SS

kd

R

Pyr

VA

Proto

LSH

(b) Antwortzeit in Sekunden

Abbildung 4.6: Evaluation mit uniformen, geclusterten und realen Daten (

d = 25)

Mit 50 Dimensionen ist die höchste Anzahl an Features bei dieser Evaluation erreicht (Abbildung 4.7 auf der nächsten Seite). Auch hier setzt sich der Trend fort, dass die exakten Indexe die stärksten Durchsatzverluste aufweisen. So erreicht das Prototypbasierte Verfahren einen ähnlichen Durchsatz wie das VA-File. Diesen Durchsatz weist das Prototyp-basierte Verfahren über alle Dimensionen hinweg auf. An dieser Stelle muss allerdings die Präzision berücksichtigt werden, die nach der Variation der Dimensionsanzahl von 100% bei 10 Dimensionen auf die Grenze von 90% bei 50 Dimensionen gesunken ist. Bei weiterer Dimensionserhöhung müsste also die Konguration angepasst werden, was auch den Durchsatz beeinusst. Mithilfe des Durchsatzes beziehungsweise der Antwortzeit und der Denition spezischer Workloads kann die Eignung von Indexstrukturen gut geprüft werden. Natürlich ist es auch möglich eine detailliertere Analyse durchzuführen. Da Anfragen in Blöcken deniert werden und je Block Kenngröÿen gemessen werden, können Indexierungsverfahren auch auf feingranularerer Ebene verglichen werden. In Abbildung 4.8 auf der nächsten Seite ist der Durchsatz für den ersten Block der 500 Objektanfragen und den dritten Block der 250 15-NN-Anfragen abgebildet. Beim

66

4. Praktische Umsetzung

32,00

0,50 0,45

16,00

0,40 0,35

8,00

0,30 0,25

4,00

0,20 0,15

2,00

0,10 0,05

1,00

0,00 SS

kd

R

Pyr

VA

Proto

LSH

SS

(a) Durchsatz in Anfragen/Sekunde

kd

R

Pyr

VA

Proto

LSH

(b) Antwortzeit in Sekunden

Abbildung 4.7: Evaluation mit uniformen, geclusterten und realen Daten (

d = 50)

Verarbeiten von Objektanfragen sind die Pyramidentechnik und der KD-Baum mit Werten von ca. 100.000 Anfragen je Sekunde wesentlich schneller als die restlichen Indexe. Logischerweise besitzen eben diese Verfahren bei kNN-Anfragen die schlechteste Leistung, da sie beim Vergleich der gemittelten Kenngröÿen über alle Anfragen

*

nicht an die Werte von R -Baum, VA-File und den beiden approximierenden Verfahren heran reichen.

16,00

1000000,00 100000,00

8,00 10000,00 1000,00

4,00

100,00 2,00 10,00 1,00

1,00 SS

kd

R

Pyr

VA

Proto

LSH

(a) Durchsatz der Objektanfrage

SS

kd

R

Pyr

VA

Proto

(b) Durchsatz der 15-NN-Anfrage

Abbildung 4.8: Evaluation mit uniformen, geclusterten und realen Daten (

4.4

LSH

d = 25)

Zusammenfassung

In diesem Kapitel ist mit der Umsetzung des Benchmarkmodells aus Abschnitt 3.2 auf Seite 43 der praktische Teil dieser Arbeit erläutert worden. Hierbei wurden zu Beginn mit dem Blackbox- und dem Schnittstellenansatz zwei unterschiedliche Möglichkeiten beschrieben, um das Modell zu realisieren. Die Implementierung, basierend auf einer Indexstrukturschnittstelle, wurde dann prototypisch in Form von mehreren Teilkomponenten implementiert. Mit dem WorkloadCongurator wird eine grasche Benutzeroberäche bereit gestellt um Workloads zu denieren. Diese Workloads sind in XML umgesetzt und werden an Programmiersprachen spezische

4.4.

Zusammenfassung

67

Scheduler übergeben. Diese Scheduler führen die Evaluation durch und messen die Kenngröÿen. Nach der Evaluationsdurchführung wird der Workload inklusive Ergebnissen zurück gegeben. Der Scheduler selber benötigt die Benchmarkkomponente, in der die Klassen zur Indexstruktur-, Metrik- und Workloadanbindung enthalten sind. Im zweiten Teil dieses Kapitels wurde ein Vergleich zu QuEval durchgeführt, wobei hier zuerst QuEval in Bezug zum Modell gesetzt wurde um danach die hier durchgeführte Implementation und QuEval vergleichen zu können. Abschlieÿend ist eine Beispielevaluation mit dem Fokus auf der Art und Weise der Ausführung eines Evaluationsprozesses durchgeführt worden. So ist im ersten Schritt die Denition eines geeigneten Workloads beschrieben worden um danach den eigentlichen Testlauf und die Interpretation der Ergebnisse erläutern zu können. Bei der Ergebnisanalyse wurde erläutert wie der Workload in Bezug zu den primären Kenngröÿen gesetzt werden kann. Zudem wurde in Abbildung 4.8 auf der vorherigen Seite gezeigt, dass mit dem Vergleich einzelner Anfrageblöcke sehr detaillierte Analysen möglich sind.

68

4. Praktische Umsetzung

Kapitel 5

Abschluss

Im folgenden Abschnitt wird die vorliegende Arbeit zusammengefasst, wobei neben dem Erreichten auch eventuell oene Fragestellungen und Probleme erläutert werden. Im Anschluss daran wird ein Ausblick gegeben, inwieweit die Arbeit Grundlage für weitere theoretische und praktische Ansätze sein kann.

5.1

Zusammenfassung

Die Zielstellung dieser Arbeit war es, die Evaluation von mehrdimensionalen Indexstrukturen zu analysieren und wenn möglich in ein Modell eines einheitlichen Indexstrukturbenchmarks zu überführen. Um diese Aufgabe zu lösen, war es notwendig eine über 100 Quellen umfassende Literaturrecherche durchzuführen. Die daraus resultierenden Erkenntnisse wurden in einem Grundlagenkapitel umgesetzt, wobei hier relevante Informationen zu den einzelnen Evaluationen bereits entsprechend aufbereitet wurden. Abschnitt 6.2 auf Seite 75 ist ein weiteres Indizien für die Komplexität der Grundlagengestaltung. Mithilfe dieser Informationen war es möglich, die Fragestellung nach Gemeinsamkeiten und Dierenzen bei Indexstrukturevaluationen zu beantworten. So konnten mit Daten, Anfragen, Kenngröÿen und Metriken vier Kernbereiche deniert werden, wobei bei den Anfragen und Kenngröÿen Unterschiede in der Namensgebung zu nden waren. Das Beseitigen dieser Unterschiede, was in Abschnitt 3.1.2 auf Seite 40 beziehungsweise in Abschnitt 3.1.4 auf Seite 42 durchgeführt wurde, war ein notwendiger Schritt zur Denition eines einheitlichen Modells. Dieses Modell konnte schlussendlich in Form eines Featuremodells, welches die für einen Benchmark mehrdimensionaler Indexstrukturen notwendigen Funktionalitäten umfasst, realisiert werden. Zusätzlich dazu waren allerdings Richtlinien zu denieren (Abschnitt 3.2 auf Seite 43), die erst bei der Umsetzung des Modells berücksichtigt werden können. Im praktischen Teil dieser Arbeit wurde das Modell umgesetzt, wobei hier auf verschiedene Möglichkeiten der Realisierung einzelner Komponenten eingegangen wurde. Der Fokus bei der Programmierung war eine prototypische Version bereit zu stellen, die die Umsetzbarkeit und Praxistauglichkeit des Benchmarkmodells widerspiegelt. Ein Groÿteil des Modells ist direkt oder indirekt implementiert worden. Sowohl die Komponenten Kenngröÿe, Metrik als auch Workload konnten den

70

5. Abschluss

Anforderungen entsprechend umgesetzt werden. Bei den Anfragetypen sind Objektanfrage, kNN-Anfrage und

-Distanzanfrage

nutzbar. Letztere ist allerdings nur

in wenigen integrierten Indexierungsverfahren implementiert, wodurch die gesamte Funktionalität nur eingeschränkt genutzt werden kann. Die Anforderungen an die Anfragekomponente ist hier bezüglich des Modells zwar vollständig umgesetzt, eine Evaluation in dieser Richtung war jedoch nicht möglich. Bei der Datenkomponente war die Unterstützung von Punktdaten als notwendig deniert, was auch dementsprechend umgesetzt wurde. Generatoren für die verschiedenen Datenverteilungen wurden allerdings bis auf die Gleichverteilung nicht in das Pro jekt eingegliedert. Da aber ein standardisiertes Format genutzt wird, können verschiedene externe Anwendungen wie beispielsweise ELKI oder QuEval verwendet werden . Die in Abschnitt 1.3 auf Seite 4 genannten Fragestellungen konnten also vollständig beantwortet werden. Wie bereits kurz angesprochen, ist die Implementation des Modells als Beispielimplementation ausreichend, sollte allerdings funktional erweitert werden um die praktische Relevanz sicherzustellen. Hierauf wird im folgenden Abschnitt genauer eingegangen.

5.2

Ausblick

Diese Arbeit, insbesondere aber die vorliegende prototypische Implementation, bietet viele Möglichkeiten der Weiterführung. So wurde bereits die Umsetzung der Routinen für

-Distanzanfragen

in weiteren Indexen angesprochen. Weiterhin sind

Erweiterungen in Form neuer Indexe, Metriken, Anfragearten und Datentypen denkbar. Beim Generieren von begrenzten Bereichsanfragen wäre es zudem sinnvoll, die Selektivitätseigenschaft zu berücksichtigen wie es in Abschnitt 3.1.2 auf Seite 40 angesprochen wurde. Die vermutlich wichtigste funktionale Ergänzung ist allerdings die Realisierung der Benchmark- und Schedulerkomponente in C++, da die Modellumsetzung bereits einen mehrsprachigen Ansatz hat. Durch diese Erweiterung ist es dann möglich in C++ implementierte Metriken und Indexe zu nutzen, wie es bereits in QuEval der Fall ist. Neben diesen sind aber noch weitere Funktionen vorstellbar, die sich mit der XMLWorkload-Komponente befassen. Da der WorkloadCongurator komplett unabhängig zu den anderen Komponenten ist, könnte die Erstellung von Workloads beispielsweise auch in Form einer dynamischen Webseite realisiert werden. In dem Zusammenhang der Webprogrammierung wäre es auch denkbar, das gesamte Benchmarkkonzept als Webservice zu realisieren. Weiterhin wäre die Erstellung eines Tools zur graschen Analyse des Workloads sinnvoll, mithilfe dessen automatisch Statistiken und Diagramme der durchgeführten Evaluation generiert werden. In diesem Zusammenhang sollte dann aber überlegt werden, ob man nicht generell Eingabe- und Ausgabe-Workload mit unterschiedlichen XSDs deniert.

Neben diesen praktischen Ansätzen, existieren auch Möglichkeiten theoretisch auf dieser Arbeit aufzubauen. In Abschnitt 4.3.1 auf Seite 61 wurde bereits beschrieben, dass eine allgemeingültige Workloaddenition von Interesse zur Indexstrukturanalyse wäre. Sollte dies aufgrund der Komplexität der Anwendungsgebiete nicht möglich

5.2.

Ausblick

71

sein, wäre die Auockerung hin zu Anwendungsgebiet spezischen Workloaddenitionen denkbar. Ein Benchmark würde dann vordenierte Workloads für Meteorologie, Bioinformatik oder Kernphysik beziehungsweise für entsprechend feingranularere Themengebiete besitzen. Bereits angesprochen wurde das Ergänzen weiterer Indexe, Anfragen oder Metriken, was aufgrund des Designs gut umsetzbar ist. Eine wesentlich komplexere Anpassung wäre die Erweiterung der prototypischen Implementation um dynamische Workloads, was zuerst theoretisch erarbeitet werden sollte. Mit dynamischen Workloads ist das Einfügen und Löschen von Daten während der Anfragebearbeitung gemeint. Momentan ist die statische Variante umgesetzt, bei der die Daten zuerst komplett eingefügt werden und dann der Anfrageplan abgearbeitet wird. Ein weiterer Ansatz, der ebenfalls die Schemadenition des Workloads erweitert, ist das Einfügen von Indexstruktur spezischen Ergebnissen. Auch wenn es eine primäre Vergleichsgröÿe gibt, können zusätzliche Ergebnisparameter wie zum Beispiel Knotenauslastung bei Baumverfahren interessante zusätzliche Erkenntnisse liefern. Generell bietet die Thematik Workloaddenition also umfangreiche Möglichkeiten der Weiterentwicklung.

72

5. Abschluss

Kapitel 6

Anhang

6.1

Distanzmetriken

Metrik

Berechnungsvorschrift

Minkowski

dfLm (O, P ) = m = (0, 1)

P d−1

Manhattan

dfL1 (O, P ) =

Pd−1

Euklid

dfL2 (O, P ) =

P

Chebychev

dfLm (O, P ) = m→∞

P

dfLwm (O, P ) =

P d−1

Fraktionale

(Maximum) Gewichtete Minkowski

Quadratic

DynamicalPartial

i=0

i=0

|oi − pi |m

 m1

,

|oi − pi |

d−1 i=0

|oi − pi |2

d−1 i=0

i=

 12

|oi − pi |m

 m1

wi |oi − pi |m

,

 m1

dfQ (O, P ) = (O − P )T · A · (O − P ), A ∈ Rd×d ∧ positiv denit 1 P m m dfDPmn (O, P ) = , δi ∈∆n δi ∆m = {die kleinsten m δ -Werte aus (δ1 , δ2 , ..., δn )}, δi = |oi − pi | |oi −pi | i=0 oi +pi

Pd−1

Bray-Curtis

dfBC (O, P ) =

Canberra

dfC (O, P ) =

Pd−1

Hamming

dfH (O, P ) =

P

Chi-Quadrat

dfChi2 (O, P ) = i) hi = (oi +p 2

|oi −pi | i=0 |oi |+|pi | oi 6=pi

1, i = 0, ..., d − 1

Pd−1 i=0

(oi −hi )2 , hi

Klasse

Daten

D

Punktdaten

D

Punktdaten

D

Punktdaten

SD

Punktdaten

D, SD, SPD

Punktdaten

PD

Punktdaten

PD

Punktdaten

SPD

nicht-negative Punktdaten

D

Punktdaten

D

Binärdaten

SPD

Histogramme

Forsetzung auf nächster Seite

6.2.

Mehrdimensionale Indexstukturen

6.2

75

Mehrdimensionale Indexstukturen AESA [Rui86] LAESA [MOV92] MB-Tree [NVZ93]

Bisector- Tree [KM83]

AECA [JV98]

ROAESA [Vil95]

MB*-Tree [NVZ93]

GH-Tree [Uhl91b]

VP -Tree [Yia93]

VP-Tree [Yia93]

PM-Tree [Sko04] M+-Tree [ZWY+03]

MVP-Tree [BO99]

MB+-Tree [YVD95]

VAMSplitR-Tree [WJ96a] P-Tree [Jag90]

Packed R-Tree [RL85] Sphere Tree [Van90]

B*-Tree [Com79]

Cell Tree [Gün88]

Multilevel-Level Grid File [WK85] Multi-Layer Grid File [SW88] MOLHPE [KS86] Z-Hashing [HSW88a]

Extended K-D-Tree [MHN84]

K-D-B-Tree [Rob81]

SKD-Tree [Ooi87]

Regional Quadtree [FB74]

[GG98])

6.1:

Übersicht

GC-Tree [CC02]

LPC-File [CZP+02]

LVA-Index [Las09]

BV-Tree [Fre95]

LSDH-Tree [Hen98]

lz-Hashing [HWZ91]

KD2B-Tree [Van90]

OS-Tree [Man01]

Field-Tree [FB90]

Interpolation-Based [Ouk85]

VA+-File [FTA+00] Parralel VA-File [Web97]

Nested Interpolation-based Grid File [OM92]

GDB-Tree [OS90]

Z-Ordering [OM84]

CMVAI-File [YH10]

Hybrid-Tree [CM99]

PLOPHashing [KS88]

BD-Tree [OS83]

Abbildung

VA-File [WB97a, WB97b; WSB98]

Buddy Tree [SK90]

BANG File [Fre87]

LSD-Tree [HSW89]

Point Quadtree [Kli72]

A-Tree [BS99]

Hilbert R-Tree [KF94]

Filter-Tree [SK96]

BSP-Tree [FKN80]

K-D-Tree [Ben75]

BP-Tree [ATL10]

SR-Tree [KS97]

Segment Indexes [KS91]

Quantile Hashing [KS87]

Adaptive K-D-Tree [Ben79]

Space-Filling Curves [Mor66]

Parallel R-Tree [KF92] P-Tree [Sch93]

Ra*-Tree [JL98]

SS-Tree [WJ96b]

R-File [HSW90]

Linear Hashing [Lar80;Lit80]

LR-Tree [BNM03]

TR*-Tree [SK91] TV-Tree [LJF94]

Twin Grid File [HSW88b]

Grid File [NHS81;NHS84]

EXCELL [Tam82]

DBM-Tree [VTC+05]

Slim-Tree [TTS+00]

IQ-Tree [BBJ+99]

Two-Level Grid File [Hin85]

Extensible Hashing [FNP+79]

NM-Tree [SL08]

X-Tree [BKK96]

R*-Tree [BKS+90]

R+-Tree [SRF87] General Grid File [BIM+90]

R-Tree [Gut84]

B-Tree [BM72]

Cell Tree With Oversize [Gün90]

BM+-Tree [ZWZ+05]

M-Tree [CPZ97]

UB-Tree [Bay97]

B+-Tree [Com79]

SA-Tree [Nav02]

SB

VPS-Tree [Yia93]

Metric-Trees [Uhl91a]

Permutation [CFN08]

TLAESA [MOC96] GNAT [Bri95]

VAMSplit-K-DTree [WJ96a]

LSB-Tree [TYS+10]

LSH [IM98] Probably correct OS-Tree [MM01]

P+-Tree [ZOT04] SPY-TEC [LK03]

Pyramid-Technique [BBK98b] iMinMax [OTY+00]

BKD-Tree [PAA+03]

G-Tree [Kum94]

iDistance [YOT+01]

PL-Tree [WFC09]

DOT [FR91] hB-Tree [LS90]

mehrdimensionaler

hBπ-Tree [ELS95]

BBD-Tree [AM93]

Indexstrukturen

NB-Tree [FJ03]

(basierend

auf

76

6. Anhang

6.3

Datengenerierung mit ELKI

 1 2 3 4 5 6









Quelltext 6.1: ELKI-Parametrisierung uniformer Daten

 1 2 3 4 5 6









Quelltext 6.2: ELKI-Parametrisierung normalverteilter Daten

1 2 3 4 5 6 7 8 9 10 11 12 13 14









Quelltext 6.3: ELKI-Parametrisierung geclusterter Daten

6.4.

6.4

XSD des Workloads

XSD des Workloads

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

77







78

69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134

6. Anhang





Quelltext 6.4: Grundlegender Aufbau einer Workloaddatei



Literatur

[ABH+04]

Lars Arge, Mark de Berg, Herman J. Haverkort und Ke Yi.

 The

Priority R-tree: a practically ecient and worst-case optimal R-tree. In: Proceedings of the 2004 ACM SIGMOD International Conference

on Management of Data.

SIGMOD '04.

Paris, France: ACM, 2004,

S. 347358 (siehe S. 38 f., 75).

[AGK+12]

Elke Achtert, Sascha Goldhofer, Hans-Peter Kriegel, Erich Schubert und Arthur Zimek.

 Evaluation of Clusterings - Metrics and Visual

Support. In: Proceedings of the 28th International Conference on Da-

ta Engineering.

ICDE '12.

Washington, DC, USA: IEEE Computer

Society, 04/2012, S. 12851288 (siehe S. 35).

[AHK01]

Charu C. Aggarwal, Alexander Hinneburg und Daniel A. Keim.

 On

the Surprising Behavior of Distance Metrics in High Dimensional Spaces. In: Proceedings of the 8th International Conference on Database Theo-

ry.

ICDT '01.

London, UK, UK: Springer-Verlag, 2001,

S. 420434

(siehe S. 10).

[AI08]

Alexandr Andoni und Piotr Indyk.  Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions. In: Communica-

tions of the ACM - 50th Anniversary Issue: 1958 - 2008 51.1 (01/2008), S. 117122 (siehe S. 13).

[AM93]

Sunil Arya und David M. Mount.  Approximate nearest neighbor queries in xed dimensions. In: Proceedings of the 4th Annual ACM-SIAM

Symposium on Discrete Algorithms. SODA '93. Austin, Texas, USA: Society for Industrial und Applied Mathematics, 1993, S. 271280 (siehe S. 75).

[AS10]

Lior Aronovich und Israel Spiegler. clustered metric trees.

 Bulk construction of dynamic

In: Knowledge and Information Systems 22.2

(02/2010), S. 211244 (siehe S. 38 f., 42 f.).

[ATL10]

Jurandy Almeida, Ricardo da S. Torres und Neucimar J. Leite.  BPtree: an ecient index for similarity search in high-dimensional metric spaces. In: Proceedings of the 19th ACM International Conference on

Information and Knowledge Management.

CIKM '10.

Canada: ACM, 2010, S. 13651368 (siehe S. 75).

Toronto, ON,

80

[Bay97]

Literatur

Rudolf Bayer.

 The Universal B-Tree for Multidimensional Indexing:

general Concepts. In: Proceedings of the International Conference on

Worldwide Computing and Its Applications. WWCA '97. London, UK, UK: Springer-Verlag, 1997, S. 198209 (siehe S. 32, 75).

[BBB+97]

Stefan Berchtold, Christian Böhm, Bernhard Braunmüller, Daniel A. Keim und Hans-Peter Kriegel.  Fast parallel similarity search in multimedia databases.

In: Proceedings of the 1997 ACM SIGMOD In-

ternational Conference on Management of Data. SIGMOD '97 26.2 (06/1997), S. 112 (siehe S. 34, 38).

[BBJ+99]

Stefan Berchtold, Christian Böhm, Hosagrahar V. Jagadish, Hans-Peter Kriegel und Jörg Sander.  Independent Quantization: An Index Compression Technique for High-Dimensional Data Spaces. In: Proceedings

of the 16th International Conference on Data Engineering. ICDE '99. IEEE Computer Society, 1999, S. 577588 (siehe S. 75).

[BBK+00]

Stefan Berchtold, Christian Böhm, Daniel A. Keim, Hans-Peter Kriegel und Xiaowei Xu.  Optimal Multidimensional Query Processing Using Tree Striping. In: Proceedings of the 2nd International Conference on

Data Warehousing and Knowledge Discovery. DaWaK 2000. London, UK, UK: Springer-Verlag, 2000, S. 244257 (siehe S. 38, 41).

[BBK01]

Christian Böhm, Stefan Berchtold und Daniel A. Keim.

 Searching

in high-dimensional spaces: Index structures for improving the performance of multimedia databases.

In: ACM Computing Surveys 33.3

(09/2001), S. 322373 (siehe S. 10 ., 14, 40).

[BBK98a]

Stefan Berchtold, Christian Böhm und Hans-Peter Kriegel.  Improving the query performance of high-dimensional index structures by bulk load operations.

In: Advances in Database Technology - EDBT'98.

6th International Conference on Extending Database Technology. Hrsg. von Hans-Jörg Schek, Gustavo Alonso, Felix Saltor und Isidro Ramos. Bd. 1377.

Lecture Notes in Computer Science.

Berlin, Heidelberg:

Springer-Verlag, 1998, S. 216230 (siehe S. 38, 41).

[BBK98b]

Stefan Berchtold, Christian Böhm und Hans-Peter Kriegel.  The PyramidTechnique: Towards Breaking the Curse of Dimensionality.

In: Pro-

ceedings of the 1998 ACM SIGMOD International Conference on Management of Data. SIGMOD '98 27.2 (06/1998), S. 142153 (siehe S. 3, 28 f., 38, 41 f., 75).

[BDL+12]

David Broneske, Denis Dietze, Maik Lampe und Andreas Meier.  Vergleich von Indexverfahren für hochdimensionale Datenräume. In: Tech-

niken zur forensischen Datenhaltung. sche Beiträge (AsB) 1.

Bd. 1.

Ausgewählte studenti-

Fakultät für Informatik, Otto-von-Guericke-

Universität Magdeburg, 2012, S. 112 (siehe S. 14).

Literatur

[BEK+98]

81

Stefan Berchtold, Bernhard Ertl, Daniel A. Keim, Hans-Peter Kriegel und Thomas Seidl.  Fast Nearest Neighbor Search in High-Dimensional Space.

In: Proceedings of the 14th International Conference on Da-

ta Engineering.

ICDE '98.

Washington, DC, USA: IEEE Computer

Society, 1998, S. 209218 (siehe S. 43).

[Ben75]

Jon Louis Bentley.  Multidimensional binary search trees used for associative searching. In: Communications of the ACM 18.9 (09/1975), S. 509517 (siehe S. 26, 75).

[Ben79]

Jon Louis Bentley.  Multidimensional Binary Search Trees in Database Applications. In: IEEE Transactions on Software Engineering 5.4 (07/1979), S. 333340 (siehe S. 26, 75).

[BIM+90]

Henk M. Blanken, Alle IJbema, Paul Meek und Bert van den Akker.  The Generalized Grid File: Description and Performance Aspects. In:

Proceedings of the 6th International Conference on Data Engineering. ICDE '90. 1990, S. 380388 (siehe S. 75).

[BKK96]

Stefan Berchtold, Daniel A. Keim und Hans-Peter Kriegel.

 The X-

tree: An Index Structure for High-Dimensional Data. In: Proceedings

of the 22th International Conference on Very Large Data Bases. VLDB '96. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1996, S. 2839 (siehe S. 21 f., 42, 75).

[BKS+90]

Norbert Beckmann, Hans-Peter Kriegel, Ralf Schneider und Bernhard Seeger.  The R*-tree: an ecient and robust access method for points and rectangles. In: Proceedings of the 1990 ACM SIGMOD Internatio-

nal Conference on Management of Data. SIGMOD '90 19.2 (05/1990), S. 322331 (siehe S. 18 f., 38 f., 41 f., 75).

[BKS96]

Thomas Brinkho, Hans-Peter Kriegel und Bernhard Seeger.  Parallel processing of spatial joins using R-trees.

In: Proceedings of the 12th

International Conference on Data Engineering. ICDE '96. Washington, DC, USA: IEEE Computer Society, 02/1996, S. 258265 (siehe S. 34, 42).

[BM72]

Rudolf Bayer und Edward M. McCreight.  Organization and maintenance of large ordered indexes. In: Acta Informatica. SIGFIDET '70 1 (3 1972), S. 173189 (siehe S. 12, 75).

[BN02]

Benjamin Bustos und Gonzalo Navarro.  Probabilistic Proximity Searching Algorithms Based on Compact Partitions. In: String Processing

and Information Retrieval. Hrsg. von Alberto H.F. Laender und Arlindo L. Oliveira. Bd. 2476. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer-Verlag, 2002, S. 284297 (siehe S. 30).

82

[BNM03]

Literatur

Panayiotis Bozanis, Alexandros Nanopoulos und Yannis Manolopoulos.  LR-tree: a Logarithmic Decomposable Spatial Index Method. In: The

Computer Journal 46.3 (2003), S. 319331 (siehe S. 41 ., 75). [BNZ07]

Michal Batko, David Novak und Pavel Zezula.  Messif: Metric similarity search implementation framework. In: Digital Libraries: Research

and Development. First International DELOS Conference, Pisa, Italy, February 13-14, 2007, Revised Selected Papers. 4877 Bde. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer-Verlag, 2007, S. 110 (siehe S. 24, 34).

[BO99]

Tolga Bozkaya und Meral Ozsoyoglu.  Indexing large metric spaces for similarity search queries. In: ACM Transactions on Database Systems 24.3 (09/1999), S. 361404 (siehe S. 75).

[Böh98]

Christian Böhm.  Eciently Indexing High-Dimensional Data Spaces. Dissertation. 1998, S. IXIV, 1242 (siehe S. 3, 7, 912, 14).

[Bri95]

Sergey Brin.

 Near Neighbor Search in Large Metric Spaces.

In:

Proceedings of the 21th International Conference on Very Large Data Bases.

VLDB '95.

San Francisco, CA, USA: Morgan Kaufmann

Publishers Inc., 1995, S. 574584 (siehe S. 38, 42).

[BS01]

Jochen Van den Bercken und Bernhard Seeger.  An Evaluation of Generic Bulk Loading Techniques. In: Proceedings of the 27th Internatio-

nal Conference on Very Large Data Bases. VLDB '01. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2001, S. 461470 (siehe S. 38).

[BS99]

Pedja Bogdanovich und Hanan Samet.  The ATREE: A Data Structure to Support Very Large Scientic Databases. In: Selected Papers from

the International Workshop on Integrated Spatial Databases, Digital Inages and GIS.

ISD '99.

London, UK, UK: Springer-Verlag, 1999,

S. 235248 (siehe S. 75).

[CAA+11]

Shimin Chen, Anastasia Ailamaki, Manos Athanassoulis, Phillip B. Gibbons, Ryan Johnson, Ippokratis Pandis und Radu Stoica.

 TPC-

E vs. TPC-C: characterizing the new TPC-E benchmark via an I/O comparison study. In: ACM SIGMOD Record 39.3 (02/2011), S. 510 (siehe S. 33).

[CC02]

Guang-Ho Cha und Chin-Wan Chung.  The GC-tree: a high-dimensional index structure for similarity search in image databases.

In: IEEE

Transactions on Multimedia 4.2 (06/2002), S. 235247 (siehe S. 75). [CER13]

CERN. CERN - Computing. Webseite. 2013.

url:

http://home.web.

cern.ch/about/computing (besucht am 22. 03. 2013) (siehe S. 1).

Literatur

[CFN08]

83

Edgar Chavez, Karina Figueroa und Gonzalo Navarro.  Eective Proximity Retrieval by Ordering Permutations. In: IEEE Transactions on

Pattern Analysis and Machine Intelligence 30.9 (09/2008), S. 1647 1658 (siehe S. 30 f., 75).

[CM99]

Kaushik Chakrabarti und Sharad Mehrotra.  The hybrid tree: an index structure for high dimensional feature spaces.

In: Proceedings of the

15th International Conference on Data Engineering. ICDE '99. 1999, S. 440447 (siehe S. 75).

[Com79]

Douglas Comer.

 Ubiquitous B-Tree.

In: ACM Computing Surveys

11.2 (06/1979), S. 121137 (siehe S. 75).

[Cou10a]

Transaction Processing Performance Council.

TPC Benchmark C -

Standard Specication. Revision 5.11. Spezikation. Transaction Processing Performance Council (TPC). 02/2010 (siehe S. 33).

[Cou10b]

Transaction Processing Performance Council.

TPC Benchmark E -

Standard Specication. Version 1.12.0. Spezikation. Transaction Processing Performance Council (TPC). 06/2010 (siehe S. 33).

[Cou12a]

Transaction Processing Performance Council.

- Standard Specication.

Version 1.1.0.

TPC Benchmark DS

Spezikation.

Transaction

Processing Performance Council (TPC). 04/2012 (siehe S. 33).

[Cou12b]

Transaction Processing Performance Council. TPC Benchmark H (De-

cision Support) - Standard Specication. Revision 2.14.4. Spezikation. Transaction Processing Performance Council (TPC). 04/2012

(siehe

S. 33).

[CPZ97]

Paolo Ciaccia, Marco Patella und Pavel Zezula.  M-tree: An Ecient Access Method for Similarity Search in Metric Spaces. In: Proceedings

of the 23rd International Conference on Very Large Data Bases. VLDB '97. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1997, S. 426435 (siehe S. 22 f., 34, 39, 41 f., 75).

[CZP+02]

Guang-Ho Cha, Xiaoming Zhu, Predrag Petkovic und Chin-Wan Chung.  An ecient indexing method for nearest neighbor searches in highdirnensional image databases. In: IEEE Transactions on Multimedia 4.1 (2002), S. 7687 (siehe S. 75).

[DGS+03]

Vlastislav Dohnal, Claudio Gennaro, Pasquale Savino und Pavel Zezula.  D-Index: Distance Searching Index for Metric Data Sets. In: Mul-

timedia Tools and Applications 21.1 (09/2003), S. 933 (siehe S. 34). [DII+04]

Mayur Datar, Nicole Immorlica, Piotr Indyk und Vahab S. Mirrokni.  Locality-sensitive hashing scheme based on p-stable distributions. In:

Proceedings of the 20th Annual Symposium on Computational Geome-

84

Literatur

try.

SCG '04.

Brooklyn, New York, USA: ACM, 2004,

S. 253262

(siehe S. 31).

[DTZ12]

Sebastian Dorok, Martin Tobies und Andre Zaske.  Einuss von multivariat schief normalverteilten Daten auf multidimensionale Indexstrukturen.

In: Techniken zur forensischen Datenhaltung.

Bd. 1.

1. Fakultät für Informatik, Otto-von-Guericke-Universität Magdeburg, 10/2012, S. 4957 (siehe S. 8, 44, 62).

[ELS95]

Georgios Evangelidis, David B. Lomet und Betty Salzberg.  The hBPtree: A Modied hB-tree Supporting Concurrency, Recovery and Node Consolidation. In: Proceedings of the 21st International Conference on

Very Large Data Bases. VLDB '95. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1995, S. 551561 (siehe S. 75).

[FB74]

Raphael A. Finkel und Jon Louis Bentley.  Quad trees a data structure for retrieval on composite keys. In: Acta Informatica 4.1 (1974), S. 19 (siehe S. 75).

[FB90]

Andrew U. Frank und Renato Barrera.  The eldtree: A data structure for geographic information systems.

In: Design and Implementation

of Large Spatial Databases. Hrsg. von AlejandroP. Buchmann, Oliver Günther, TerenceR. Smith und Yuan-Fang Wang. Notes in Computer Science.

Bd. 409.

Springer-Verlag, 1990,

Lecture

S. 2944

(siehe

S. 75).

[FJ03]

Manuel J. Fonseca und Joaquim A. Jorge. NB-Tree: An Indexing Struc-

ture for Content-Based Retrieval in Large Databases. Technischer Bericht. 2003 (siehe S. 75).

[FKN80]

Henry Fuchs, Zvi M. Kedem und Bruce F. Naylor.

 On visible sur-

face generation by a priori tree structures. In: Proceedings of the 7th

Annual Conference on Computer Graphics and interactive Techniques. SIGGRAPH '80.

Seattle, Washington, USA: ACM, 1980,

S. 124133

(siehe S. 75).

[FNP+79]

Ronald Fagin, Jurg Nievergelt, Nicholas Pippenger und H. Raymond Strong.  Extendible hashing - a fast access method for dynamic les. In: ACM Transactions on Database Systems. TODS '79 4.3 (09/1979), S. 315344 (siehe S. 75).

[FR89]

Christos Faloutsos und Shari Roseman.  Fractals for secondary key retrieval. In: Proceedings of the 8th ACM SIGACT-SIGMOD-SIGART

Symposium on Principles of Database Systems. PODS '89. Philadelphia, Pennsylvania, USA: ACM, 1989, S. 247252 (siehe S. 32).

[FR91]

Christos Faloutsos und Yi Rong.

 DOT: A Spatial Access Method

Using Fractals. In: Proceedings of the 7th International Conference on

Literatur

85

Data Engineering. ICDE '91. IEEE Computer Society, 1991, S. 152 159 (siehe S. 75).

[Fre87]

Michael Freeston.  The BANG le: A new kind of grid le. In: Procee-

dings of the 1987 ACM SIGMOD International Conference on Management of Data. SIGMOD '87. San Francisco, California, USA: ACM, 1987, S. 260269 (siehe S. 75).

[Fre95]

Michael Freeston.  A general solution of the n-dimensional B-tree problem. In: Proceedings of the 1995 ACM SIGMOD International Con-

ference on Management of Data. SIGMOD '95. San Jose, California, USA: ACM, 1995, S. 8091 (siehe S. 75).

[FTA+00]

Hakan Ferhatosmanoglu, Ertem Tuncel, Divyakant Agrawal und Amr El Abbadi.

 Vector approximation based indexing for non-uniform

high dimensional data sets.

In: Proceedings of the 9th International

Conference on Information and Knowledge Management.

CIKM '00.

McLean, Virginia, USA: ACM, 2000, S. 202209 (siehe S. 28, 75).

[Fuk90]

Keinosuke Fukunaga.

Introduction to statistical pattern recognition.

2. Au. San Diego, CA, USA: Academic Press Professional, Inc., 1990 (siehe S. 20).

[GBE07]

Andy Georges, Dries Buytaert und Lieven Eeckhout.  Statistically rigorous java performance evaluation. In: Proceedings of the 22nd Annual

ACM SIGPLAN Conference on Object-oriented Programming Systems and Applications.

OOPSLA '07.

Montreal, Quebec, Canada: ACM,

2007, S. 5776 (siehe S. 63).

[GG98]

Volker Gaede und Oliver Günther.  Multidimensional access methods. In: ACM Computing Surveys 30.2 (06/1998), S. 170231 (siehe S. 10 ., 14, 40 f., 75).

[GIM99]

Aristides Gionis, Piotr Indyk und Rajeev Motwani.  Similarity Search in High Dimensions via Hashing. In: Proceedings of the 25th Interna-

tional Conference on Very Large Data Bases. VLDB '99. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1999, S. 518529 (siehe S. 31 f.).

[GR11]

John Gantz und David Reinsel. Extracting Value from Chaos. Bericht. International Data Corporation (IDC), 06/2011 (siehe S. 1).

[GR12]

John Gantz und David Reinsel. THE DIGITAL UNIVERSE IN 2020:

Big Data, Bigger Digital Shadows, and Biggest Growth in the Far East. Bericht. International Data Corporation (IDC), 12/2012 (siehe S. 1).

[Gre89]

Diane Greene.  An Implementation and Performance Analysis of Spatial Data Access Methods.

In: Proceedings of the 5th International

86

Literatur

Conference on Data Engineering. ICDE '89. Washington, DC, USA: IEEE Computer Society, 1989, S. 606615 (siehe S. 19).

[Gün88]

Oliver Günther.

Ecient structures for geometric data management.

New York, NY, USA: Springer-Verlag, 1988 (siehe S. 75).

[Gün90]

O. Günther. Evaluation of spatial access methods with oversize shelves. FAW-Dokumentation. FAW, 1990 (siehe S. 75).

[Gut84]

Antonin Guttman. Searching.

 R-Trees: A Dynamic Index Structure for Spatial

In: Proceedings of the 1984 ACM SIGMOD International

Conference on Management of Data.

SIGMOD '84.

Boston, Massa-

chusetts: ACM, 1984, S. 4757 (siehe S. 15 ., 38, 41 ., 75).

[Hen98]

Andreas Henrich.

 The LSDh-Tree: An Access Structure for Feature

Vectors. In: Proceedings of the 14th International Conference on Da-

ta Engineering.

ICDE '98.

Washington, DC, USA: IEEE Computer

Society, 1998, S. 362369 (siehe S. 75).

[Her13]

Tim Hering.  Parallelization of K-D Trees for kNN-queries in main memory. In: BTW Studierendenprogramm. Köllen-Verlag, 2013, S. 257 266 (siehe S. 34).

[Hil91]

David Hilbert.

 Über die stetige Abbildung einer Line auf ein Flä-

chenstück. In: Mathematische Annalen 38 (3 1891), S. 459460 (siehe S. 32).

[Hin85]

Klaus Hinrichs.  Implementation of the grid le: design concepts and experience.

In: BIT Numerical Mathematics 25.4 (12/1985), S. 569

592 (siehe S. 75).

[HNP95]

Joseph M. Hellerstein, Jerey F. Naughton und Avi Pfeer.  Generalized Search Trees for Database Systems.

In: Proceedings of the 21st

International Conference on Very Large Data Bases. VLDB '95. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1995, S. 562 573 (siehe S. 34).

[HR05]

Peter Howarth und Stefan Rüger. content-based image retrieval.

 Fractional distance measures for

In: Proceedings of the 27th European

Conference on Advances in Information Retrieval Research. ECIR '05. Santiago de Compostela, Spain: Springer-Verlag, 2005, S. 447456 (siehe S. 10).

[HS03]

Gisli R. Hjaltason und Hanan Samet. in metric spaces.

 Index-driven similarity search

In: ACM Transactions on Database Systems 28.4

(12/2003), S. 517580 (siehe S. 13).

[HS95]

Gisli R. Hjaltason und Hanan Samet.  Ranking in Spatial Databases. In: Proceedings of the 4th International Symposium on Advances in

Literatur

87

Spatial Databases. SSD '95. London, UK, UK: Springer-Verlag, 1995, S. 8395 (siehe S. 12).

[HSW88a]

Andreas Hutesz, Hans-Werner Six und Peter Widmayer. Order Preserving Multidimensional Linear Hashing.

 Globally

In: Proceedings

of the 4th International Conference on Data Engineering.

ICDE '88.

IEEE Computer Society, 1988, S. 572579 (siehe S. 75).

[HSW88b]

Andreas Hutesz, Hans-Werner Six und Peter Widmayer.  Twin grid les: space optimizing access schemes.

In: Proceedings of the 1988

ACM SIGMOD International Conference on Management of Data 17.3 (06/1988), S. 183190 (siehe S. 75).

[HSW89]

Andreas Henrich, Hans-Werner Six und Peter Widmayer.

 The LSD

tree: spatial access to multidimensional and non-point objects.

In:

Proceedings of the 15th International Conference on Very Large Data Bases. VLDB '89. Amsterdam, The Netherlands: Morgan Kaufmann Publishers Inc., 1989, S. 4553 (siehe S. 75).

[HSW90]

Andreas Hutesz, Hans-Werner Six und Peter Widmayer.  The R-File: An Ecient Access Structure for Proximity Queries. In: Proceedings

of the 6th International Conference on Data Engineering.

ICDE '90.

IEEE Computer Society, 1990, S. 372379 (siehe S. 75).

[HWZ91]

Andreas Hutesz, Peter Widmayer und Cora Zimmermann.  Geographic Database Management Systems. In: Proceedings of the 1991 ACM

SIGMOD International Conference on Management of Data. SIGMOD '91. Springer-Verlag, 1991, S. 161176 (siehe S. 75).

[IM98]

Piotr Indyk und Rajeev Motwani.

 Approximate nearest neighbors:

towards removing the curse of dimensionality. In: Proceedings of the

30th Annual ACM Symposium on Theory of Computing.

STOC '98.

Dallas, Texas, USA: ACM, 1998, S. 604613 (siehe S. 31, 75).

[Jag90]

H. V. Jagadish.

 Spatial Search with Polyhedra.

In: Proceedings of

the 6th International Conference on Data Engineering. ICDE '90. Washington, DC, USA: IEEE Computer Society, 1990, S. 311319 (siehe S. 75).

[JL98]

Marcus Jurgens und Hans-J. Lenz.  The Ra*-tree: an improved R*-tree with materialized data for supporting range queries on OLAP-data. In: Proceedings of the 9th International Workshop on Database and

Expert Systems Applications, 1998. 1998, S. 186191 (siehe S. 75). [JV98]

Alfons Juan und Enrique Vidal.

An optimized version of the Ap-

proximating and Eliminating Search Algorithm (AESA) for Nearest Neighbour classication.

Technischer Bericht. ITI-ITE-3/98.

Valen-

cia (Spain): Institut Tecnologic d'Informàtica, 07/1998 (siehe S. 75).

88

[KF92]

Literatur

Ibrahim Kamel und Christos Faloutsos.

 Parallel R-trees.

In: Pro-

ceedings of the 1992 ACM SIGMOD International Conference on Management of Data. SIGMOD '92. San Diego, California, USA: ACM, 1992, S. 195204 (siehe S. 75).

[KF94]

Ibrahim Kamel und Christos Faloutsos.  Hilbert R-tree: An Improved R-tree using Fractals. In: Proceedings of the 20th International Confe-

rence on Very Large Data Bases. VLDB '94. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1994, S. 500509 (siehe S. 32, 38, 42, 75).

[Kli72]

A Klinger.

 Patterns and Search Statistics.

In: Optimizing Methods

in Statistics. Hrsg. von J. Rustagi. Academic Press, 1972, S. 303339. (Siehe S. 75).

[KM83]

Iraj Kalantari und Gerard McDonald.  A Data Structure and an Algorithm for the Nearest Point Problem.

In: IEEE Transactions on

Software Engineering 9.5 (09/1983), S. 631634 (siehe S. 75). [KOR98]

Eyal Kushilevitz, Rafail Ostrovsky und Yuval Rabani.  Ecient search for approximate nearest neighbor in high dimensional spaces. In: Pro-

ceedings of the 30th Annual ACM Symposium on Theory of Computing. STOC '98. Dallas, Texas, USA: ACM, 1998, S. 614623 (siehe S. 7).

[KS03]

Michal Krátký und Tomá² Skopal.

 Benchmarking the UB-tree.

In:

Proceedings of the Dateso 2003 Annual International Workshop on Databases, Texts, Specications and Objects.

DATESO '03.

VSB-

Technical University of Ostrava, 04/2003, S. 8394 (siehe S. 41 f.).

[KS86]

Hans-Peter Kriegel und Bernhard Seeger.  Multidimensional order preserving linear hashing with partial expansions. In: Proceedings on the

1st International Conference on Database Theory. ICDT '86. Rome, Italy: Springer-Verlag, 1986, S. 203220 (siehe S. 75).

[KS87]

Hans-Peter Kriegel und Bernhard Seeger.  Multidimensional Dynamic Quantile Hashing is Very Ecient for Non-Uniform Record Distributions.

In: Proceedings of the 3rd International Conference on Data

Engineering. ICDE '87. IEEE Computer Society, 1987, S. 1017 (siehe S. 75).

[KS88]

Hans-Peter Kriegel und Bernhard Seeger.

 PLOP-Hashing: A Grid

File without Directory. In: Proceedings of the 4th International Con-

ference on Data Engineering. ICDE '88. Washington, DC, USA: IEEE Computer Society, 1988, S. 369376 (siehe S. 75).

[KS91]

Curtis P. Kolovson und Michael Stonebraker.

 Segment indexes: dy-

namic indexing techniques for multi-dimensional interval data.

In:

Proceedings of the 1991 ACM SIGMOD International Conference on

Literatur

89

Management of Data. SIGMOD '91. Denver, Colorado, USA: ACM, 1991, S. 138147 (siehe S. 75).

[KS97]

Norio Katayama und Shin'ichi Satoh.

 The SR-tree: an index struc-

ture for high-dimensional nearest neighbor queries. In: Proceedings of

the 1997 ACM SIGMOD International Conference on Management of Data. SIGMOD '97 26.2 (06/1997), S. 369380 (siehe S. 24 f., 75). [KSP+84]

Manolis G.H. Katevenis, Robert W. Sherburne Jr., David A. Patterson und Carlo H. Séquin.  The RISC II micro-architecture. In: Advances

in VLSI and Computer Systems 1.2 (10/1984), S. 138152 (siehe S. 38). [KTN12]

Matthias Koch, Martin Tobies und Christoph Neubüser.  Implementierung und Evaluierung von Distanzfunktionen im Digi-Dak-Framework. In: Techniken zur forensischen Datenhaltung. Bd. 1. 1. Fakultät für Informatik, Otto-von-Guericke-Universität Magdeburg, 10/2012, S. 37 48 (siehe S. 10).

[Kum94]

Anil Kumar.

 G-Tree: A New Data Structure for Organizing Multi-

dimensional Data.

In: IEEE Transactions on Knowledge and Data

Engineering 6.2 (04/1994), S. 341347 (siehe S. 75). [Lar80]

Per-Åke Larson.  Linear Hashing with Partial Expansions. In: Procee-

dings of the 6th International Conference on Very Large Data Bases. VLDB '80. IEEE Computer Society, 1980, S. 224232 (siehe S. 75).

[Las09]

Piotr Lasek.

 LVA-Index: An Ecient Way to Determine Nearest

Neighbors. In: Man-Machine Interactions. Hrsg. von KrzysztofA. Cyran, Stanisªaw Kozielski, JamesF. Peters, Urszula Sta«czyk und Alicja Wakulicz-Deja. Bd. 59. Advances in Intelligent and Soft Computing. Springer-Verlag, 2009, S. 623633 (siehe S. 75).

[Lit80]

Witold Litwin.

 Linear hashing: a new tool for le and table addres-

sing. In: Proceedings of the 6th international conference on Very Large

Data Bases - Volume 6. VLDB '80. Montreal, Quebec, Canada: VLDB Endowment, 1980, S. 212223 (siehe S. 75).

[LJC+11]

Yi Liu, Ning Jing, Luo Chen und Huizhong Chen.

 Parallel bulk-

loading of spatial data with MapReduce: An R-tree case. In: Wuhan

University Journal of Natural Sciences 16 (6 2011), S. 513519 (siehe S. 34).

[LJF94]

King-Ip Lin, Hosagrahar V. Jagadish und Christos Faloutsos.  The TVtree  an index structure for high-dimensional data.

In: The VLDB

Journal  The International Journal on Very Large Data Bases - Spatial Database Systems 3 (4 10/1994), S. 517542 (siehe S. 20 f., 42 f., 75).

90

[LK03]

Literatur

Dong-Ho Lee und Hyoung-Joo Kim.  An Ecient Technique for NearestNeighbor Query Processing on the SPY-TEC. In: IEEE Transactions

on Knowledge and Data Engineering 15.6 (11-12/2003), S. 14721486 (siehe S. 29, 39, 42 f., 75).

[LS90]

David B. Lomet und Betty Salzberg.

 The hB-tree: a multiattribute

indexing method with good guaranteed performance. In: ACM Tran-

sactions on Database Systems 15.4 (12/1990), S. 625658 (siehe S. 75). [Man01]

Songrit Maneewongvatana.  Multi-dimensional nearest neighbor searching with low-dimensional data. Dissertation. 2001 (siehe S. 75).

[MHN84]

Takashi Matsuyama, Le Viet Hao und Makoto Nagao.  A le organization for geographic information systems based on spatial proximity. In:

Computer Vision, Graphics and Image Processing 26.3 (1984), S. 303 318 (siehe S. 75).

[MM01]

Songrit Maneewongvatana und David M. Mount.  An Empirical Study of a New Approach to Nearest Neighbor Searching.

In: Algorithm

Engineering and Experimentation: 3rd International Workshop. Hrsg. von Adam L. Buchsbaum und Jack Snoeyink. Bd. 2153. ALENEX '01. Springer-Verlag, 2001, S. 172187 (siehe S. 75).

[MOC96]

Luisa Micó, José Oncina und Rafael C. Carrasco.  A fast branch & bound nearest neighbour classier in metric spaces. In: Pattern Reco-

gnition Letters 17.7 (06/1996), S. 731739 (siehe S. 13, 75). [Mor66]

G.M. Morton.

A Computer Oriented Geodetic Data Base and a New

Technique in File Sequencing. International Business Machines Company, 1966 (siehe S. 32, 75).

[MOV92]

Luisa Micó, José Oncina und Enrique Vidal.  An algorithm for nding nearest neighbours in constant average time with a linear space complexity. In: 11th IAPR International Conference on Pattern Recognition. Conference B: Pattern Recognition Methodology and Systems. Bd. 2. 1992, S. 557560 (siehe S. 13, 75).

[Nav02]

Gonzalo Navarro. tion.

 Searching in metric spaces by spatial approxima-

In: The VLDB Journal  The International Journal on Very

Large Data Bases 11.1 (08/2002), S. 2846 (siehe S. 75). [NHS81]

Jürg Nievergelt, Hans Hinterberger und Kenneth C. Sevcik.  The grid le: An adaptable, symmetric multi-key le structure.

In: Trends in

Information Processing Systems. Hrsg. von Arie Duijvestijn und PeterChristian Lockemann.

Bd. 123.

Lecture Notes in Computer Science.

Berlin Heidelberg: Springer-Verlag, 1981, S. 236251 (siehe S. 14, 75).

[NHS84]

Jürg Nievergelt, Hans Hinterberger und Kenneth C. Sevcik.  The Grid File: An Adaptable, Symmetric Multikey File Structure.

In: ACM

Literatur

91

Transactions on Database Systems

9.1 (03/1984), S. 3871

(siehe

S. 14 f., 75).

[NT01]

Moni Naor und Vanessa Teague.

 Anti-persistence: History indepen-

dent data structures. In: Proceedings of the 33rd Annual ACM Sym-

posium on Theory of Computing. STOC '01. ACM, 2001, S. 492501 (siehe S. 14).

[NVZ93]

Hartmut Noltemeier, Knut Verbarg und Christian Zirkelbach.  Geometric modelling. In: Hrsg. von Gerald E. Farin, Hans Hagen, Hartmut Noltemeier und Walter Knödel. 1993.

London, UK, UK: Springer-Verlag,

Kap. A data structure for representing and ecient querying

large scenes of geometric ob jects: MB* trees, S. 211226 (siehe S. 75).

[OM84]

Jack A. Orenstein und Tim H. Merrett. for associative searching.

 A class of data structures

In: Proceedings of the 3rd ACM SIGACT-

SIGMOD Symposium on Principles of Database Systems. PODS '84. Waterloo, Ontario, Canada: ACM, 1984, S. 181190 (siehe S. 75).

[OM92]

Aris M. Ouksel und Otto Mayer.  A robust and ecient spatial data structure: the nested interpolation-based grid le. In: Acta Informatica 29.4 (07/1992), S. 335373 (siehe S. 75).

[Ooi87]

Beng C. Ooi.  Spatial kd-Tree: A Data Structure for Geographic Database. In: Datenbanksysteme in Büro, Technik und Wissenschaft. Hrsg. von H.-J. Schek und G. Schlageter. Bd. 136. Informatik-Fachberichte. Springer-Verlag, 1987, S. 247258 (siehe S. 75).

[OS83]

Yutaka Ohsawa und Masao Sakauchi.

 The BD-Tree - A New N-

Dimensional Data Structure with Highly Ecient Dynamic Characteristics. In: IFIP Congress. 1983, S. 539544 (siehe S. 75).

[OS90]

Yutaka Ohsawa und Masao Sakauchi.  A New Tree Type Data Structure with Homogeneous Nodes Suitable for a Very Large Spatial Database.

In: Proceedings of the 6th International Conference on Data

Engineering.

ICDE '90.

IEEE Computer Society, 1990,

S. 296303

(siehe S. 75).

[OTY+00]

Beng Chin Ooi, Kian-Lee Tan, Cui Yu und Stephane Bressan.  Indexing the edges - a simple and yet ecient approach to high-dimensional indexing. In: Proceedings of the 19th ACM SIGMOD-SIGACT-SIGART

Symposium on Principles of Database Systems. PODS '00. Dallas, Texas, USA: ACM, 2000, S. 166174 (siehe S. 75).

[Ouk85]

Aris M. Ouksel.  The interpolation-based grid le. In: Proceedings of

the 4th ACM SIGACT-SIGMOD Symposium on Principles of Database Systems.

PODS '85.

(siehe S. 75).

Portland, Oregon, USA: ACM, 1985,

S. 2027

92

[PAA+03]

Literatur

Octavian Procopiuc, PankajK. Agarwal, Lars Arge und JereyScott Vitter.  Bkd-Tree: A Dynamic Scalable kd-Tree. In: Advances in Spa-

tial and Temporal Databases. Hrsg. von Thanasis Hadzilacos, Yannis Manolopoulos, John Roddick und Yannis Theodoridis. Bd. 2750. Lecture Notes in Computer Science. Springer-Verlag, 2003, S. 4665 (siehe S. 75).

[Pea90]

Giuseppe Peano.

 Sur une courbe, qui remplit toute une aire plane.

In: Mathematische Annalen 36 (1 1890), S. 157160 (siehe S. 32).

[PM97]

Apostolos Papadopoulos und Yannis Manolopoulos.

 Performance of

Nearest Neighbor Queries in R-Trees. In: Proceedings of the 6th Inter-

national Conference on Database Theory. Bd. 1186. ICDT '97. London, UK, UK: Springer-Verlag, 01/1997, S. 394408 (siehe S. 41, 43).

[RAS98]

K. V. Ravi Kanth, Divyakant Agrawal und Ambuj Singh.

 Dimen-

sionality reduction for similarity searching in dynamic databases. In:

Proceedings of the 1998 ACM SIGMOD International Conference on Management of Data. SIGMOD '98 27.2 (06/1998), S. 166176 (siehe S. 39).

[RKV95]

Nick Roussopoulos, Stephen Kelley und Frédéric Vincent. neighbor queries.

 Nearest

In: Proceedings of the 1995 ACM SIGMOD In-

ternational Conference on Management of Data. SIGMOD '95 24.2 (05/1995), S. 7179 (siehe S. 12).

[RL85]

Nick Roussopoulos und Daniel Leifker.  Direct spatial search on pictorial databases using packed R-trees. In: Proceedings of the 1985 ACM

SIGMOD International Conference on Management of Data. SIGMOD '85. Austin, Texas, USA: ACM, 1985, S. 1731 (siehe S. 75).

[Rob81]

John T. Robinson.  The K-D-B-tree: a search structure for large multidimensional dynamic indexes. In: Proceedings of the 1981 ACM SIG-

MOD International Conference on Management of Data.

SIGMOD

'81. Ann Arbor, Michigan: ACM, 1981, S. 1018 (siehe S. 26, 75).

[Rui86]

Enrique Vidal Ruiz.

 An algorithm for nding nearest neighbours in

(approximately) constant average time.

In: Pattern Recognition Let-

ters 4.3 (07/1986), S. 145157 (siehe S. 13, 75). [Sam05]

Hanan Samet. Foundations of Multidimensional and Metric Data Struc-

tures.

San Francisco, CA, USA: Morgan Kaufmann Publishers Inc.,

2005 (siehe S. 14).

[Sch04]

Ingo Schmitt.

 Multimedia-Datenbanken: Retrieval, Suchalgorithmen

und Anfragebearbeitung.

Habilitationsschrift. Germany: Otto-von-

Guericke-Universität, 12/2004 (siehe S. 2, 814, 40).

Literatur

[Sch93]

93

Michael Schiwietz.

 Speicherung und Anfragebearbeitung komplexer

Geo-Objekte. Dissertation. 1993 (siehe S. 75).

[SGS+13]

Martin Schäler, Alexander Grebhahn, Reimar Schröter, Sandro Schulze, Veit Köppen und Gunter Saake.  QuEval: Beyond high-dimensional indexing à la carte. In: The Proceedings of the VLDB Endowment 6.14 (12/2013). Im Erscheinen. (siehe S. 5).

[SHS05]

Gunter Saake, Andreas Heuer und Kai-Uwe Sattler.

Datenbanken 

Implementierungstechniken. 2. Au. Bonn: MITP-Verlag, 2005 (siehe S. 14, 17).

[SK08]

Gunnar Siebert und Stefan Kempf.

Benchmarking: Leitfaden für die

Praxis. Hanser Fachbuchverlag, 2008 (siehe S. 32). [SK90]

Bernhard Seeger und Hans-Peter Kriegel.

 The Buddy-Tree: An Ef-

cient and Robust Access Method for Spatial Data Base Systems. In: Hrsg. von Dennis McLeod, Ron Sacks-Davis und Hans-Jörg Schek. VLDB '90. 1990, S. 590601 (siehe S. 75).

[SK91]

Ralf Schneider und Hans-Peter Kriegel.  The TR*-tree: A new representation of polygonal objects supporting spatial queries and operations.

In: Computational Geometry-Methods, Algorithms and Applica-

tions. Hrsg. von H. Bieri und H. Noltemeier. Bd. 553. Lecture Notes in Computer Science. Springer-Verlag, 1991, S. 249263 (siehe S. 75).

[SK96]

Kenneth C. Sevcik und Nick Koudas.  Filter Trees for Managing Spatial Data over a Range of Size Granularities. In: Proceedings of the 22nd

International Conference on Very Large Data Bases. VLDB '96. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1996, S. 16 27 (siehe S. 75).

[Sko04]

Tomá² Skopal.  Pivoting M-tree: A metric access method for ecient similarity search. In: Proceedings of the Dateso 2004 Annual Interna-

tional Workshop on Databases, Texts, Specications and Objects. Hrsg. von Václav Snásel, Pokorný Jaroslav und Karel Richta. Bd. 98. DATESO '04.

VSB-Technical University of Ostrava, 04/2004,

S. 2737

(siehe S. 34, 75).

[SL08]

Tomá² Skopal und Jakub Loko£.

 NM-Tree: Flexible Approximate

Similarity Search in Metric and Non-metric Spaces.

In: Proceedings

of the 19th International Conference on Database and Expert Systems Applications. DEXA '08. Turin, Italy: Springer-Verlag, 2008, S. 312 325 (siehe S. 75).

[SRF87]

Timos K. Sellis, Nick Roussopoulos und Christos Faloutsos.  The R+Tree: A Dynamic Index for Multi-Dimensional Objects. In: Proceedings

of the 13rd International Conference on Very Large Data Bases. VLDB

94

Literatur

'87. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1987, S. 507518 (siehe S. 4, 17 f., 40, 43, 75).

[SW88]

Hans-Werner Six und Peter Widmayer.  Spatial Searching in Geometric Databases. In: Proceedings of the 4th International Conference on

Data Engineering. ICDE '88. Washington, DC, USA: IEEE Computer Society, 1988, S. 496503 (siehe S. 75).

[Tam82]

Markku Tamminen.  The extendible cell method for closest point problems. In: BIT Numerical Mathematics 22.1 (1982), S. 2741 (siehe S. 75).

[TKB+12]

Thomas Thüm, Christian Kästner, Fabian Benduhn, Meinicke Jens, Gunter Saake und Thomas Leich.  FeatureIDE: An extensible framework for feature-oriented software development. In: Science of Com-

puter Programming (2012), pages (siehe S. 46). [TTS+00]

Caetano Traina Jr., Agma J. M. Traina, Bernhard Seeger und Christos Faloutsos.

 Slim-Trees: High Performance Metric Trees Minimi-

zing Overlap Between Nodes. In: Proceedings of the 7th International

Conference on Extending Database Technology: Advances in Database Technology.

EDBT '00.

London, UK, UK: Springer-Verlag, 2000,

S. 5165 (siehe S. 75).

[TYS+10]

Yufei Tao, Ke Yi, Cheng Sheng und Panos Kalnis.

 Ecient and ac-

curate nearest neighbor and closest pair search in high-dimensional space.

In: ACM Transactions on Database Systems 35.3 (07/2010),

20:120:46 (siehe S. 75).

[Uhl91a]

Jerey K. Uhlmann.

 Metric trees.

In: Applied Mathematics Letters

4.5 (1991), S. 6162 (siehe S. 75).

[Uhl91b]

Jerey K. Uhlmann.  Satisfying general proximity / similarity queries with metric trees.

In: Information Processing Letters

40.4 (1991),

S. 175179 (siehe S. 75).

[Van90]

P.J.M. Van Oosterom.

 Reactive Data Structures for Geographic In-

formation Systems. Dissertation. 1990 (siehe S. 75).

[Vil95]

Juan Miguel Vilar.  Reducing the overhead of the AESA metric-space nearest neighbour searching algorithm.

In: Information Processing

Letters 56.5 (12/1995), S. 265271 (siehe S. 13, 75). [VTC+05]

Marcos R. Vieira, Caetano Traina, Fabio J.T. Chino und Agma J.M. Traina.  DBM-Tree: Trading height-balancing for performance in metric access methods.

In: Journal of the Brazilian Computer Society

11.3 (2005), S. 3751 (siehe S. 75).

Literatur

[WB97a]

95

Roger Weber und Stephen Blott. A Simple Vector-Approximation File

for Similarity Search in High-Dimensional Vector Spaces. Technischer Bericht. 24.

ESPRIT project HERMES (no. 9141).

10/1997

(siehe

S. 27 f., 38, 75).

[WB97b]

Roger Weber und Stephen Blott. An Approximation Based Data Struc-

ture for Similarity Search.

Technischer Bericht. 24.

ESPRIT pro ject

HERMES (no. 9141). 10/1997 (siehe S. 27, 41 ., 75).

[Web97]

Roger Weber. Parallel VA-File. Technischer Bericht. ESPRIT pro ject HERMES (no. 9141). 1997 (siehe S. 75).

[WFC09]

Jie Wang, Zheng Fang und Cindy Chen.

The PL-Tree: A Fast High-

Dimensional Access Method for Range Queries.

Technischer Bericht.

2009 (siehe S. 75).

[WHL98]

Shuanhu Wang, Joseph M. Hellerstein und Ilya Lipkind. Near-Neighbor

Query Performance in Search Trees. 1012.

Technischer Bericht. CSD-98-

EECS Department, University of California, Berkeley, 09/1998

(siehe S. 39, 43).

[WJ96a]

David A. White und Ramesh Jain.

 Similarity Indexing: Algorithms

and Performance. In: Storage and Retrieval for Image and Video Da-

tabases. SPIE '96. 1996, S. 6273 (siehe S. 24, 75). [WJ96b]

David A. White und Ramesh Jain.  Similarity Indexing with the SStree.

In: Proceedings of the 12nd International Conference on Data

Engineering. ICDE '96. Washington, DC, USA: IEEE Computer Society, 1996, S. 516523 (siehe S. 24 f., 39, 42 f., 75).

[WK85]

K.-Y. Whang und R. Krishnamurthy. Multilevel grid les. Technischer Bericht RC11516. 1985 (siehe S. 75).

[WSB98]

Roger Weber, Hans-Jörg Schek und Stephen Blott.

 A Quantitati-

ve Analysis and Performance Study for Similarity-Search Methods in High-Dimensional Spaces. In: Proceedings of 24th International Con-

ference on Very Large Data Bases.

Hrsg. von Ashish Gupta, Oded

Shmueli und Jennifer Widom. VLDB '98. Morgan Kaufmann Publishers Inc., 08/1998, S. 194205 (siehe S. 13, 27 f., 38, 43, 75).

[WZK06]

Haojun Wang, Roger Zimmermann und Wei-Shinn Ku.

 Distributed

Continuous Range Query Processing on Moving Objects.

In: Pro-

ceedings of the 17th international conference on Database and Expert Systems Applications.

DEXA '06.

Kraków, Poland: Springer-

Verlag, 2006, S. 655665 (siehe S. 25).

[YH10]

Lihong Ye und Yuan Hua.  The CMVAI-File: An Ecient ApproximationBased High-Dimensional Index Structure. In: Proceedings of the 2010

International Conference on Multimedia Information Networking and

96

Literatur

Security. MINES '10. Washington, DC, USA: IEEE Computer Society, 2010, S. 710713 (siehe S. 75).

[Yia93]

Peter N. Yianilos.  Data structures and algorithms for nearest neighbor search in general metric spaces.

In: Proceedings of the 4th Annual

ACM-SIAM Symposium on Discrete Algorithms. SODA '93. Austin, Texas, USA: Society for Industrial und Applied Mathematics, 1993, S. 311321 (siehe S. 75).

[YOT+01]

Cui Yu, Beng Chin Ooi, Kian-Lee Tan und Hosagrahar V. Jagadish.  Indexing the Distance: An Ecient Method to KNN Processing. In:

Proceedings of the 27th International Conference on Very Large Data Bases.

VLDB '01.

San Francisco, CA, USA: Morgan Kaufmann

Publishers Inc., 2001, S. 421430 (siehe S. 38 f., 42).

[YVD95]

Qi Yang, Asha Vellaikal und Son Dao.  MB+-tree: a new index structure for multimedia databases. In: International Workshop on Multi-

Media Database Management Systems. 1995, S. 151158 (siehe S. 75). [YZ12]

Simin You und Jianting Zhang.

GPU-based Batched Spatial Query

Processing on R-Trees. Technischer Bericht. CUNY Graduate Center, 2012 (siehe S. 34, 43).

[ZAD+06]

Pavel Zezula, Giuseppe Amato, Vlastislav Dohnal und Michal Batko.

Similarity Search: The Metric Space Approach.

Bd. 32.

Advances in

Database Systems. Springer-Verlag, 2006 (siehe S. 34).

[ZOT04]

Rui Zhang, Beng Chin Ooi und Kian-Lee Tan.  Making the Pyramid Technique Robust to Query Types and Workloads.

In: Proceedings

of the 20th International Conference on Data Engineering. ICDE '04. Washington, DC, USA: IEEE Computer Society, 2004,

S. 313324

(siehe S. 38 f., 41 f., 75).

[ZWY+03]

Xiangmin Zhou, Guoren Wang, Jerey Xu Yu und Ge Yu.  M+-tree: a new dynamical multidimensional index for metric spaces.

In: Pro-

ceedings of the 14th Australasian Database Conference - Volume 17. ADC '03. Adelaide, Australia: Australian Computer Society, Inc., 2003, S. 161168 (siehe S. 75).

[ZWZ+05]

Xiangmin Zhou, Guoren Wang, Xiaofang Zhou und Ge Yu.

 BM+-

Tree: A Hyperplane-Based Index Method for High-Dimensional Metric Spaces.

In: Database Systems for Advanced Applications.

Lizhu Zhou, BengChin Ooi und Xiaofeng Meng.

Hrsg. von

Bd. 3453.

Lecture

Notes in Computer Science. Springer Berlin Heidelberg, 2005, S. 398 409 (siehe S. 75).

Hiermit erkläre ich, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Magdeburg, den 17.05.2013