This project is an open project from CMU15445. The goal is to develop a database kernel supporting basic SQL using C++. It is divided into four labs and requires passing 96 test cases.
- Implemented Buffer Pool Management:
- Implemented the LRU-K algorithm as the page replacement strategy for the Buffer Pool.
- Implemented B+ tree Index:
- Used the crabbing protocol to achieve concurrent operations on the B+ tree.
- Implemented a Volcano model-based query executor with TopN optimization:
- Aggregation executor, Nested loop join executor, Nested index join executor, Sort executor.
- Implemented a Lock Manager based on two-phase locking:
- Supported three isolation levels: RR, RC, RU.
- Supported five lock types at both table and row granularities.
- Implemented deadlock detection and handling.
lab1(100/100) | lab2(95/100) | lab3(100/100) | lab4(100/100) |
---|---|---|---|
![]() |
![]() ![]() |
![]() |
![]() |