← Projects
RookieDB: a relational database engine
CS 186 · Java · Spring 2026
A database engine built from the storage layer up: B+ tree indices, four join strategies under a fixed buffer budget, a System R cost-based optimizer, multigranularity locking, and full ARIES crash recovery.
- B+ tree indices with node splitting and redistribution under a fixed fill factor.
- 4 join strategies: block nested loop, sort-merge, grace hash, plus external merge sort, all inside a fixed buffer-page budget.
- Cost-based optimizer, System R style: histogram selectivity estimation, then DP join ordering across passes.
- Multigranularity 2PL: lock manager, intent locks, escalation.
- ARIES recovery end to end: write-ahead log, 3 passes (analysis, redo, undo), compensation log records, fuzzy checkpointing.
Java · B+ trees · query optimization · 2PL · ARIES
Code for classes still running is kept private under Berkeley's academic-honesty policy. Happy to walk through it in person. ← Back to all projects