NDB 集群内部  /  NDB 内核块  /  DBACC 块

4.3 DBACC 块

也称为 ACC 块,它是访问控制和锁管理模块。它还负责存储主键和唯一键哈希索引。此块位于 storage/ndb/src/kernel/blocks/dbacc 中,包含以下文件

  • Dbacc.hpp: 定义了 Dbacc 类,以及操作、扫描、表和其他记录的结构。

  • DbaccInit.cpp: Dbacc 类构造函数和析构函数;用于初始化数据和记录的方法。

  • DbaccMain.cpp: 实现 Dbacc 类方法。

ACC 块处理数据库索引结构,这些结构存储在 8K 页面中。数据库锁也在 ACC 块中处理。

当插入新元组时,TUP 块将元组存储在适当的空间中,并返回一个索引(对内存中元组地址的引用)。ACC 在哈希表中存储元组的主键和该元组的索引。

TUP 块类似,ACC 块实现了检查点协议的一部分。它还执行撤消日志记录。它由 Dbacc 类实现,该类在 storage/ndb/src/kernel/blocks/dbacc/DbaccMain.hpp 中定义。

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

另请参阅 第 4.10 节“DBTUP 块”.