25.6.17.42 ndbinfo locks_per_fragment 表
locks_per_fragment 表提供了锁定请求计数信息和这些请求的结果,按碎片基础上进行统计,这个表是operations_per_fragment和memory_per_fragment的伴随表。此外,该表还显示自碎片或表创建以来,或者自最近一次重启以来,成功和失败等待锁定的总时间。
locks_per_fragment 表包含以下列:
-
fq_name完全限定表名
-
parent_fq_name父对象的完全限定名称
-
type表类型;见文本中可能的值
-
table_id表ID
-
node_id报告节点ID
-
block_instanceLDM 实例 ID
-
fragment_num碎片标识符
-
ex_req排他锁定请求开始的数量
-
ex_imm_ok立即授予排他锁定的数量
-
ex_wait_ok等待后授予排他锁定的数量
-
ex_wait_fail独占锁请求未被授予
-
sh_req共享锁请求开始
-
sh_imm_ok共享锁请求立即被授予
-
sh_wait_ok共享锁请求在等待后被授予
-
sh_wait_fail共享锁请求未被授予
-
wait_ok_millis等待授予锁请求的时间,单位毫秒
-
wait_fail_millis等待失败锁请求的时间,单位毫秒
block_instance 指的是内核块的一个实例。与块名称一起,可以用来在 threadblocks 表中查找给定的实例。
fq_name 是一个完全限定数据库对象名称,格式为 database/schema/name,例如 test/def/t1 或 sys/def/10/b$unique。
parent_fq_name 是该对象的父对象(表)的完全限定名称。
table_id 是由 NDB 生成的表的内部 ID。这与其他 ndbinfo 表中的内部表 ID相同,也可以在 ndb_show_tables 的输出中看到。
type 列显示表的类型。这总是其中之一:System table,User table,Unique hash index,Hash index,Unique ordered index,Ordered index,Hash index trigger,Subscription trigger,Read only constraint,Index trigger,Reorganize trigger,Tablespace,Log file group,Data file,Undo file,Hash map,Foreign key definition,Foreign key parent trigger,Foreign key child trigger 或 Schema transaction。
所有列中的值ex_req、ex_req_imm_ok、ex_wait_ok、ex_wait_fail、sh_req、sh_req_imm_ok、sh_wait_ok和sh_wait_fail都表示自表或碎片创建以来,或者自最后一次节点重启以来 whichever of these occurred later 的累积请求次数。这也适用于wait_ok_millis和wait_fail_millis列中的时间值。
每个锁定请求都被认为是在进行中,或者已经以某种方式完成(即成功或失败)。这意味着以下关系是正确的:
ex_req >= (ex_req_imm_ok + ex_wait_ok + ex_wait_fail)
sh_req >= (sh_req_imm_ok + sh_wait_ok + sh_wait_fail)
当前正在进行中的请求数量等于当前未完成的请求数量,可以在这里找到:
[exclusive lock requests in progress] =
ex_req - (ex_req_imm_ok + ex_wait_ok + ex_wait_fail)
[shared lock requests in progress] =
sh_req - (sh_req_imm_ok + sh_wait_ok + sh_wait_fail)
一个失败的等待表示事务被中止,但中止可能是锁定等待超时引起的。你可以像这样获得等待锁定的总数 Abort:
[aborts while waiting for locks] = ex_wait_fail + sh_wait_fail