15-721 Chapter10 恢复协议

BackGround

为了在可能crash的情况下,确保事务和数据库状态的,一致性,原子性,持久性。恢复算法大体可以分为两个方面:1.在事务过程中要做哪些处理   2.崩溃后要做哪些处理。

与disk数据库的差异

1.恢复不需要跟踪dirty page

2.只要redo,不用undo

3.不需要记录index,直接重建index就好,如果从disk拿的话,代价挺高的。

各种方式

日志记录方式

日志冲到磁盘的方式

 

提交的事务,可以在持久化前提前释放锁,然后别的读取他们数据的事务,要等待之前的事务落盘

 

 

MVCC与log record

我们发现MVCC的版本和record有很大的相似性,我们可以做一些额外的操作,把两个一起做了。

 version store有两种选择:一种是就地存储,一种是单独拿一个表来存

恢复协议

 logic revert

 

 SLOR的日志记录:格式(table, key, value ) 每100 epoch创建一个新的file,并把旧的log file rename 成 max epoch(它记录的)。然后如果epoch更新的话,把logrecord写入到flushing buffer里面,然后可以继续读free buffer里面的buffer,如果没有的话,worker就wait住了。

 

恢复协议

 

restart 恢复(不是crash)

 

Summary

physicial logging是主流

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值