【 使用环境 】测试环境
【 OB or 其他组件 】observer
【 使用版本 】OceanBase_CE-v4.2.1.0
【问题描述】
当表存在未完成的事务时,observer无法阻止其他连接对表结构的DDL操作,导致事务内的的两次查询表结构不一致。
请问oceanbase有无类似mysql metadata lock 概念?如何保证元数据一致性?
【复现路径】问题出现前后相关操作
-
初始化数据
create table t1 (id bigint auto_increment primary key, col2 varchar(255));
insert into t1(col2) values (‘1’),(‘2’),(‘3’); -
复现步骤
序号1,2 执行结果:
序号 3 执行结果;
这里可以看到DDL操作未被阻塞
序号 4 执行结果 ;
同一事务内的两次相同的查询,表结构不一致
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):