ndbinfo cluster_locks表
该cluster_locks
表提供了有关NDB
NDB群集中表上当前持有和等待锁的当前锁定请求的信息,并旨在作为的配套表cluster_operations
。从cluster_locks
表中获取的信息可能有助于调查摊位和僵局。
下表提供有关表中各列的信息cluster_locks
。该表为每一列显示名称,数据类型和简要说明。可以在表格后面的注释中找到其他信息。
cluster_locks表的列
栏名 | 类型 | 描述 |
---|---|---|
node_id | 整数 | 报告节点的ID |
block_instance | 整数 | 报告LDM实例的ID |
tableid | 整数 | 包含该行的表的ID |
fragmentid | 整数 | 包含锁定行的片段的ID |
rowid | 整数 | 锁定行的ID |
transid | 整数 | 交易编号 |
mode | string | 锁定请求模式 |
state | string | 锁定状态 |
detail | string | 这是否是第一个在行锁队列中持有锁 |
op | string | 操作类型 |
duration_millis | 整数 | 等待或保持锁定所花费的毫秒数 |
lock_num | 整数 | 锁对象的ID |
waiting_for | 整数 | 等待具有此ID的锁定 |
表ID(tableid
列)是在内部分配的,并且与其他ndbinfo
表中使用的ID 相同。它也显示在ndb_show_tables的输出中。
事务ID(transid
列)是NDB API为请求或持有当前锁的事务生成的标识符。
该mode
列显示锁定模式;这始终是S
(指示共享锁)或X
(排他锁)之一。如果某个事务在给定行上拥有排他锁,则该行上的所有其他锁都具有相同的事务ID。
该state
列显示锁定状态。它的值始终是H
(持有)或W
(正在等待)之一。等待锁请求等待另一个事务持有的锁。
当detail
列中包含*
(星号字符)时,表示此锁是受影响的行的锁队列中的第一个保持锁;否则,此列为空。此信息可用于帮助识别锁定请求列表中的唯一条目。
该op
列显示请求锁定的操作类型。这始终是一个值READ
,INSERT
,UPDATE
,DELETE
,SCAN
,或REFRESH
。
该duration_millis
列显示此锁定请求已等待或持有锁定的毫秒数。当为等待的请求授予锁时,此位将重置为0。
锁定ID(lockid
列)对于此节点和块实例是唯一的。
锁定状态显示在lock_state
列中;如果是W
,则正在等待授予锁,该waiting_for
列显示此请求正在等待的锁对象的锁ID。否则,该waiting_for
列为空。waiting_for
只能引用锁在同一行,所确定node_id
,block_instance
,tableid
,fragmentid
,和rowid
。