《数据库系统原理与实现》课程实验
-
cmake
-
visual studio 2019+
-
打开visual studio 2019 x64 native tools command命令终端;
-
进入db/build目录;
-
cmake ..
-
make
完成Block::insertRecord,正在处理Table::insert,需要添加移动记录的方案。打算在Block中添加一个RecordIterator,这个迭代器是数组型的,功能比Table::BlockIterator要强。
增加buffer管理层,统一管理所有缓冲。缓冲大小为BLOCK_SIZE,由一个BufDesp结构管理,BufDesp内部有一个引用计数,当引用计数大于0,该缓冲出借给用户,不能释放。向上层暴露几个接口:borrow,write,relref。borrow相当与read,write只是标记了DIRTY,relref释放借用的缓冲。
-
struct iovec结构应该包含一个类型的指针,这样就可以避免来回的betoh,很烦。
-
超块的管理有待完善;
-
wal日志;
-
buffer层需要一个协程来刷盘;
在底层实现聚集存储,定义Block、Record等元素,导出记录的增加、删除、更新、枚举接口。
与实验1配合,采用Btree增加对索引的支持,导出查询接口。