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