This is the local, low-level query handler block, which manages
data and transactions local to the cluster's data nodes, and
acts as a coordinator of 2-phase commits. It is responsible
(when called on by the transaction coordinator) for performing
operations on tuples, accomplishing this task with help of
DBACC block (which manages the index
DBTUP (which manages the
tuples). It is made up of the following files, found in
Dblqh.hpp: Contains the
Dblqh class definition. The code itself
includes the following modules:
Start/Restart Module. This module handles the following start phases:
Start phase 1. Load block reference and processor ID
Start phase 2.
Initiate all records within the block; connect
Start phase 4.
LQH with every
LQH in the database
system. For an initial start, create the fragment
log files. For a system restart or node restart,
open the fragment log files and find the end of
the log files.
Fragment addition and deletion module. Used by the data dictionary to create new fragments and delete old fragments.
This module handles the reception of
LQHKEYREQ messages and all
processing of operations on behalf of this request.
This also involves reception of various types of
KEYINFO messages, as well as
The log module handles the reading and writing of the
log. It is also responsible for handling system
restarts, and controls system restart in
Tramsaction module. This module handles the commit and completion phases.
TC failure module. Handles failures in the transaction coordinator.
This module contains the code that handles a scan of a
particular fragment. It operates under the control of
the transaction coordinator and orders
ACC to perform a scan of all tuples
in the fragment.
TUP performs the
necessary search conditions to insure that only valid
tuples are returned to the application.
Node recovery module. This is used when a node has failed, copying the effected fragment to a new fragment replica. It also shuts down all connections to the failed node.
This module handles execution and control of local
ACC. It also interacts with
DIH to determine which global
checkpoints are recoverable.
Global checkpoint module.
DIH in discovering when
GCPs are recoverable, and handles the
GCP_SAVEREQ message requesting that
LQH save a given GCP to disk and
provide a notification of when this has been done.
File handling module. This includes a number of sub-modules:
System restart, Phase 1
System restart, Phase 2
System restart, Phase 3
System restart, Phase 4
Dblqh records and data. Also includes the
Dblqh class destructor, used for
Dblqh functionality (class methods).
This directory also has the files listed here in a
redoLogReader subdirectory containing
the sources for the ndbd_redo_log_reader
ndbd_redo_log_reader — Check and Print Content of Cluster Redo Log):
This block also handles redo logging, and helps oversee the
It is implemented as the class
in the file