cluster_locks table provides information
about current lock requests holding and waiting for locks on
NDB tables in an NDB Cluster, and is intended
as a companion table to
Information obtain from the
table may be useful in investigating stalls and deadlocks.
The following table provides information about the columns in
cluster_locks table. For each column, the
table shows the name, data type, and a brief description.
Additional information can be found in the notes following the
|integer||ID of reporting node|
|integer||ID of reporting LDM instance|
|integer||ID of table containing this row|
|integer||ID of fragment containing locked row|
|integer||ID of locked row|
|string||Lock request mode|
|string||Whether this is first holding lock in row lock queue|
|integer||Milliseconds spent waiting or holding lock|
|integer||ID of lock object|
|integer||Waiting for lock with this ID|
The table ID (
tableid column) is assigned
internally, and is the same as that used in other
ndbinfo 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.
mode column shows the lock mode; this is
always one of
S (indicating a shared lock) or
X (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.
state column shows the lock state. Its
value is always one of
H (holding) or
W (waiting). A waiting lock request waits for
a lock held by a different transaction.
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
op column shows the type of operation
requesting the lock. This is always one of the values
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
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.
waiting_for column is empty.
waiting_for can refer only to locks on the
same row, as identified by
cluster_locks table was added in NDB