ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

undo

2022-07-26 09:31:43  阅读:155  来源: 互联网

标签:trx2 log undo seg trx redo


undo 日志作用:
1.redo执行后,重新恢复至dirtypage状态;为保证各trx原子性,由undo日志将未提交trx的操作回滚至数据库一致性状态。
// 3pass恢复的过程可在analysis pass识别出未提交事务,仅检查磁盘page修改状态,并由此执行undo部分,前提是需要将redo log与undo log对应
// 需保证undo写入先于redo,否则仅有redo日志不可回撤
2.实现快照隔离,可重复读。
当trx1读取被并发修改的record1时,
由record1定位最后一次修改其的trx2,
根据trx2对trx1的可见性判断,若trx2与trx1并发,则根据trx2对应的undo log恢复至上一版本
重复至trx1可见版本

undo log同样是保存信息差量,但其是以trx为单位,记录对table的修改,是逻辑日志
undo log直接存于page对于小trx空间有剩,由其他trx复用

快照可见性判断:

trx的生命周期从分配trx id至undo log落盘
在trx开始时,当前未commit的trx,即活跃事务,不可见;另外,在其之后开始的trx不可见,即id > trx id
trx sys中时刻保存并更新前者信息,在各个trx初始化时获取;后者只需简单判断
//undo log段最终以页的形式持久化,页修改以redo log方式预写

trx sys:保存全局信息,索引trx定位
roll back seg:保存history 按trx提交顺序
double write seg:保证undo page写入有效
undo seg:存储undo log,每个trx对应两个undo log seg:insert、update

del record:mark+purge
purge判断undo log可回收条件:undo log对应的trx,其所修改的值不再可见,即当前active trx不访问

标签:trx2,log,undo,seg,trx,redo
来源: https://www.cnblogs.com/qmc1024/p/16519643.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有