25.6.16.6 The ndbinfo cluster_locks Table (original) (raw)

25.6.16.6 The ndbinfo cluster_locks Table

The cluster_locks table provides information about current lock requests holding and waiting for locks onNDB tables in an NDB Cluster, and is intended as a companion table tocluster_operations. Information obtain from the cluster_locks table may be useful in investigating stalls and deadlocks.

The cluster_locks table contains the following columns:

Notes

The table ID (tableid column) is assigned internally, and is the same as that used in otherndbinfo tables. It is also shown in the output of ndb_show_tables.

The transaction ID (transid column) is the identifier generated by the NDB API for the transaction requesting or holding the current lock.

The mode column shows the lock mode; this is always one of S (indicating a shared lock) orX (an exclusive lock). If a transaction holds an exclusive lock on a given row, all other locks on that row have the same transaction ID.

The state column shows the lock state. Its value is always one of H (holding) orW (waiting). A waiting lock request waits for a lock held by a different transaction.

When the detail column contains a* (asterisk character), this means that this lock is the first holding lock in the affected row's lock queue; otherwise, this column is empty. This information can be used to help identify the unique entries in a list of lock requests.

The op column shows the type of operation requesting the lock. This is always one of the valuesREAD, INSERT,UPDATE, DELETE,SCAN, or REFRESH.

The duration_millis column shows the number of milliseconds for which this lock request has been waiting or holding the lock. This is reset to 0 when a lock is granted for a waiting request.

The lock ID (lockid column) is unique to this node and block instance.

The lock state is shown in the lock_state column; if this is W, the lock is waiting to be granted, and the waiting_for column shows the lock ID of the lock object this request is waiting for. Otherwise, the waiting_for column is empty.waiting_for can refer only to locks on the same row, as identified by node_id,block_instance, tableid,fragmentid, and rowid.