绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
ESGYNDB CQD-TRAF_LOCK_DDL
2022-03-30 10:36:26

本文介绍EsgynDB的CQD之traf_lock_ddl,此CQD是为了控制并发的DDL/DML操作的用途,默认情况下在EsgynDB中的DDL和DML操作不会相互阻塞,这可能会导致DDL和MDL同时进行时的一些怪异现象。打个比方,如果在一个正在不停写入数据的表上创建索引,那么可能会造成表和索引的数据不一致。

鉴于此问题,EsgynDB新的版本引入了并发DDL/DML功能,此功能通过cqd traf_lock_ddl来控制,默认情况下cqd的值为OFF,如果要打开并发DDL/DML功能,则需要设置cqd traf_lock_ddl ‘ON’。
该功能的设计原理是在RMS中对表存储两个标签:

  1. DDL_IN_PROGRESS - 当表上有DDL操作时值为1,此时会阻挡表上的其他的DDL及DML操作,操作完成后值为0
  2. READS_DISALLOWED - 当值为1时,读操作也不被允许
    我们可以通过以下语句来查看表的状态,
GET [LOCKED] OBJECT EPOCH STATISTICS [OF <table name>] [FOR (ALL |
CURRENT | <node id>)]
  • 1
  • 2

简化的命令为:

GET OBJECT EPOCH STATISTICS
  • 1

样例输出如下图,
在这里插入图片描述
关于以上输出的几个参数的解释如下,

  1. Node Id -表示第几个节点
  2. Object Name -表示哪个对象
  3. Object Type -对象类型
  4. Hash -Hash值
  5. Redifine Time -对象创建或重定义时间,暂未使用
  6. Epoch -对象元信息版本
  7. Flags - 0代表不显示DDL_IN_PROGRESS和READS_DISALLOWED,1代表DDL_IN_PROGRESS=1且READS_DISALLOWED=0,3代表DDL_IN_PROGRESS=1且READS_DISALLOWED=1

分享好友

分享这个小栈给你的朋友们,一起进步吧。

EsgynDB
创建时间:2022-03-30 10:10:17
EsgynDB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • itt0918
    专家
戳我,来吐槽~