高级功能
任务 1: Undo 过程中出现故障的故障恢复(2 分)
实验描述
基础功能仅考虑到查询执行过程中出现故障的恢复过程,高级功能要求在此基础上考虑事务回滚过程中出现故障时的处理流程,需要引入补偿日志的机制来保证 Undo 过程中出现故障时故障恢复算法的正确性和执行效率。
实现思路
- 步骤 1:修改事务回滚的逻辑,在事务回滚过程中随机发生故障。
- 步骤 2:理解事务回滚阶段故障恢复的特殊性,理解补偿日志的机制,并在故障恢复算法中添加补偿日志的记录和处理能力。
任务 2:非阻塞检查点机制(1 分)
实验描述
基础功能中检查点日志以阻塞的方式追加到磁盘,当 ATT 和 DPT 表容量较大时将影响到系统的查询处理运行,在高级功能中要求采用多线程的方式添加对于非阻塞检查点功能的支持。
实现思路
- 步骤 1:理解实验框架中阻塞检查点的信息记录方法,思考非阻塞检查点的信息记录方式。
- 步骤 2:修改 LogManager::Checkpoint 函数,将 Checkpoint 日志异步写入磁盘。