问题现象
MemTable 中当对同一个主键做更新、删除、插入、加列之后,再做转储时,会报 4016 转储出错,提示 insert 行不是完整的 compact 行。
问题原因
主键做了多次更新,然后加列,再触发转储,会触发错误的防御代码。
问题的风险及影响
阻塞转储,MemStore 被打满,clog 无法被回收。
影响版本
OceanBase 数据库 V4.1.0 BP2 (oceanbase-4.1.0.1-102000042023061309) 及之前的版本(包括 V4.0.0 版本)。
解决方法及规避方式
解决方法
升级到问题已修复版本,目前已修复的版本包含 OceanBase 数据库 V4.1.0 BP3 (oceanbase-4.1.0.2-103000072023081111)及之后版本。
规避方式
加列之前强制做一次转储。