MySQL NDB 叢集 8.1 手冊
MySQL NDB 叢集 8.0 手冊
NDB 叢集 API 開發人員指南
READ_CONFIG_REQ
訊號提供所有核心區塊讀取組態資料的機會,這些資料儲存在所有區塊都可存取的全域物件中。資料節點中的所有記憶體配置都在此階段進行。
注意
核心區塊與 NDB
檔案系統之間的連線也在階段 0 設定。這對於讓區塊能夠輕鬆溝通表結構的哪些部分要寫入磁碟是必要的。
NDB
以兩種不同的方式執行記憶體配置。第一種是使用 allocRecord()
方法(定義在 storage/ndb/src/kernel/vm/SimulatedBlock.hpp
中)。這是傳統方法,其中記錄是使用 ptrCheckGuard
巨集(定義在 storage/ndb/src/kernel/vm/pc.hpp
中)來存取的。另一種方法是使用在 storage/ndb/src/kernel/vm/CArray.hpp
中找到的範本定義的 setSize()
方法來配置記憶體。
這些方法有時也會初始化記憶體,確保記憶體配置和初始化都是在看門狗保護下完成的。
許多區塊也會執行區塊特定的初始化,這通常需要建構鏈結串列或雙向鏈結串列(在某些情況下則是雜湊表)。
配置中使用的許多大小是在 storage/ndb/src/kernel/vm/Configuration.cpp
中找到的 Configuration::calcSizeAlt()
方法中計算的。
已為更智慧的記憶體資源池化做了一些準備。DataMemory
和磁碟記錄已屬於這個全域記憶體池。