实验准备
实验测试
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 类型的日志记录。