【CMU15445】Fall 2019, Project 4: Logging & Recovery 实验记录

2023-12-14 21:50:17

实验准备

实验测试

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 类型的日志记录。

文章来源:https://blog.csdn.net/qq_45668004/article/details/135004170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。