目录
- 实验准备
- 实验测试
- Task 1: LOG MANAGER
实验准备
- 官方说明:https://15445.courses.cs.cmu.edu/fall2019/project4/
实验测试
Task 1:
cd build
make log_manager_test
./test/log_manager_test
Task 1: LOG MANAGER
Log Manager 有一个全局的实例,负责实现日志的写入和将日志 flush 到磁盘中。
日志类型有固定的多种,当一个事件发生时,程序会调用 log_manager
写入相应类型的日志。日志类型有如下:
/** The type of the log record. */
enum class LogRecordType {INVALID = 0,INSERT,MARKDELETE,APPLYDELETE,ROLLBACKDELETE,UPDATE,BEGIN,COMMIT,ABORT,/** Creating a new page in the table heap. */NEWPAGE,
};
比如当 buffer pool 调用 NewPage() 时,该函数会通过 log_manager 来追加一个 NEWPAGE 类型的日志记录。