admin管理员组文章数量:1034973
【YashanDB 知识库】并发 update 报错 YAS
【YashanDB 知识库】并发 update 报错 YAS-02208 lock conflict in consistent write
作者:YashanDB
- 2025-01-14广东
- 本文字数:582 字 阅读完需:约 2 分钟
问题现象
业务存在并发 update,偶现报错,错误信息 YAS-02208 lock conflict in consistent write
问题的风险及影响
影响业务正确性判断
问题影响的版本
YashanDB 版本:23.2.6.100 列存 LSC
问题发生原因
问题发生的场景:
LSC 分区表,开启行迁移,并发更新,产生报错 YAS-02208 lock conflict in consistent write
业务应用后端会收到该错误。
问题分析:
1、YanshanDB 默认采用的是 inplace update 引擎,即行的 rowId 是不移动的。但一些特殊的场景会导致 rowId 发生变化。而用户在一些特殊的使用场景下会依赖 rowId,此时 rowId 是不能移动的。导致 rowId 发生变化的场景有:
闪回 DML、Shrink Table、跨分区更新
2、在分区更新场景下, 一行数据被从一个分区搬迁到另外一个分区,实际上用户数据仍然存在,在 DML 机制下,会跳过此行处理,导致数据漏更新。崖山通过 row movement 特性支持,开启 row movement 避免 lost update。
3、rowid 变更会比较大可能触发语句重启,在某一个表的 row movement 开启的场景下,在并发更新、删除的操作,其他 session 并发修改了当前 session 的 dml 的条件列,也会触发语句重启。
该问题满足这个条件,是正常现象,相应的数据已经会做修改,返回信息可作为参考提示。
动态视图 v$sql, v$sqlArea 中 restart_statements 列,统计语句重启的次数。
【YashanDB 知识库】并发 update 报错 YAS
【YashanDB 知识库】并发 update 报错 YAS-02208 lock conflict in consistent write
作者:YashanDB
- 2025-01-14广东
- 本文字数:582 字 阅读完需:约 2 分钟
问题现象
业务存在并发 update,偶现报错,错误信息 YAS-02208 lock conflict in consistent write
问题的风险及影响
影响业务正确性判断
问题影响的版本
YashanDB 版本:23.2.6.100 列存 LSC
问题发生原因
问题发生的场景:
LSC 分区表,开启行迁移,并发更新,产生报错 YAS-02208 lock conflict in consistent write
业务应用后端会收到该错误。
问题分析:
1、YanshanDB 默认采用的是 inplace update 引擎,即行的 rowId 是不移动的。但一些特殊的场景会导致 rowId 发生变化。而用户在一些特殊的使用场景下会依赖 rowId,此时 rowId 是不能移动的。导致 rowId 发生变化的场景有:
闪回 DML、Shrink Table、跨分区更新
2、在分区更新场景下, 一行数据被从一个分区搬迁到另外一个分区,实际上用户数据仍然存在,在 DML 机制下,会跳过此行处理,导致数据漏更新。崖山通过 row movement 特性支持,开启 row movement 避免 lost update。
3、rowid 变更会比较大可能触发语句重启,在某一个表的 row movement 开启的场景下,在并发更新、删除的操作,其他 session 并发修改了当前 session 的 dml 的条件列,也会触发语句重启。
该问题满足这个条件,是正常现象,相应的数据已经会做修改,返回信息可作为参考提示。
动态视图 v$sql, v$sqlArea 中 restart_statements 列,统计语句重启的次数。
本文标签: YashanDB 知识库并发 update 报错 YAS
版权声明:本文标题:【YashanDB 知识库】并发 update 报错 YAS 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748167095a2263104.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论