NDB 集群内部结构  /  NDB 内核块  /  DBDICT 块

4.4 DBDICT 块

此块,即数据字典块,位于 storage/ndb/src/kernel/blocks/dbdict 中。数据字典信息被复制到集群中的所有 DICT 块。这是除 DBTC 之外唯一可以接收应用程序直接请求的块。

DBDICT 负责管理元数据(使用主数据节点),包括表、列、索引、表空间、日志文件、日志文件组和其他数据对象的定义。

此块在以下文件中实现

  • CreateIndex.txt:包含有关创建、更改和删除索引和触发器的过程的说明。

  • Dbdict.cpp:实现了事件元数据记录的结构(用于 NDB$EVENTS_0),以及用于系统启动和重启、表和模式文件处理以及将表数据打包到页面中的方法。此处还提供了确定节点状态和处理节点故障的功能。此外,此文件还实现了 Dbdict 的数据和其他初始化例程。

  • DictLock.txt:实现说明:描述了针对模式操作锁定主节点的 DICT

  • printSchemaFile.cpp:包含 ndb_print_schema_file 实用程序的源代码。

  • Slave_AddTable.sfl:在非主节点上为 DBDICT 创建表的信号日志跟踪。

  • CreateTable.txt:概述表创建过程的注释(已过时)。

  • CreateTable.new.txt:概述表创建过程的注释(CreateTable.txt 的更新版本)。

  • Dbdict.hpp:定义了 Dbdict 类;还创建了 NDB$EVENTS_0 表。还定义了许多结构,例如表和索引记录,以及表记录。

  • DropTable.txt:删除表过程的实现说明。

  • Dbdict.txt:有关创建和删除事件和 NdbEventOperation 对象的实现说明。

  • Event.txtDbdict.txt 的副本。

  • Master_AddTable.sfl:在主节点上为 DBDICT 创建表的信号日志跟踪。

  • SchemaFile.hpp:定义模式文件的结构。