本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7901521.html?templateId=1718516
问题现象
业务存在并发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。