cluster_locks
表格提供關於 NDB 叢集中 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
表格中使用的 ID 相同。它也會顯示在 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
所識別。