引言
CMU 15445 数据库课程项目(Bustub)个人实现项目结构
课程整体结构(待持续确认)

项目整体结构

项目1:缓冲池管理器 Buffer Pool Manager

项目2:B+树 B+ Tree
项目2总览


一、点查(READ_ONLY)

二、迭代扫描(Iterator ++)

三、乐观插入(OPTIMISTIC_INSERT)与回退常规插入(REGULAR_INSERT)

四、乐观删除(OPTIMISTIC_DELETE)与回退常规删除(REGULAR_DELETE)

访问整体策略

项目3:查询执行器
项目3总览

表达式

Part 1:基础执行器/优化器
执行器:Update(Insert、Delete类似)

执行器:Sequential Scan

执行器:Index Scan

优化器:顺序扫描优化至索引扫描

Part 2: 聚合与连接执行器
聚合

连接
嵌套循环连接

嵌套索引连接

Part 3: HashJoin 执行器和优化
中间结果存储页

哈希连接

NLJ至HashJoin优化
优化器识别 NLJ 并尝试重写为 Hash Join

Part 4: 外部归并排序 + Limit 执行器 + 窗口函数
外部归并排序

Limit执行器

窗口函数执行器

项目4:MVCC
Part 1:时间戳
时间戳管理相关类图

事务开始、提交、abort逻辑

水位创建

Part 2:存储格式与顺序扫描
相关类图

顺序扫描MVCC版本

收集Undolog逻辑

Part 3:MVCC执行器
MVCC执行器相关类图

MVCC插入、更新、删除执行器


Stop the world GC

MVCC abort逻辑

Part 4:主键索引
MVCC索引核心类图

主键索引插入(并发冲突 + TAINTED)

Insert 命中 Deleted Tuple

Delete Executor(索引不删除)

Update Executor(非主键更新)

主键更新(Delete + Insert)

MVCC Index Scan

Serializable Commit(OCC Backward Validation

结果
P1

P2

QPS(无优化)

P3

P4
