Prof. Dr. Jens Dittrich - Universität des Saarlandes
Prof. Dr. Jens Dittrich - Universität des Saarlandes
Prof. Dr. Jens Dittrich - Universität des Saarlandes
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