Datenbanksysteme II

Relationale Datenbank-Technologie verstehen
lernen


The Construction of a SASL Compiler

Projektpraktikum zur Vorlesung Software Engineering

Database Systems and Modern CPU Architecture Print

 

Link zum Campus LSF

Harddisk RAM

Offensichtlich spielt der effiziente Zugriff auf den Sekundärspeicher (Festplatten) für Datenbanksysteme ein Schlüsselrolle. Vielleicht nicht ganz so offensichtlich ist, daß Charakteristika moderner CPUs und Primärspeicher (RAM) die Performance von Datenbanksystemen mindestens ebenso bestimmen:

  1. Die RAM-Kapazität hat schon seit einiger Zeit Größenordnungen erreicht, die eine Verlagerung aller Datenbankoperationen von der Festplatte in den Hauptspeicher ermöglichen. Zugriffe wollen aber sorgfältig geplant sein: in der für einen Speicherzugriff benötigten Zeit kann eine moderne CPU bis zu 106 Instruktionen ausführen.
  2. Moderne, pipelined CPUs bieten weitreichende Möglichkeiten, die Ausführung von Datenbankoperationen zu parallelisieren. In spezifischen Situationen spekulieren CPUs gar über die Notwendigkeit, eine Instruktion auszuführen, um höheren Durchsatz zu erzielen.

Allerdings nutzen Datenbanksysteme und -algorithmen diese Vorteile moderner Rechnerarchitektur typischerweise nicht— im Gegenteil: Datenbanksysteme zeigen oft unterdurchschnittliche Performance.

In dieser Vorlesung analysieren wir diese modernen CPU-Architekturen (u.a. MIPS, Intel IA-32 und Itanium) und lernen eine Vielzahl von Verfahren kennen, die Datenbanksysteme — oder allgemein alle Programme, die eine Menge von Daten "schaufeln" — auf modernen CPUs und im Hauptspeicher richtig "auf Trab" bringen können.


Zeit und Ort


ZeitOrt
Vorlesung Mo, 10:15-11:45 Sand 6/7 großer Hörsaal
Übung Mi, 13:15-14:45 Sand 6/7 kleiner Hörsaal

 


Inhalte

  • Architektur moderner CPUs und die Speicherhierarchie
  • Pipelining und Parallelität auf CPU-Instruktionsebene
  • Cache-Speicher, TLB, assoziative Speicher
  • Sprungvorhersage in CPUs
  • Sequentieller und randomisierter Speicherzugriff
  • Speicherzugriffsmuster bei der Anfrageauswertung in RDBMS
  • Tuplespeicherung in relationalen DBMS (RDBMS)
  • Vertikal fragmentierte RDBMS und Anfrageauswertung
  • Cache-bewusste Datenbank-Algorithmen (z.B., Joins, Sortierung)
  • Hauptspeicherdatenbanksysteme
  • Kompression zur Datendurchsatzsteigerung

Folienskript

 

Kapitel PDF/Print/2upPDF/Screen/1upletztes
Update
0. Introduction and Motivation slides 27. April 2009
1. CPU Architeture and Instruction Sets slides 03. Mai 2009
2. Pipelining slides 09. Mai 2009
3. Branch Prediction slides 26. Mai 2009
4. Exploiting ILP with Software Approaches slides 26. Mai 2009
5. Pipelined Query Execution slides 14. Juni 2009
6. Memory Close to the CPU: Caches slides 5. Juli 2009
7. Cache-Aware Database System Internals slides 18. Juli 2009

 

Übungsaufgaben

Übungsblätter

Nr.AusgabeBesprechungÜbungsblattZusatzmaterial
1. 4.05.2009 6.05.2009 Übungsblatt 01 loop-swapping.c
1. 6.05.2009 13.05.2009 Übungsblatt 02
3. 13.05.2009 20.05.2009 Übungsblatt 03
4. 20.05.2009 10.06.2009 Übungsblatt 04
5. 10.06.2009 10.06.2009 Übungsblatt 05
6. 10.06.2009 17.06.2009 Übungsblatt 06
7. 17.06.2009 24.06.2009 Übungsblatt 07 MIL-Skripte + Daten
8.07.2009 X100 Analyse
8. 9.07.2009 15.07.2009 Übungsblatt 08

 

 

Materialien

Grundlage der Vorlesungsinhalte sind, neben dem Buch von Hennessy und Patterson Computer Architecture: A Quantitative Approach, die folgenden Forschungsarbeiten:

Dozenten

Prof. Dr. Torsten Grust und Jan Rittinger.