Abstract

ElVoidDB is a lightweight C++17 database engine designed for educational use and simple key–value workloads. It shows the basic parts of a database: storage, buffer pool, concurrency, and SQL parsing.

Why I Built This

This database is mainly inspired by my CSE 562 Database Systems class and by TacoDB. My goal is to build a real working database from scratch. I built it step by step as I learned the class concepts and saw how TacoDB is structured.

Project Goal

Architecture

The system has these layers:

  1. Parser & Planner – turns SQL text into an AST
  2. Execution Engine – runs commands from the AST
  3. Storage Manager – reads/writes 4 KB pages
  4. Buffer Pool – caches pages and flushes them in the background
  5. Concurrency & Logging – simple async I/O threads

Folder Structure

ElVoidDB/
  β”œβ”€ include/
  β”‚  β”œβ”€ Exceptions.hpp
  β”‚  β”œβ”€ Page.hpp
  β”‚  β”œβ”€ Storage.hpp
  β”‚  β”œβ”€ BufferPool.hpp
  β”‚  β”œβ”€ ThreadPool.hpp
  β”‚  β”œβ”€ BackgroundFlush.hpp
  β”‚  β”œβ”€ Parser.hpp
  β”‚  β””─ Commands.hpp
  β””─ src/
     β”œβ”€ main.cpp
     β”œβ”€ Exceptions.cpp
     β”œβ”€ Page.cpp
     β”œβ”€ Storage.cpp
     β”œβ”€ BufferPool.cpp
     β”œβ”€ ThreadPool.cpp
     β”œβ”€ BackgroundFlush.cpp
     β”œβ”€ Parser.cpp
     β””─ Commands.cpp
& Run on Raspberry Pi 5 -->

Build & Run (Raspberry Pi 5, 8 GB)

Step Command
Create build dir mkdir build && cd build
Configure cmake ..
Compile cmake --build . -j4
Run CLI ./elvoiddb

API Reference

Performance Metrics

On a Raspberry Pi 5 (8 GB RAM, NVMe):

Roadmap