这是本地的低级查询处理程序块,它管理集群数据节点本地的数据和事务,并充当两阶段提交的协调器。它负责(当被事务协调器调用时)对元组执行操作,在
DBACC
块(管理索引结构)和块(
DBTUP
管理元组)的帮助下完成此任务。它由以下文件组成,位于
storage/ndb/src/kernel/blocks/dblqh
:
-
Dblqh.hpp
:包含Dblqh
类定义。代码本身包括以下模块:-
启动/重启模块。 该模块处理以下启动阶段:
分片增删模块。 由数据字典用于创建新片段和删除旧片段。
执行模块。 该模块
LQHKEYREQ
代表该请求处理消息的接收和所有操作处理。这还涉及接收各种类型的ATTRINFO
和KEYINFO
消息,以及与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_reader
redoLogReader
实用程序源的子目录中列出了此处的文件 :records.cpp
records.hpp
redoLogFileReader.cpp
此块还处理重做日志记录,并帮助监督
DBACC
、
DBTUP
、
LGMAN
、
TSMAN
、
PGMAN
和
BACKUP
块。它作为类实现Dblqh
,在文件中定义
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
。
DBQLQH
是此块的子类型,用于查询和恢复线程,在 NDB 8.0.23 中添加。