这是元组管理器,用于管理集群数据的物理存储。它由位于 storage/ndb/src/kernel/blocks/dbtup
目录中的以下文件组成
AttributeOffset.hpp
:定义AttributeOffset
类,该类对属性的结构进行建模,允许最多 4096 个属性,所有属性均可为空。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 中添加。