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:
node_id
ID of reporting nodeblock_instance
ID of reporting LDM instancetableid
ID of table containing this rowfragmentid
ID of fragment containing locked rowrowid
ID of locked rowtransid
Transaction IDmode
Lock request modestate
Lock statedetail
Whether this is first holding lock in row lock queueop
Operation typeduration_millis
Milliseconds spent waiting or holding locklock_num
ID of lock objectwaiting_for
Waiting for lock with this ID
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
.