This repo contains a bare-bones database implementation, which supports executing simple transactions in series. It contains support for B+ tree indices, efficient join algorithms, query optimization, multigranularity locking to support concurrent execution of transactions, and database recovery.
This database management system project contains four major topics:
In this project, I implemented B+ tree indices.
In this project, I implemented some join algorithms: block nested loop join, sort merge, and grace hash join. Also, a piece of a relational query optimizer: Plan space search.
In this project, I implemented the bottom layer (LockManager
) and lock types, the middle and top layer (LockContext
and LockUtil
) of multigranuarlarity locking.
In this project, I implemented write-ahead logging and support for savepoints, rollbacks, and ACID compliant restart recovery.
Look at here for configuration and files explanation.