百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[国内信息] 免费领取阿里云服务器2000元代金券! [复制链接]
查看:673564 | 回复:5804

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-10 17:48:53 | 显示全部楼层 来自 中国河北衡水
针对这个问题,直观的想法是等到事务真正提交时,才能允许这个事务的任何修改落盘,也就是No-Steal策略。显而易见,这种做法一方面造成很大的内存空间压力,另一方面提交时的大量随机IO会极大的影响性能。
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-11 18:47:59 | 显示全部楼层 来自 中国河北衡水
每个事务其实会修改一组的Record,对应的也就会产生一组Undo Record,这些Undo Record收尾相连就组成了这个事务的Undo Log。除了一个个的Undo Record之外,还在开头增加了一个Undo Log Header来记录一些必要的控制信息,因此,一个Undo Log的结构如下所示:
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-11 19:05:00 | 显示全部楼层 来自 中国河北衡水
Undo Log Header中记录了产生这个Undo Log的事务的Trx ID;Trx No是事务的提交顺序,也会用这个来判断是否能Purge,这个在后面会详细介绍;Delete Mark标明该Undo Log中有没有TRX_UNDO_DEL_MARK_REC类型的Undo Record
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-12 07:59:04 | 显示全部楼层 来自 中国河北衡水
Undo Segment会持有至少一个Undo Page,每个Undo Page会在开头38字节到56字节记录Undo Page Header,其中记录Undo Page的类型、最后一条Undo Record的位置,当前Page还空闲部分的开头,也就是下一条Undo Record要写入的位置。
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-12 09:51:15 | 显示全部楼层 来自 中国河北衡水
Undo Page剩余的空间都是用来存放Undo Log的,对于像上图Undo Log 1,Undo Log 2这种较短的Undo Log,为了避免Page内的空间浪费,InnoDB会复用Undo Page来存放多个Undo Log,而对于像Undo Log 3这种比较长的Undo Log可能会分配多个Undo Page来存放。需要注意的是Undo Page的复用只会发生在第一个Page。
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-13 08:51:24 | 显示全部楼层 来自 中国河北衡水
多版本的目的是为了避免写事务和读事务的互相等待,那么每个读事务都需要在不对Record加Lock的情况下, 找到对应的应该看到的历史版本。所谓历史版本就是假设在该只读事务开始的时候对整个DB打一个快照,之后该事务的所有读请求都从这个快照上获取。
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-13 11:37:51 | 显示全部楼层 来自 中国河北衡水
之后通过row_upd_rec_in_place,用update vector修改当前持有的Record拷贝中的信息,获得Record的这个历史版本。之后调用自己ReadView的changes_visible判断可见性,如果可见则返回用户。完成这个历史版本的读取。
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-13 16:54:07 | 显示全部楼层 来自 中国河北衡水
们已经知道,InnoDB在Undo Log中保存了多份历史版本来实现MVCC,当某个历史版本已经确认不会被任何现有的和未来的事务看到的时候,就应该被清理掉。因此就需要有办法判断哪些Undo Log不会再被看到。I
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-14 11:59:36 | 显示全部楼层 来自 中国河北衡水
其中trx_undo_prev_version_build会根据当前的rollptr找到对应的Undo Record位置,这里如果是rollptr指向的是insert类型,或者找到了已经Purge了的位置,说明到头了,会直接返回失败。
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
7710
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2021-12-14 12:59:48 | 显示全部楼层 来自 中国河北衡水
Crash Recovery时,需要利用Undo中的信息将未提交的事务的所有影响回滚,以保证数据库的Failure Atomic。前面提到过,InnoDB中的Undo其实是像数据一样处理的,也从上面的组织结构中可以看出来,Undo本身有着比Redo Log复杂得多、按事务分配而不是顺序写入的组织结构
腾讯云爆款2核2G3M云服务器首年 61元,叠加红包再享折上折,官网活动网址:https://curl.qcloud.com/UHULq3SQ
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-4-29 12:07 , Processed in 0.109446 second(s), 26 queries , Gzip On.

返回顶部