4.7 DBLQH 块

这是本地的低级查询处理程序块,它管理集群数据节点本地的数据和事务,并充当两阶段提交的协调器。它负责(当被事务协调器调用时)对元组执行操作,在 DBACC块(管理索引结构)和块( DBTUP管理元组)的帮助下完成此任务。它由以下文件组成,位于 storage/ndb/src/kernel/blocks/dblqh

  • Dblqh.hpp:包含 Dblqh类定义。代码本身包括以下模块:

    • 启动/重启模块。  该模块处理以下启动阶段:

      • 开始阶段 1.  加载块引用和处理器 ID

      • 启动阶段 2.  启动块内的所有记录;连接 LQHACC_ TUP

      • 开始阶段 4。 在数据库系统中 相互连接 LQHLQH对于初始启动,创建片段日志文件。对于系统重启或节点重启,打开片段日志文件并找到日志文件的末尾。

    • 分片增删模块。  由数据字典用于创建新片段和删除旧片段。

    • 执行模块。  该模块 LQHKEYREQ代表该请求处理消息的接收和所有操作处理。这还涉及接收各种类型的 ATTRINFOKEYINFO消息,以及与ACC和 的通信TUP

    • 日志模块。  日志模块处理日志的读写。它还负责处理系统重启,并控制系统 TUP重启ACC

    • 交易模块。  该模块处理提交和完成阶段。

    • TC 故障模块。  处理事务协调器中的故障。

    • 扫描模块。  该模块包含处理特定片段扫描的代码。它在事务协调器的控制下运行,并命令 ACC对片段中的所有元组执行扫描。TUP执行必要的搜索条件以确保只有有效的元组返回给应用程序。

    • 节点恢复模块。  这在节点发生故障时使用,将受影响的片段复制到新的片段副本。它还会关闭与故障节点的所有连接。

    • 液晶模组。  该模块处理 和 中本地检查点的执行和TUP 控制ACC。它还与DIH 确定哪些全局检查点是可恢复的进行交互。

    • 全局检查点模块。  协助DIH发现 GCP 何时可恢复,并处理 GCP_SAVEREQ请求 LQH将给定 GCP 保存到磁盘的消息,并在完成此操作时提供通知。

    • 文件处理模块。  这包括许多子模块:

      • 信号接收

      • 普通手术

      • 文件变更

      • 初始启动

      • 系统重启,第 1 阶段

      • 系统重启,第 2 阶段

      • 系统重启,第 3 阶段

      • 系统重启,第 4 阶段

      • 错误

  • DblqhInit.cpp:初始化 Dblqh记录和数据。还包括 Dblqh类析构函数,用于释放这些。

  • DblqhMain.cpp:实现 Dblqh功能(类方法)。

  • 此目录还在 包含ndb_redo_log_readerredoLogReader实用程序源的子目录中列出了此处的文件 :

    • records.cpp

    • records.hpp

    • redoLogFileReader.cpp

此块还处理重做日志记录,并帮助监督 DBACCDBTUPLGMANTSMANPGMANBACKUP块。它作为类实现Dblqh,在文件中定义 storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp

DBQLQH是此块的子类型,用于查询和恢复线程,在 NDB 8.0.23 中添加。