的cluster_locks
表提供有关当前锁请求持有和等待打开锁的信息NDB
表,并打算作为NDB集群的一个配套表cluster_operations
.从cluster_locks
表格可能在调查摊位和死锁时有用。
的cluster_locks
表包含以下列:
node_id
上报节点ID
block_instance
上报LDM实例ID
tableid
包含该行的表ID
fragmentid
包含锁定行的片段ID
rowid
锁定行ID
transid
事务ID
模式
锁请求模式
状态
锁状态
细节
是否第一次在行锁队列中持有锁
人事处
操作类型
duration_millis
等待或持有锁所花费的毫秒数
lock_num
锁定对象ID
waiting_for
等待锁定此ID
笔记
表ID (tableid
列)在内部赋值,与在其他中使用的相同ndbinfo
表。的输出中也显示了ndb_show_tables.
事务ID (transid
列)是由NDB API为请求或持有当前锁的事务生成的标识符。
的模式
列显示锁定模式;这一直是年代
(表示共享锁)或X
(独占锁)。如果一个事务持有给定行上的排他锁,那么该行上的所有其他锁都具有相同的事务ID。
的状态
列显示锁定状态。它的值总是H
(控股)或W
(等待)。等待锁请求等待由不同事务持有的锁。
当细节
列包含一个*
(星号字符),表示该锁是受影响行锁队列中的第一个持有锁;否则,此列为空。此信息可用于帮助识别锁请求列表中的唯一条目。
的人事处
列显示请求锁的操作类型。这总是其中一个值读
,插入
,更新
,删除
,扫描
,或刷新
.
的duration_millis
列显示此锁请求等待或持有锁的毫秒数。当为等待的请求授予锁时,该值将重置为0。
锁ID (lockid
列)是此节点和块实例唯一的。
锁状态显示在lock_state
列;如果这是W
,锁等待被授予,而waiting_for
列显示此请求正在等待的锁对象的锁ID。否则,waiting_for
列是空的。waiting_for
只能引用同一行上的锁,如用node_id
,block_instance
,tableid
,fragmentid
,rowid
.
的cluster_locks
表在NDB 7.5.3中新增。