25.07.2013 Aufrufe

Prof. Dr. Jens Dittrich - Universität des Saarlandes

Prof. Dr. Jens Dittrich - Universität des Saarlandes

Prof. Dr. Jens Dittrich - Universität des Saarlandes

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Über den (Un-)Sinn von<br />

Indexen in<br />

Informationssystemen<br />

Über mich.<br />

<strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong><br />

Lehrstuhl für Informationssysteme<br />

<strong>Universität</strong> <strong>des</strong> Saarlan<strong>des</strong><br />

http://infosys.cs.uni-sb.de


<strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong><br />

! Jahrgang 1972<br />

! 1993 - 1999: Studium in Marburg:<br />

Geographische Informationssysteme, <strong>Prof</strong>. Seeger<br />

! 1999 - 2002: Uni Marburg<br />

Promotion über effiziente Datenbankalgorithmen,<br />

Joinverfahren, XXL<br />

! 2003 - 2004: SAP AG:<br />

Data Warehousing und OLAP:<br />

verteilter, Hauptspeicherbasierter column-store<br />

! 2004 - 09/2008: ETH Zürich, Oberassistent im Bereich<br />

Informationssysteme, Systems Group, <strong>Prof</strong>. Kossmann<br />

! Seit 1. Oktober 2008 in Saarbrücken<br />

Lehrstuhl für Informationssysteme<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Informationssysteme.<br />

3


1. April 2005<br />

Beispiele für Informationssysteme<br />

! Suchmaschinen (Google et.al.)<br />

! Kartendienste/Routenplaner (GIS, google maps, 2D, 3D, 4D)<br />

! Dateisysteme (Mac, Linux, Windows)<br />

! Verkehrsinformationssysteme<br />

(Luftraum- und Fahrzeugüberwachung)<br />

! PIM-Tools (Handy, iPhone, subnotebook, Musikanlage, etc.)<br />

! Soziale Netzwerke (Facebook, LinkedIn, Orkut, etc.)<br />

! Data Warehouse Systeme (Datenbank von Datenbanken)<br />

! Multimedia Datenbanken (Bilder, Musik, Video, Sprache)<br />

! Streaming Engines (Stock ticks, Satellitendaten)<br />

! digitale Bibliotheken<br />

! Datenbanksysteme (relational, OO, XML, ...)<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

!<br />

6


“Datenbanksysteme“ (DBMS)<br />

! der Begriff „Datenbanksysteme“ ist sehr eng gefaßt<br />

! ein „Datenbanksystem“ hat folgende Eigenschaften<br />

! Speichern von Daten, volle Kontrolle über die Daten<br />

! Unterstützung der deklarativen Anfragesprache SQL<br />

! ein pull-basiertes Anfragemodell<br />

! Unterstützung von Transaktionen: ACID<br />

! allerdings gibt es eine Vielzahl von<br />

Datenmanagementanwendungen, die diese Eigenschaften<br />

nicht benötigen<br />

! für diese Anwendungen ist ein DBMS nicht die beste Lösung<br />

! <strong>des</strong>wegen macht es Sinn von dem weiter gefaßten Begriff<br />

„Informationssysteme“ zu sprechen<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Über den Sinn von Indexen.<br />

7


Grundproblem<br />

! Benutzer schickt eine Anfrage an das Informationssystem<br />

! Informationssystem soll Antworten möglichst schnell liefern<br />

! am besten im Millisekundenbereich<br />

! Kernproblem: Wie kann ich eine beliebige Anfrage<br />

beantworten auf beliebig großen Datenmengen?<br />

!Gigabytes (10 9 Byte)?<br />

Beispiel: mein Laptop, Bankanwendung, Univerwaltung<br />

!Terabytes (10 12 Byte)?<br />

Beispiel: Unternehmensdatenbank, Google Earth, Youtube<br />

!Petabytes (10 15 Byte)?<br />

Beispiel: Yahoo, Google<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Gigabyte<br />

Terabyte<br />

Petabyte<br />

1. April 2005<br />

9


Facetten <strong>des</strong> Problems<br />

!Gigabytes (10 9 Byte)?<br />

! Beispiel Laptop:<br />

! alle Dokumente, in denen die Phrase “windows ist doof“<br />

vorkommt<br />

! alle Dateien, die gestern geändert wurden<br />

! alle pdf Dokumente über 1M die 2008 erstellt wurden<br />

! Beispiel Bankanwendung:<br />

! aktueller Kontostand<br />

! Überweisung, Abbuchung<br />

! Zinsgutschrift<br />

! Entdeckung „auffälliger“ Konten (Kreditkartenmißbrauch, etc.)<br />

! Beispiel Univerwaltung:<br />

! Eintrag eines neuen Studierenden<br />

! Anzahl der Studierenden an der <strong>Universität</strong> <strong>des</strong> Saarlan<strong>des</strong><br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Facetten <strong>des</strong> Problems<br />

!Terabytes (10 12 Byte)?<br />

! Beispiel Unternehmensdatenbank:<br />

! Umsatz <strong>des</strong> letzten Quartals<br />

! alle Aufträge für Kunde Müller<br />

! Bestand <strong>des</strong> Warenlagers XY<br />

! Durchschnittsgehalt aller Mitarbeiter<br />

! Beispiel Google Earth:<br />

! Wo befindet sich Saarbrücken?<br />

! Welche Städte befinden sich in der Nähe von Saarbrücken?<br />

! Wie fahre ich von Saarbrücken nach Metz?<br />

! Beispiel: Youtube<br />

! welche Videos gibt es zu „Led Zeppelin“?<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

11<br />

12


Facetten <strong>des</strong> Problems<br />

!Petabytes (10 15 Byte)?<br />

! Beispiel Yahoo und Google:<br />

! gib mir die wichtigsten Webseiten zu „Saarbrücken Informatik“<br />

! zeig mir alle Bilder zum Thema „Sonnenblume“<br />

! zeig mir die neusten Nachrichten zum Thema “Barack Obama“<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Facetten der Lösungen<br />

! Ziel: effiziente Suche in beliebig großen Datenmengen<br />

! zur Lösung all dieser Probleme spielen Indexe eine<br />

herausragende Rolle<br />

! Index = Datenbanklingo für Datenstruktur/Indexstruktur<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

13<br />

14


Über den Sinn von Indexen.<br />

Was ist ein Index?<br />

Grundidee eines Index<br />

! Abbildung: Schlüssel Menge von Einträgen<br />

! Beispiel:<br />

ein Index materialisiert diese Abbildung!<br />

! Immatrikulationsnummer -> persönliche Daten <strong>des</strong> Studierenden<br />

! Städtename -> geographische Region, in der sich diese Stadt<br />

befindet<br />

! Stichwort -> alle Webseiten, die dieses Stichwort enthalten<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

16


Indexierung in Google Maps<br />

! Index:<br />

...<br />

uni saarbrücken -><br />

! sll=49.239793,7.000179<br />

! ll=49.254921,7.040198<br />

uni whatever -> ...<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de 17<br />

Indexierung in (ohne Ranking)<br />

document IDs<br />

! Invertierte Liste:<br />

...<br />

jens -> (42,{3,500,900,1000}),<br />

(88,{3,300}),<br />

(4025,{1,20,5000}),<br />

dittrich -> (12,{2,450,600}),<br />

(78,{1,4300,7000}),<br />

(2123,{30}),<br />

uni -> (15,{2,450,600}),<br />

(19,{11,100,2000}),<br />

(77,{16,1200,2000}),<br />

(345,{17,300,5000}),<br />

(2123,{30}),<br />

...<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Vorkommnisse<br />

Stichwort “uni“ ist<br />

vorhanden in Dokument<br />

15 an den Positionen 2,<br />

450 und 600<br />

18


Wie implementiert man binäre Suche?<br />

! sortiertes array, dann binär suchen<br />

! O(N log N) Kosten fürs Sortieren<br />

! was passiert, wenn ich einen neuen Datensatz einfüge?<br />

! binärer Suchbaum, am besten balanciert (AVL oder rotschwarz<br />

Baum)<br />

! binäre Suchbäume sind für DBMS ungeeignet<br />

! zu hoher Speicherverbrauch<br />

! schwer abzubilden auf Externspeicher (Flash, Festplatten)<br />

! zuviele Cache Misses<br />

! zu langsam<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Wie implementiert man binäre Suche?<br />

! B + -Baum:<br />

! wichtigste Indexstruktur im Bereich Informationssysteme<br />

! extrem vielseitig<br />

! balanciert<br />

! selbst im Hauptspeicher um Faktor 5 schneller als rot-schwarz<br />

Baum von Java 6!!!<br />

! cache-optimierter B + -Baum um weiteren Faktor 2 und mehr<br />

schneller<br />

! invertierte Listen<br />

! wichtigste Indexstruktur im Bereich Text- und Graphdatenbanken<br />

! viele Indexprobleme hierauf abbildbar<br />

! viele weitere Indexstrukturen für Spezialfälle<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

21<br />

22


Trade-offs von Indexen<br />

! Vorteile<br />

! Performancegewinn für Anfragen<br />

! höherer Durchsatz<br />

! weniger Hardware notwendig<br />

! Nachteile<br />

! Implementierungsaufwand<br />

(eventuell Einbau in bestehen<strong>des</strong> System)<br />

! Einpflegen von Datenänderungen<br />

! mehr Aufwand bei Anfrageoptimierung<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Quintessenz: Der Sinn von Indexen<br />

! super:<br />

wir brauchen also für ein gegebenes<br />

Datenmanagementproblem nur den passenden Index<br />

finden!!!<br />

! oder?<br />

! Nein, das ist leider völlig falsch.<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

23<br />

24


Über den Unsinn von Indexen.<br />

Einleitung<br />

! es gibt Szenarien, für die es keine geeigneten Indexe gibt<br />

! bzw. gibt es Indexe, aber diese Indexe sind langsamer als<br />

eine lineare Suche...<br />

! Beispiele<br />

! Sequentieller vs. Zufälliger Zugriff<br />

! Relationales Data Warehousing<br />

! Multi-dimensionales Data Warehousing<br />

! Ähnlichkeitssuche auf Bildern<br />

! Trade-offs von Indexen<br />

! KISS und KIWI<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

26


Festplatten<br />

Virtuelle Spuren<br />

Platten<br />

Sektor<br />

Achse<br />

Festplattenkopf<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Sequentieller vs. Zufälliger Zugriff<br />

! Experiment<br />

Lese 1000 Blöcke der Größe 8 KB<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Arm<br />

(u: Transferrate in MB, k: Anzahl der überquerten Spuren)<br />

! sequentielles Lesen:<br />

tseq = avg(ts) + tr/2 + k*min(ts) + 1000 * 8 KB/u<br />

! zufälliges Lesen:<br />

trandom = 1000 * (avg(ts) + tr/2 + ttr)<br />

27<br />

28


Sequentieller vs. Zufälliger Zugriff<br />

! Experiment<br />

Lese 1000 Blöcke der Größe 8 KB<br />

zufällig<br />

sequentiell<br />

Faktor<br />

Konsequenzen:<br />

1970 2007 Verbesserung<br />

48 275 ms 6 000 ms 8,0<br />

10 315 ms 70 ms 147,4<br />

4,7 85,7<br />

! Werden mehr als 1/85,7= 1,1% der Blöcke gelesen,<br />

lohnt es sich die gesamte Datei zu lesen!!!<br />

! 1970 war dieser Faktor wesentlich größer: 21.3%.<br />

Wichtiges Design-Kriterium für Indexstrukturen!<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Data Warehousing<br />

! Beispiel Unternehmensdatenbank:<br />

! Umsatz <strong>des</strong> letzten Quartals<br />

! alle Aufträge für Kunde Müller<br />

! Bestand <strong>des</strong> Warenlagers XY<br />

! Durchschnittsgehalt aller Mitarbeiter<br />

! Dies sind Anfragen mit geringer Selektivität<br />

! => eine große Zahl von Datensätzen muss berücksichtigt<br />

werden<br />

! => Indexierung lohnt nicht (immer)<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

29<br />

30


Data Warehousing<br />

! Lösung: nahezu vollständiger Verzicht auf Indexe<br />

! Anfragebearbeitung: alle Einträge werden linear gelesen<br />

! Aber es werden zahlreiche Tricks benutzt:<br />

! Vertikale Partitionierung/column stores<br />

- es wird versucht, nur diejenigen Attribute zu lesen die relevant sind<br />

- dafür werden die Tabellen in Spalten aufgeteilt<br />

! Komprimierung<br />

- Daten werden komprimiert gehalten, um die Lesekosten zu verringern<br />

! Parallelität<br />

- die Anwendung wird auf Dutzende bis Hunderte Cores verteilt<br />

! Hauptspeicher<br />

- wenn möglich werden alle Daten im Hauptspeicher gehalten<br />

! Das ist immer noch “lineare Suche“ mit O(N) Komplexität.<br />

! Aber: die Konstante für die einzelne Operation ist extrem gering.<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Produktbeispiele<br />

! Sybase IQ (seit frühen 90ern)<br />

! Applix<br />

! Monet DB (Hauptspeicher)<br />

! SAP BI Accelerator (Hauptspeicher)<br />

! Vertica (Hauptspeicher)<br />

! ParAccel Analytic<br />

! Exasol<br />

! ...<br />

! Effekt: Schranken für maximale Laufzeit einer Anfrage<br />

werden möglich.<br />

! Milliarden-Euro Markt...<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

31<br />

32


Multi-Dimensionales Data Warehousing<br />

! anderer Lösungsansatz:<br />

vielleicht gibt es doch geeignete Indexe<br />

! wir dürfen halt kein relationales DBMS nehmen!!<br />

! sonder ein multi-dimensionales!<br />

! => MOLAP (multi-dimensionales OLAP)<br />

! einige Industrieprodukte<br />

! z.b. Microsoft Analysis Services<br />

! sehr viele Vorschläge in der Literatur<br />

! z.B. Dwarf Index<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

A Glimpse on a Dwarf<br />

! Problem: D-dimensional fact table F<br />

Example<br />

Fact Table F<br />

! Required: Efficient aggregate query processing on F<br />

- Example queries: (Store,* , *), (*, *, Product), etc.<br />

! Core idea of a Dwarf:<br />

! materialize all possible aggregates of F at index time<br />

! Effect: at query time only need to look-up precalculated results in the Dwarf<br />

Example<br />

Dwarf<br />

Store<br />

Customer<br />

Product<br />

Price<br />

2 *<br />

70 70<br />

1 2 *<br />

2 3 * (6) 1 * (8) 1 2 3 *<br />

1 *<br />

40 40<br />

1 2 *<br />

40 70 110<br />

1 2 *<br />

90 50 140<br />

1 2 *<br />

130 120 250<br />

VLDB 2008, August 26 <strong>Jens</strong> <strong>Dittrich</strong> / ETH Zurich -> Saarland University Dwarfs in the Rearview Mirror<br />

Store<br />

Customer<br />

(2)<br />

(3) (4) (5)<br />

1 2<br />

2 3 1<br />

(1)<br />

(7)<br />

3 dimensions: Store, Customer,<br />

Product<br />

1 measure: Price<br />

(9)<br />

L=1<br />

L=2<br />

L=3<br />

33<br />

34


Index Storage Size [MB]<br />

Comparing with SIGMOD‘02 (3/3)<br />

! Experiment:<br />

! 250,000 tuples in fact table<br />

! however: scale up to 20 dimensions and not only 10 as in SIGMOD‘02<br />

! Results:<br />

9000<br />

8000<br />

7000<br />

6000<br />

5000<br />

4000<br />

3000<br />

2000<br />

1000<br />

Dwarf Uniform<br />

Dwarf 80-20<br />

Dwarf Zipf<br />

Fact Table<br />

0<br />

4 6 8 10 12 14 16 18 20<br />

#Dimensions<br />

Index Construction Time Time [sec] [sec]<br />

! Dwarf works well for less than 10 dimensions<br />

! above 10 dimensions and skewed data<br />

Dwarf index becomes hard to control<br />

0<br />

4 6 8 10 12 14 16 18 20<br />

VLDB 2008, August 26 <strong>Jens</strong> <strong>Dittrich</strong> / ETH Zurich -> Saarland University Dwarfs in the Rearview Mirror<br />

1600<br />

1400<br />

1200<br />

1000<br />

800<br />

600<br />

400<br />

200<br />

Dwarf Uniform<br />

Dwarf 80-20<br />

Dwarf Zipf<br />

Ähnlichkeitssuche auf Bildern<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

#Dimensions<br />

confirms results<br />

additional results<br />

! hoch-dimensionale Daten treten auch auf bei der<br />

Ähnlichkeitssuche auf Bildern<br />

! was ist der geeignete Index?<br />

35<br />

36


VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 2 of 62<br />

The Similarity Search Paradigm – 1<br />

1. April 2005<br />

1. April 2005<br />

?<br />

locate similar images in<br />

large image collection<br />

... ...<br />

Stephen Blott and Roger Weber<br />

VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 3 of 62<br />

The Similarity Search Paradigm – 2<br />

image space<br />

18<br />

24<br />

87<br />

129<br />

43<br />

8<br />

212<br />

85<br />

199<br />

76<br />

83<br />

21<br />

210<br />

87<br />

9<br />

45<br />

72<br />

14<br />

9<br />

153<br />

78<br />

42<br />

90<br />

91<br />

139<br />

8<br />

4<br />

120<br />

121<br />

85<br />

67<br />

10<br />

9<br />

15<br />

89<br />

100<br />

feature space<br />

77<br />

52<br />

14<br />

13<br />

139<br />

14<br />

87<br />

90<br />

12<br />

Stephen Blott and Roger Weber


VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 4 of 62<br />

The Similarity Search Paradigm – 3<br />

1. April 2005<br />

1. April 2005<br />

query object<br />

d!dimensional feature space<br />

NN<br />

NN!<br />

dist<br />

Locate closest point to query object, i.e. its nearest neighbour (NN)<br />

Stephen Blott and Roger Weber<br />

VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 5 of 62<br />

The Similarity Search Paradigm – 4<br />

This search paradigm is not restricted to images<br />

Other examples include:<br />

• music databases, video databases<br />

• medical information systems, genomic databases<br />

• 3D object recognition<br />

• . . .<br />

Stephen Blott and Roger Weber


VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 9 of 62<br />

So many methods . . . it has to be difficult!<br />

1. April 2005<br />

1. April 2005<br />

Quad trees [Finkel:1974]<br />

R-tree [Guttman:1984]<br />

R + -tree [Sellis 1987]<br />

R ∗ -tree [Beckmann:1990]<br />

Vp-tree [Chiueh:1994]<br />

UB-tree [Evangelidis:1995]<br />

SS-tree [White:1996]<br />

M-tree [Ciaccia:1996]<br />

Pyramid [Berchtold:1998]<br />

DABS-tree [Böhm:1999]<br />

Slim-tree [Faloutsos:2000]<br />

P-Sphere-tree [Goldstein:2000]<br />

K-d-b-tree [Robinson:1981]<br />

Gridfile [Nievergelt:1984]<br />

LSD-tree [Henrich:1989]<br />

hB-tree [Lomet:1990]<br />

TV-tree [Lin:1994]<br />

hB-Pi-tree [Bayer:1996]<br />

X-tree [Berchtold:1996]<br />

SR-tree [Katayama:1997]<br />

Hybrid-tree [Chakrabarti:1999]<br />

IQ-tree [Böhm:2000]<br />

landmark file [Böhm:2000]<br />

A-Tree [Sakurai:2000]<br />

Unfortunately,<br />

as dimensionality increases, these methods become ineffective:<br />

• the so-called curse of dimensionality . . . why?<br />

Stephen Blott and Roger Weber<br />

VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 11 of 62<br />

Oddity 1<br />

A simple clustering scheme:<br />

cluster into regions created by partitioning all dimensions<br />

This seems reasonable with two or three dimensions<br />

But with d = 100 there are 2 100 ≈ 10 30 regions:<br />

even with billions of points, almost all of the regions are empty<br />

Stephen Blott and Roger Weber


VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 12 of 62<br />

Oddity 2<br />

1. April 2005<br />

1. April 2005<br />

Consider a really big square search region of size s, say s =0.95:<br />

data space<br />

target region<br />

0.95<br />

But with d = 100:<br />

probability of a point being in this region is 0.95 100 ≈ 0.0059<br />

1.0<br />

Stephen Blott and Roger Weber<br />

VLDB 2008 – What’s Wrong with High-Dimensional Similarity Search? 19 of 62<br />

Analysis – Probability of Visiting a Region – Hyper-Rectangles<br />

Prob. of visiting a block<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0 ←− number of dimensions −→ 60<br />

0<br />

0 10 20 30<br />

Number of dimensions (d)<br />

40 50 60<br />

Stephen Blott and Roger Weber


KISS und KIWI<br />

! KISS: “keep it simple and stupid“<br />

! falls Performance der linearen Suche ausreicht<br />

=> warum einen Index bauen?<br />

! lineare Suche extrem leicht zu warten<br />

! zum Vergleich: Aufwand zum Warten von Indexen => Manpower<br />

=> Kosten?<br />

! KIWI: “kill it with iron“<br />

! falls Performance nicht OK => mehr CPUs/Hauptspeicher/<br />

Festplatten kaufen<br />

! die Kosten für zusätzliche Hardware sind oft vernachlässigbar<br />

gegenüber den Kosten für Manpower<br />

! allerdings ein Nachteil: Kosten für Strom und Kühlung<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

! Intel Core 2 Duo, 2.53 GHz<br />

! nur ein Core genutzt<br />

! Java 6<br />

! selbst 100 M brauchen weniger als 0.12 Sekunden<br />

1. April 2005<br />

45


Forschungsthemen.<br />

Information Systems Group.<br />

MOVIES.


Moving objects (Autos, Flugzeuge, Schiffe)<br />

! erinnern Sie sich an den Film “The Fifth Element“?<br />

! Sicherheitsüberwachung (Distanz zu anderen Fahrzeugen)<br />

! Unfallvermeidung (virtuelle und dynamische Straßen)<br />

! Maut<br />

! Geschwindigkeitskontrolle<br />

! wie macht man das mit 58 Millionen Fahrzeugen in D?<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Anwendungen<br />

! car tracking<br />

! airplane surveillance (3D, 4D)<br />

! mobile phone tracking<br />

! emergency services (e.g., enhanced 911)<br />

! social networking (e.g. Loopt)<br />

! gaming engines/virtual worlds<br />

(in three dimensions)<br />

! etc.<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

49<br />

50


Indexierung eines „Bienenschwarms“<br />

! Wie verhalten sich Indexe<br />

bei einer großen Anzahl von<br />

Änderungsoperationen?<br />

! Beispiel: ca. 55 Millionen<br />

Fahrzeuge in Deutschland<br />

! Ziel: indiziere aktuelle<br />

Position aller Fahrzeuge<br />

! Anfragen: Welche<br />

Fahrzeuge befinden sich in<br />

einer bestimmten Region in<br />

5 Minuten?<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

MOVIES<br />

! MOVIES: MOVing Object Indexing using frEquent Snapshots<br />

! Kernidee: Filmkamera-Analogie<br />

! es ist unmöglich kontinuierliche Bewegung mit einer Kamera zu<br />

erfassen<br />

! <strong>des</strong>wegen schießen Filmkameras eine Serie statischer Bilder<br />

! 24 oder 25 Bilder pro Sekunde (Bildwiederholrate)<br />

! Anzahl der Bilder überschreitet Trägheit <strong>des</strong> menschlichen Auges<br />

! <strong>des</strong>halb: Illusion einer kontinuierlichen Bewegung entsteht<br />

! wir wenden dieselbe Idee auf Indexe an<br />

! wir versuchen so viele statische Indexe wie möglich zu erzeugen<br />

! solange die Indexwiederholrate hoch ist, entsteht die Illusion<br />

eines aktuellen Index<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

51<br />

52


MOVIES<br />

F45<br />

F46<br />

F458<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

F459<br />

I44<br />

I46<br />

Experiments<br />

max update rate [# up./sec., log scale]<br />

1e+07<br />

U44 optional input<br />

U46<br />

build index<br />

optional input<br />

build index<br />

I45<br />

I45<br />

U45<br />

U45<br />

1e+06<br />

100000<br />

transfer limit<br />

binary search tree<br />

B+-tree<br />

Bx-tree<br />

MOVIES Aggregated NPI<br />

MOVIES Logged NPI<br />

100000 1e+06 1e+07<br />

index size [# elements, log scale]<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

queries<br />

updates<br />

queries<br />

updates<br />

53<br />

54


Flash.<br />

Flash Chips<br />

! market driven by cell phones, digital cameras, iPods, ...<br />

! persistent storage<br />

! yet no mechanical (moving) parts<br />

! small form factor<br />

! also replacement for floppy and tape<br />

! USB drives<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

56


Flash Chips<br />

! cost of a GB of flash versus DRAM<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Example: SSD - Solid State Disks<br />

! MTRON MSD-P Series with ATA 7 Standard Interface<br />

! Burst Read/Write: ! 133 MB/sec<br />

! Sustained Read: ! 100 MB/sec<br />

! Sustained Write: ! 80 MB/sec<br />

! IOPS:<br />

- (Sequential/Random): 76,000/16,000<br />

- Access Time: less than 0.1 msec<br />

! <strong>Dr</strong>awback: expensive<br />

! about X times more expensive than hard disks<br />

! But: price is expected to drop due to mass-market<br />

(factor 10 in 2012?)<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Source: http://www.mtron.net/eng/sub_eb11.asp<br />

(extended)<br />

approx. by a factor 100 (!)<br />

better than hard disks<br />

57<br />

58


Solution: Hybrid Approach<br />

! combination of hard disk and SSD<br />

! flash used as a disk cache<br />

! in contrast to volatile disk cache flash is persistent<br />

! Hybrid Storage Alliance<br />

! Fujitsu<br />

! Samsung<br />

! Seagate<br />

! Toshiba<br />

! Western Digital<br />

! Hitachi<br />

! see http://www.hybridstorage.org<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Flash as DRAM Replacement<br />

! problem: access to flash still limited by maximal disk interface<br />

bandwidth<br />

! how to fix this?<br />

! idea:<br />

! replace one of the CPUs by an additional memory controller<br />

! use one of the DRAM banks to put in flash banks (sic!)<br />

! effect:<br />

! reads as fast as DRAM<br />

! writes as slow as flash<br />

! persistent<br />

! much bigger readable memory available<br />

! hundreds of Gigabytes DRAM-fast memory on a single node!!!<br />

! good for read-intensive work-loads<br />

! a startup company in the US is doing this<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

59<br />

60


Parallelität.<br />

Motivation<br />

! why use only one CPU if we can use many?<br />

! goals:<br />

! improve throughput (number of queries/updates) handled<br />

! improve individual queries (time to compute a single query)<br />

! improve system availability<br />

! improvement linear to the number of CPUs<br />

! current trends:<br />

! hardware is getting cheaper<br />

! example: for a study 18 months ago we used<br />

- 2*Dual Core AMD Opteron 280<br />

(= 4 CPU cores on each machine running each at 2.4 GHz)<br />

- 6 GB of main memory on each machine<br />

- about 2K Euros per computing node<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

62


Motivation: Multi-Core Systems<br />

! CPU manufactors hit physical barriers:<br />

! clock rates may not be increased much further (heat problem)<br />

! chip structures hard to make smaller (physical barriers)<br />

! solution: improve performance by packing multiple CPUs on<br />

the same chip<br />

! current mainstream are dual-cores:<br />

! Intel Core 2 Duo (e.g., MacBook)<br />

! AMD Dual-Core Opteron<br />

! high-end server market already<br />

sees quad-cores:<br />

! Intel Xeon (since end of 2006)<br />

! AMD Quad-Core (September 2007)<br />

L1 cache<br />

L2 cache<br />

shared<br />

L3<br />

cache<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Motivation: Multi-Node Systems<br />

! used large number of independent<br />

machines<br />

! either<br />

! standard (<strong>des</strong>ktop) hardware (Google did this)<br />

! blade servers, i.e,<br />

- complete computer on a small blade<br />

- multiple bla<strong>des</strong> in a rack<br />

! relatively cheap<br />

! if used well, may provide tremendous<br />

performance boosts<br />

! For instance, assume<br />

! 16GB of main memory on each blade<br />

! each blade using at least a Quadcore CPU<br />

! =96 cores and 384 GB main memory<br />

24 bla<strong>des</strong><br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

AMD Quad-core<br />

blade rack<br />

63<br />

64


Motivation: GPU Data Processing<br />

! example: NVIDIA GeForce 9800 GTX<br />

! 128 cores on a single card!!<br />

! cores optimized for graphcs<br />

processing<br />

! however useful for other<br />

applications as well<br />

! price: 190 Euros<br />

(as of Jan 1, 2009)<br />

! so why not run the information system on the graphics card?<br />

! several ongoing research projects<br />

! programmable through CUDA:<br />

! http://en.wikipedia.org/wiki/CUDA<br />

! http://www.nvidia.com/object/cuda_sdks.html<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Motivation: GPU Data Processing<br />

! graphic vendors have also started selling general purpose<br />

high performance computing chips<br />

! not calling it GPUs anymore<br />

! recent example: NVIDIA Tesla<br />

! 240 cores per processor<br />

! up to 4 processors in a PC-sized system => 960 cores<br />

! 3.732 Teraflops<br />

! compare: my MacBook Pro, Intel Core 2 Duo, 2.53 GHz,<br />

is at 20 Gigaflops: this is by a factor 187 slower!!<br />

! under 10,000 $<br />

! see video at http://www.youtube.com/nvidiatesla<br />

! how to implement an information system on a 960 core<br />

machine?<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

65<br />

66


Fazit.<br />

! Indexstrukturen sind entscheidend, um ein<br />

Informationssystem performant zu machen.<br />

! es gibt allerdings zahlreiche Szenarien, in denen Indexe<br />

keinen Sinn machen<br />

! die gegenwärtige Hardwareentwicklung hat<br />

! Vorteile für Indexe:<br />

- Flash => zufälliger Zugriff um Faktor 100 schneller<br />

! Nachteile:<br />

- simples Scannen wird viel schneller besser als zufäliger Zugriff<br />

- dies gilt sowohl für Festplatten als auch für Hauptspeicher<br />

! Um ein Informationssystem effizient zu machen, ist es<br />

wichtig, die verschiedenen Trade-Offs zu verstehen.<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

Information Systems Group<br />

! Campus E1 1, Räume 220-223<br />

! http://infosys.cs.uni-sb.de<br />

! Stammvorlesung “Database Systems“:<br />

! besserer Name: “Fundamentals of Data Management“<br />

! min<strong>des</strong>tens je<strong>des</strong> zweite Wintersemester auf Englisch<br />

! Einführende Vorlesung “Informationssysteme“<br />

! je<strong>des</strong> Sommersemester auf Deutsch<br />

! Interesse and einer Bachelor- oder Masterarbeit?<br />

! Sprechen Sie mich an!<br />

Über den (Un-)Sinn von Indexen... <strong>Prof</strong>. <strong>Dr</strong>. <strong>Jens</strong> <strong>Dittrich</strong> / Information Systems Group / infosys.cs.uni-saarland.de<br />

67<br />

68

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!