Hasso-Plattner-Institut
Prof. Dr. Tilmann Rabl
 

Develop Your Own Database

Instructors

Martin Boissier, Daniel Lindner, Florian Schmeller, Prof. Dr. Felix Naumann, Prof. Dr. Tilmann Rabl

Description

This project seminar is split into two phases, a lecture and a project phase.

In the lecture phase (April 14 to June 09), we build a simple database from scratch and teach fundamental database components (e.g., storage, compression, operators), with a focus on in-memory technology. Those components are eventually implemented by each group independently in practical programming exercises. Getting started is eased by given interfaces and test cases. We deepen your understanding of C++, the overall architecture, and database knowledge with code reviews and by discussing different implementation ideas.

In the project phase (starting June 09), we concentrate on a single, more complex concept, which we will implement in our open-source research DBMS Hyrise. Each group will implement a sort operator, which handles ORDER BY statements and is an essential component for many higher-class operators (e.g., sort-merge joins, windows). As this operator is an integral part of Hyrise’s execution engine, you need to get familiar with the internals of a complex software system. We offer weekly consultations with the teaching staff in that period. You can profit from existing test cases (>90% test coverage) and benchmark suites.

As part of a performance challenge, each group’s sort operator is continuously benchmarked on a variety of server systems. A leaderboard will show each group’s performance.

This seminar is a perfect choice if you want to:

  • understand how modern main-memory databases work,
  • collect experience in the development of complex and high-performance systems,
  • improve your C++ knowledge, and
  • work in a smaller group as part of a large open-source software project.

This seminar also serves as a solid basis for ongoing work and research on database topics, e.g., in a master's project or thesis.

General Information

  • ECTS: 6 (graded)
  • Schedule: Weekly meetings on Mondays from 15.15 to 16.45
    • Introduction on April 07, 2025
    • Lecture phase from April 07 to June 09
    • Project phase from June 09 to August (to be finalized)
    • Final presentation: July 28 (to be finalized)
  • Room: L-1.02
    • Lecture moved: Please note that the first lecture on April 07 was moved to F-E.06.
    • Zoom: We will stream the first lecture via Zoom.
      • https://uni-potsdam.zoom-x.de/j/6844676967
      • Meeting ID: 684 467 6967
      • Passcode: 84957693
  • Enrolment deadline: April 20 (please form groups until April 13, 2025)
  • Course Language: English
  • Maximum number of participants: 12

More Information

For more information about the course, please visit the Moodle page.

Slides