All projects

In progress

Baobab

A Postgres-like relational database, built from scratch in C++.

Overview

  • Building a relational database from the ground up, starting with a crash-safe storage layer: an append-only log with checksummed records. Compaction, a SQL parser and a query engine are next.

Features

Append-only log

Every write is appended and old data is never overwritten, so a crash can't corrupt it.

Checksummed records

Each record carries a CRC32, so torn or corrupted writes are caught on read.

Crash recovery

On startup the log is replayed front to back to rebuild the in-memory index.

Crash testing

A test kills the database mid-write and checks that every acknowledged write survived.

Built with

C++