Prof. Dr. h.c. mult. Hasso Plattner

Query Plan Optimizations for In-Memory Databases


In the current term, we are offering the “Build your own Database” seminar in which students build their own in-memory database. Some components are already completed, such as the storage layer, the compression, and some operators. Student groups are currently building other parts. By the end of the term, we expect to have the features that are needed to execute most query plans.

However, users usually do not write query plans by hand but use a descriptive language such as SQL. A query written in SQL can be represented by many different query plans. Choosing a suitable query plan is vital for a high-performance database. For example, deciding which table is on the left and which is on the right side of a join can make a huge difference.

In this project, you will build the components needed for parsing SQL and building query plans from it. As part of the journey, you will have the opportunity to deepen your database knowledge, improve your programming skills and actively influence the architecture of a complex system.

Project Goals

1. Evaluate existing research in SQL parsing and query optimization

2. Write a new SQL parser or adapt an existing one

3. Develop an optimizer that builds efficient query plans by utilizing database statistics

4. Execute the TPC-C, -H, and CH-Benchmarks with efficient query plans

Technology & Skills

We will extend the existing C++(1z) code base that has been developed from scratch in WS 16/17. As such, solid knowledge of C++ is required. You can check out the code at https://gitlab.hpi.de/OpossumDB/OpossumDB.

Prior understanding of the fundamentals of databases (e.g., from the Datenbanksysteme lecture, the Trends and Concepts online class, or the Build your own Database seminar) is expected by the begin of the project.


You are welcome to visit us in the “Villa” or reach out to one of the contacts listed below.


Dr. Matthias Uflacker

Markus Dreseler

Jan Koßmann