MySQL 8.0 リファレンスマニュアル


23.5.14.5 ndbinfo cluster_locks テーブル

cluster_locks テーブルは NDB Cluster 内の NDB テーブルのロックを保持および待機している現在のロックリクエストに関する情報を提供し、cluster_operations へのコンパニオンテーブルとして使用されます。 cluster_locks テーブルから取得した情報は、ストールおよびデッドロックの調査に役立つ場合があります。

cluster_locks テーブルには、次のカラムがあります:

  • node_id

    レポートノードの ID

  • block_instance

    レポート LDM インスタンスの ID

  • tableid

    この行を含むテーブルの ID

  • fragmentid

    ロックされた行を含むフラグメントの ID

  • rowid

    ロックされた行の ID

  • transid

    トランザクション ID

  • mode

    ロックリクエストモード

  • state

    ロック状態

  • detail

    これが行ロックキューで最初にロックを保持しているかどうか

  • op

    操作タイプ

  • duration_millis

    ロックの待機または保持にかかったミリ秒

  • lock_num

    ロックオブジェクトの ID

  • waiting_for

    この ID のロックを待機中

メモ

テーブル ID (tableid カラム) は内部的に割り当てられ、他の ndbinfo テーブルで使用されているものと同じです。 また、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 で識別される同じ行のロックのみを参照できます。


関連キーワード:  NDB, テーブル, ndbinfo, ロック, ndb, ノード, カラム, 構成, 管理, データ