NDB 集群内部  /  NDB 内核块  /  QMGR 模块

4.17 QMGR 模块

这是逻辑集群管理块,使用心跳机制处理集群中的节点成员资格。 QMGR 负责在数据节点发生故障时轮询数据节点,并确定节点是否已实际故障,应将其从集群中删除。 该块包含以下文件,位于 storage/ndb/src/kernel/blocks/qmgr

  • Qmgr.hpp: 定义 Qmgr 类和相关结构,包括用于检测节点故障和集群分区问题的结构。

  • QmgrInit.cpp: 实现 Qmgr 的数据和记录初始化方法,以及其析构函数。

  • QmgrMain.cpp: 包含用于监控心跳、检测和处理 脑裂 问题以及管理某些启动阶段的例程。

  • timer.hpp: 定义 Timer 类,由 NDB 用于独立于系统时钟进行严格的计时。

该块还辅助数据节点启动的早期阶段。

QMGR 模块由 Qmgr 类实现,其定义位于文件 storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp 中。