NDB 集群内部  /  NDB 内核块  /  DBDIH 块

4.5 DBDIH 块

此块为每个表、表分区和每个分区的片段副本提供数据分布管理服务。它还负责处理本地和全局检查点。DBDIH 也管理节点和系统重启。此块在以下文件中实现,所有这些文件都在目录 storage/ndb/src/kernel/blocks/dbdih 中找到

  • Dbdih.hpp:此文件包含 Dbdih 类的定义,以及 FileRecordPtr 类型,用于保存有关片段及其片段副本的存储信息。如果一个片段有多个备份片段副本,那么这些附加副本的列表将附加到此记录中。此记录还存储片段的状态,并且是 64 字节对齐的。

  • DbdihMain.cpp:包含 Dbdih 类方法的定义。

  • printSysfile/printSysfile.cpp:主 dbdih 目录中 printSysfile.cpp 的旧版本。

  • DbdihInit.cpp:初始化 Dbdih 数据和记录;还包含类析构函数。

  • LCP.txt:包含有关 DIHLQH 在本地检查点期间进行的消息交换的开发人员注释。

  • printSysfile.cpp:此文件包含 ndb_print_sys_file 实用程序的源代码。

  • Sysfile.hpp:包含 Sysfile 结构的定义;换句话说,NDB 系统文件的格式。有关 NDB 系统文件的更多信息,请参见 第 1 章,NDB 集群文件系统

此块经常使用数据节点上的 BACKUP 块来完成分布式任务,例如全局检查点和系统重启。

此块实现为 Dbdih 类,其定义可以在文件 storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp 中找到。