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_instance
LDM 实例 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