NDB Cluster Internals  /  NDB Kernel Blocks  /  The DBACC Block

4.3 The DBACC Block

Also referred to as the ACC block, this is the access control and lock management module. It is also responsible for storing primary key and unique key hash indexes are stored. This block is found in storage/ndb/src/kernel/blocks/dbacc, which contains the following files:

  • Dbacc.hpp: Defines the Dbacc class, along with structures for operation, scan, table, and other records.

  • DbaccInit.cpp: Dbacc class constructor and destructor; methods for initialising data and records.

  • DbaccMain.cpp: Implements Dbacc class methods.

The ACC block handles database index structures, which are stored in 8K pages. Database locks are also handled in the ACC block.

When a new tuple is inserted, the TUP block stores the tuple in a suitable space and returns an index (a reference to the address of the tuple in memory). ACC stores both the primary key and this tuple index of the tuple in a hash table.

Like the TUP block, the ACC block implements part of the checkpoint protocol. It also performs undo logging. It is implemented by the Dbacc class, which is defined in storage/ndb/src/kernel/blocks/dbacc/DbaccMain.hpp.

DBQACC is a subtype of this block, used for query and recovery threads, added in NDB 8.0.23.

See also Section 4.10, “The DBTUP Block”.