NDB Cluster 內部機制  /  NDB 核心區塊  /  DBLQH 區塊

4.7 DBLQH 區塊

這是本機、低階查詢處理程式區塊,負責管理叢集資料節點的本機資料與交易,並作為兩階段提交的協調器。它負責(當由交易協調器呼叫時)對 Tuple 執行操作,並在 DBACC 區塊(管理索引結構)與 DBTUP(管理 Tuple)的協助下完成此任務。它由以下檔案組成,這些檔案位於 storage/ndb/src/kernel/blocks/dblqh

  • Dblqh.hpp:包含 Dblqh 類別定義。程式碼本身包含以下模組

    • 啟動/重新啟動模組。 此模組處理以下啟動階段

      • 啟動階段 1。 載入區塊參考與處理器 ID

      • 啟動階段 2。 初始化區塊內的所有記錄;將 LQH 連接至 ACCTUP

      • 啟動階段 4。 將每個 LQH 連接到資料庫系統中的其他每個 LQH。對於初始啟動,建立片段日誌檔案。對於系統重新啟動或節點重新啟動,開啟片段日誌檔案並尋找日誌檔案的結尾。

    • 片段新增與刪除模組。 由資料字典使用,以建立新片段並刪除舊片段。

    • 執行模組。 此模組處理 LQHKEYREQ 訊息的接收,以及代表此要求的所有操作處理。這也包括接收各種型別的 ATTRINFOKEYINFO 訊息,以及與 ACCTUP 的通訊。

    • 日誌模組。 日誌模組處理日誌的讀取與寫入。它也負責處理系統重新啟動,並控制 TUPACC 中的系統重新啟動。

    • 交易模組。 此模組處理提交與完成階段。

    • TC 失敗模組。 處理交易協調器中的失敗。

    • 掃描模組。 此模組包含處理特定片段掃描的程式碼。它在交易協調器的控制下運作,並命令 ACC 執行片段中所有 Tuple 的掃描。TUP 會執行必要的搜尋條件,以確保只將有效的 Tuple 傳回應用程式。

    • 節點復原模組。 當節點失敗時使用,將受影響的片段複製到新的片段複本。它也會關閉所有與失敗節點的連線。

    • LCP 模組。 此模組處理 TUPACC 中本機檢查點的執行與控制。它也會與 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

此區塊也處理重做記錄,並協助監督 DBACCDBTUPLGMANTSMANPGMANBACKUP 區塊。它實作為類別 Dblqh,定義於檔案 storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp 中。

DBQLQH 是此區塊的子類型,用於查詢與復原執行緒,新增於 NDB 8.0.23 中。