ndbinfo cluster_locks表
该cluster_locks表提供了有关NDBNDB群集中表上当前持有和等待锁的当前锁定请求的信息,并旨在作为的配套表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。
