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++