0.写在前面
based on CMU 15-445/645 2020fall, Lecture #20 ~ Lecture #21.
1: CRASH RECOVERY
Motivation:当我们遇到崩溃和故障的时候,我们想要持久化对数据库的修改。
恢复算法有2个part:
1)针对DB运行中的transaction。
2)当遇上重启或者崩溃的时候,利用第一个part中的信息来恢复。
1.1 Type
Type #1 – Transaction Failures
Type #2 – System Failures(软件、硬件)
Type #3 – Storage Media Failures(DBMS无法恢复)
1.2 例子
核心问题:当T1对A修改,T2对B修改之后,T2COMMIT,此时Buffer Pool中A,B是否需要写到磁盘中。
由此引出2个Buffer Pool Policy。
1.2.1 STEAL POLICY
STEAL: Is allowed.
NO-STEAL: Is not allowed.
简单概括:没有COMMIT的事务是否能写到磁盘中。
如上述例子中T1没有提交,如果是NO