事务执行语义问题解析
【摘要】 事务执行语义问题解析
一、问题一,不同过滤条件(预期等价),执行结果集不一致
总体原则:
update执行时获取快照,如果tuple满足过滤条件,锁释放后,如果被更新会重扫,如果没有更新就跳过
左侧测试场景:
1. 语句4拿快照,看到tup1满足条件,等锁
2. 语句5放锁
3. t2看到tup1被更新,重新扫一下更新后的tup1,c2=5,满足条件,更新成20
4. 接着往下扫,获取的快照里,tup2、3都不满足条件,不更新
右侧测试场景:
1. 语句4拿快照,看到tup1满足条件,等锁
2. 语句5放锁
3. t2看到tup1被更新,重新扫一下更新后的tup1,c2=5,不满足条件,不更新
4. 接着往下扫,获取的快照里,tup2、3都不满足条件,不更新
问题二:read uncommitted行为不符合预期
指定隔离级别复现问题,确认不符合预期,正在跟踪,read uncommitted可以先不考虑
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)