25.6.17.7 Таблица ndbinfo cluster_locks
Таблица cluster_locks предоставляет информацию о текущих запросах блокировки, удерживающих и ожидающих блокировки на таблицах NDB в кластере NDB, и предназначена как дополнительная таблица к cluster_operations. Информация, полученная из таблицы cluster_locks, может быть полезна при исследовании задержек и тупиковых ситуаций.
Таблица cluster_locks содержит следующие столбцы:
-
node_idИдентификатор узла, передающего информацию
-
block_instanceИдентификатор экземпляра LDM, передающего информацию
-
tableidИдентификатор таблицы, содержащей эту строку
-
fragmentidИдентификатор фрагмента, содержащего заблокированную строку
-
rowidИдентификатор заблокированной строки
-
transidИдентификатор транзакции
-
modeРежим запроса блокировки
-
stateСостояние блокировки
-
detailЯвляется ли это первой удерживаемой блокировкой в очереди блокировок строки
-
opТип операции
-
duration_millisМиллисекунды, затраченные на ожидание или удержание блокировки
-
lock_numИдентификатор объекта блокировки
-
waiting_forОжидание блокировки с этим идентификатором
Примечания
Идентификатор таблицы (столбец tableid) назначается внутренне и совпадает с тем, который используется в других таблицах ndbinfo. Он также отображается в выводе команды ndb_show_tables.
Идентификатор транзакции (столбец transid) — это идентификатор, сгенерированный API NDB для транзакции, запрашивающей или удерживающей текущую блокировку.
Столбец mode показывает режим блокировки; он всегда равен одному из значений S (указывающего на общую блокировку) или X (исключительную блокировку). Если транзакция удерживает исключительную блокировку на заданной строке, все другие блокировки на этой строке имеют тот же идентификатор транзакции.
Столбец state показывает состояние блокировки. Его значение всегда равно одному из значений H (удержание) или W (ожидание). Запрос ожидания блокировки ждет блокировки, удерживаемой другой транзакцией.
Когда столбец detail содержит * (звездочку), это означает, что эта блокировка является первой удерживаемой блокировкой в очереди блокировок строки; в противном случае этот столбец пуст. Эта информация может использоваться для идентификации уникальных записей в списке запросов блокировки.
Столбец op показывает тип операции, запрашивающей блокировку. Это всегда одно из значений READ, INSERT, UPDATE, DELETE, SCAN или REFRESH.
Столбец duration_millis отображает количество миллисекунд, в течение которых этот запрос блокировки ожидал или удерживал блокировку. Он сбрасывается до 0, когда запрос ожидания получает блокировку.
Идентификатор блокировки (столбец lockid) уникален для этого узла и экземпляра блока.
Состояние блокировки отображается в столбце lock_state; если это W, блокировка ожидает предоставления, а столбец waiting_for показывает идентификатор объекта блокировки, которого ожидает этот запрос. В противном случае столбец waiting_for пуст. waiting_for может ссылаться только на блокировки в той же строке, как определено node_id, block_instance, tableid, fragmentid и rowid.
© 2025 Oracle
Licensed under the GPLv2 License.