這是本機、低階查詢處理程式區塊,負責管理叢集資料節點的本機資料與交易,並作為兩階段提交的協調器。它負責(當由交易協調器呼叫時)對 Tuple 執行操作,並在 DBACC
區塊(管理索引結構)與 DBTUP
(管理 Tuple)的協助下完成此任務。它由以下檔案組成,這些檔案位於 storage/ndb/src/kernel/blocks/dblqh
中
-
Dblqh.hpp
:包含Dblqh
類別定義。程式碼本身包含以下模組-
啟動/重新啟動模組。 此模組處理以下啟動階段
片段新增與刪除模組。 由資料字典使用,以建立新片段並刪除舊片段。
執行模組。 此模組處理
LQHKEYREQ
訊息的接收,以及代表此要求的所有操作處理。這也包括接收各種型別的ATTRINFO
和KEYINFO
訊息,以及與ACC
和TUP
的通訊。日誌模組。 日誌模組處理日誌的讀取與寫入。它也負責處理系統重新啟動,並控制
TUP
和ACC
中的系統重新啟動。交易模組。 此模組處理提交與完成階段。
TC 失敗模組。 處理交易協調器中的失敗。
掃描模組。 此模組包含處理特定片段掃描的程式碼。它在交易協調器的控制下運作,並命令
ACC
執行片段中所有 Tuple 的掃描。TUP
會執行必要的搜尋條件,以確保只將有效的 Tuple 傳回應用程式。節點復原模組。 當節點失敗時使用,將受影響的片段複製到新的片段複本。它也會關閉所有與失敗節點的連線。
LCP 模組。 此模組處理
TUP
和ACC
中本機檢查點的執行與控制。它也會與DIH
互動,以判斷哪些全域檢查點可復原。全域檢查點模組。 協助
DIH
探索何時 GCP 可復原,並處理要求LQH
將給定的 GCP 儲存至磁碟並提供完成此作業的通知的GCP_SAVEREQ
訊息。-
檔案處理模組。 這包含許多子模組
訊號接收
正常運作
檔案變更
初始啟動
系統重新啟動,階段 1
系統重新啟動,階段 2
系統重新啟動,階段 3
系統重新啟動,階段 4
錯誤
-
DblqhInit.cpp
:初始化Dblqh
記錄與資料。也包含用於解除配置這些記錄的Dblqh
類別解構函式。DblqhMain.cpp
:實作Dblqh
功能(類別方法)。-
此目錄在
redoLogReader
子目錄中也包含此處列出的檔案,其中包含 ndb_redo_log_reader 公用程式的來源records.cpp
records.hpp
redoLogFileReader.cpp
此區塊也處理重做記錄,並協助監督 DBACC
、DBTUP
、LGMAN
、TSMAN
、PGMAN
和 BACKUP
區塊。它實作為類別 Dblqh
,定義於檔案 storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
中。
DBQLQH
是此區塊的子類型,用於查詢與復原執行緒,新增於 NDB 8.0.23 中。