這是元組管理器,負責管理叢集資料的實體儲存。它由以下位於 storage/ndb/src/kernel/blocks/dbtup
目錄中的檔案組成:
AttributeOffset.hpp
:定義AttributeOffset
類別,該類別模擬屬性的結構,允許最多 4096 個屬性,所有屬性均可為 null。DbtupDiskAlloc.cpp
:處理磁碟空間的範圍分配和釋放。DbtupIndex.cpp
:實作使用排序索引讀寫元組的方法。DbtupScan.cpp
:實作元組掃描的方法。tuppage.cpp
:處理寫入元組的頁面分配。tuppage.hpp
:定義元組的固定大小和可變大小資料頁面的結構。DbtupAbort.cpp
:包含終止失敗元組操作的常式。DbtupExecQuery.cpp
:處理元組的查詢執行和從中讀取。DbtupMeta.cpp
:處理Dbtup
類別的表格操作。DbtupStoredProcDef.cpp
:用於新增和刪除程序模組。DbtupBuffer.cpp
:處理元組操作的讀/寫緩衝區。DbtupFixAlloc.cpp
:從附加到片段的頁面集合中分配和釋放固定大小的元組。固定大小是針對每個片段設定的;每個片段只能有一個這樣的值。DbtupPageMap.cpp
:Dbtup
用於將邏輯頁面 ID 對應到實體頁面 ID 的常式。此對應需要片段 ID 和邏輯頁面 ID 來提供實體 ID。Dbtup
的此部分是片段記錄上特定變數集合的獨佔使用者;它也是頁面範圍結構(在Dbtup.hpp
中定義的PageRange
結構)的獨佔使用者。DbtupTabDesMan.cpp
:此檔案包含組成表格描述符記憶體管理器的常式。每個表格都有一個描述符,它是一個連續的資料字組陣列,並且使用 「夥伴」演算法從全域陣列中分配,每個 2N 個字組都有可用的清單。Notes.txt
:包含開發人員關於元組、元組操作和元組版本控制的一些實作註解。Undo_buffer.hpp
:定義Undo_buffer
類別,用於儲存可能需要回滾的操作。Undo_buffer.cpp
:實作一些必要的Undo_buffer
方法。DbtupCommit.cpp
:包含用於將元組操作提交到磁碟的常式。DbtupGen.cpp
:此檔案包含Dbtup
初始化常式。DbtupPagMan.cpp
:此檔案實作頁面記憶體管理器的 「夥伴」演算法。PagMan
在片段缺乏足夠的內部頁面空間來容納它們被請求儲存的所有資料時被調用。它也在片段將頁面空間釋放回可用區域時被調用。DbtupTrigger.cpp
:此檔案中包含的常式執行NDB
內部觸發器的處理。DbtupDebug.cpp
:僅用於偵錯目的。Dbtup.hpp
:包含Dbtup
類別定義。還定義了許多基本結構,例如元組掃描、磁碟分配單元、片段記錄等等。DbtupRoutines.cpp
:實作讀取屬性的Dbtup
常式。DbtupVarAlloc.cpp
test_varpage.cpp
:用於驗證可變大小頁面操作的簡單測試程式。
此區塊還會監控元組的變更。
DBQTUP
是此區塊的子類型,用於查詢和復原執行緒,在 NDB 8.0.23 中新增。