📊 Data Layouts and Execution Models

📍 EPFL – Master in Data Science, Year 2 (2026) 🔗 Code Repository: GitHub


This project focuses on building the core components of an in-memory database engine by implementing various data layouts and query execution models. The implementation stores all data in memory and relies on a simple memory allocation strategy for fixed-size records, bypassing the need for a buffer manager.

The system architecture is divided into two main components: data storage and query execution.

1. Data Layouts

The storage engine supports three distinct relational table layouts:

2. Execution Models

The query engine processes seven core relational operators: Scan, Select, Project, Sort, Limit, Aggregate, and HashInner Join. These operators are executed across three different processing models:


🛠 Tools & Libraries:

🧠 Techniques: