NDB Cluster Internals  /  NDB Kernel Blocks  /  The DBDICT Block

4.4 The DBDICT Block

This block, the data dictionary block, is found in storage/ndb/src/kernel/blocks/dbdict. Data dictionary information is replicated to all DICT blocks in the cluster. This is the only block other than DBTC to which applications can send direct requests.

DBDICT is responsible for managing metadata (using the master data node) including the definitions for tables, columns, indexes, tablespaces, log files, log file groups, and other data objects.

This block is implemented in the following files:

  • CreateIndex.txt: Contains notes about processes for creating, altering, and dropping indexes and triggers.

  • Dbdict.cpp: Implements structure for event metadata records (for NDB$EVENTS_0), as well as methods for system start and restart, table and schema file handling, and packing table data into pages. Functionality for determining node status and handling node failures is also found here. In addition, this file implements data and other initialisation routines for Dbdict.

  • DictLock.txt: Implementation notes: Describes locking of the master node's DICT against schema operations.

  • printSchemaFile.cpp: Contains the source for the ndb_print_schema_file utility.

  • Slave_AddTable.sfl: A signal log trace of a table creation operation for DBDICT on a nonmaster node.

  • CreateTable.txt: Notes outlining the table creation process (dated).

  • CreateTable.new.txt: Notes outlining the table creation process (updated version of CreateTable.txt).

  • Dbdict.hpp: Defines the Dbdict class; also creates the NDB$EVENTS_0 table. Also defines a number of structures such as table and index records, as well as for table records.

  • DropTable.txt: Implementation notes for the process of dropping a table.

  • Dbdict.txt: Implementation notes for creating and dropping events and NdbEventOperation objects.

  • Event.txt: A copy of Dbdict.txt.

  • Master_AddTable.sfl: A signal log trace of a table creation operation for DBDICT on the master node.

  • SchemaFile.hpp: Defines the structure of a schema file.