NDB Cluster Internals  /  NDB Kernel Blocks  /  The QMGR Block

4.17 The QMGR Block

This is the logical cluster management block, and handles node membership in the cluster using a heartbeat mechanism. QMGR is responsible for polling the data nodes when a data node failure occurs and determining that the node has actually failed and should be dropped from the cluster. This block contains the following files, found in storage/ndb/src/kernel/blocks/qmgr:

  • Qmgr.hpp: Defines the Qmgr class and associated structures, including those used in detection of node failure and cluster partitioning.

  • QmgrInit.cpp: Implements data and record initilization methods for Qmgr, as well as its destructor.

  • QmgrMain.cpp: Contains routines for monitoring of heartbeats, detection and handling of split-brain problems, and management of some startup phases.

  • timer.hpp: Defines the Timer class, used by NDB to keep strict timekeeping independent of the system clock.

This block also assists in the early phases of data node startup.

The QMGR block is implemented by the Qmgr class, whose definition is found in the file storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp.