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 theDbacc
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
: ImplementsDbacc
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”.