4.10 DBTUP 块

这就是元组管理器,负责管理集群数据的物理存储。它由目录中的以下文件组成 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是片段记录上某组变量的独占用户;它也是页面范围结构(在 中 PageRange定义的结构 Dbtup.hpp)的独占用户。

  • DbtupTabDesMan.cpp:此文件包含构成表描述符内存管理器的例程。每个表都有一个描述符,它是一个连续的数据字数组,使用“ buddy算法从全局数组中分配,每 2 N个字都有一个空闲列表。

  • 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 中添加。