免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3856 | 回复: 4
打印 上一主题 下一主题

请问vacuum freeze问题 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:01:44
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-03-06 16:14 |只看该作者 |倒序浏览
如题。
自己在做测试的时候vacuum freeze table之后,xmin没变,有的时候age(relfrozenid)变化,有的时候不变化,请问freeze究竟做了什么,如果id号已经到了快用完的状态,即使是年龄归零不还是可能循环回来吗?请大神解释,谢谢了!

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
2 [报告]
发表于 2015-03-09 10:49 |只看该作者
由于xid用uint4存储的,最多40几亿个,用完了就要循环使用,如果发生循环使用,那么如何区分是旧事务产生的元组,还是新事务产生的呢?
其实不需要知道是旧事务还是新事务的,只需要知道该元组对当前事务是否可见就可以了。
所以,vacuum会“定期”的对其进行处理,在元组头标记 FrozenTransactionId,后续的事务看见FrozenTransactionId标记的元组,都认为是可见的(当然还有xmax等需要判断)
这个”定期“指的是元组的xmin/xmax与当前数据库系统活跃的最小的事务号之间的差距(PS:如果系统有长事务一直不提交,那么最终会导致事务号无法回收)
超过这个差距,就要对元组事务号回收,否则不需要回收。
vacuum加上freeze参数后,这个差距变成0;不加这个默认使用系统参数 Min(vacuum_freeze_min_age, autovacuum_freeze_max_age / 2)
这点可以从函数 vacuum_set_xid_limits 找到。
不知道有没有说清楚。



回复 1# ora_explorer
如题。
自己在做测试的时候vacuum freeze table之后,xmin没变,有的时候age(relfrozenid)变化,有的时候不变化,请问freeze究竟做了什么,如果id号已经到了快用完的状态,即使是年龄归零不还是可能循环回来吗?请大神解释,谢谢了!

   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:01:44
3 [报告]
发表于 2015-03-11 09:45 |只看该作者
回复 2# asdf2110


    还是有些不太明白,请问如果回收事务号的话,会把frozenID标记去掉然后xmin归零吗?

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
4 [报告]
发表于 2015-03-12 08:57 |只看该作者
frozen 标记不会去掉,除非这条记录被delete 了
xid循环使用时,只要保证上一轮在此xid之前的元组都已被标记就可以了。

比如,循环使用了 9999 这个事务号,那么要保证 所有xid <9999的可见元组都被标记位 frozen才行

回复 3# ora_explorer


   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:01:44
5 [报告]
发表于 2015-03-27 10:48 |只看该作者
回复 4# asdf2110


    明白了,太感谢啦!~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP