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
は、test/def/t1
、sys/def/10/b$unique
など、database
/ schema
/ name
形式の完全修飾データベースオブジェクト名です。
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
のすべてのカラムに表示される値は、テーブルまたはフラグメントが作成されてから、またはこのノードが最後に再起動されてからのいずれか後で発生したリクエストの累積数をテーブルします。 これは、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)
失敗した待機は中断されたトランザクションを示しますが、中断はロック待機タイムアウトによって発生する場合と発生しない場合があります。 次に示すように、ロック待機中の中断の合計数を取得できます:
[aborts while waiting for locks] = ex_wait_fail + sh_wait_fail