這是本機、低階查詢處理程式區塊,負責管理叢集資料節點的本機資料與交易,並作為兩階段提交的協調器。它負責(當由交易協調器呼叫時)對 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.cpprecords.hppredoLogFileReader.cpp
此區塊也處理重做記錄,並協助監督 DBACC、DBTUP、LGMAN、TSMAN、PGMAN 和 BACKUP 區塊。它實作為類別 Dblqh,定義於檔案 storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp 中。
DBQLQH 是此區塊的子類型,用於查詢與復原執行緒,新增於 NDB 8.0.23 中。