This block provides data distribution (partitioning) management
services. It is responsible for maintaining data fragments and
replicas, handling of local and global checkpoints; it also
manages node and system restarts. It contains the following
files, all found in the directory
storage/ndb/src/kernel/blocks/dbdih
:
Dbdih.hpp
.
This file contains the definition of the
Dbdih
class, as well as the
FileRecordPtr
type, which is used to
keep storage information about a fragment and its
replicas. If a fragment has more than one backup
replica, then a list of the additional ones is attached
to this record. This record also stores the status of
the fragment, and is 64-byte aligned.
DbdihMain.cpp
.
Contains definitions of Dbdih
class
methods.
printSysfile/printSysfile.cpp
.
Older version of the
printSysfile.cpp
in the main
dbdih
directory.
DbdihInit.cpp
.
Initializes Dbdih
data and records;
also contains the class destructor.
LCP.txt
.
Contains developer noted about the exchange of messages
between DIH
and
LQH
that takes place during a local
checkpoint.
printSysfile.cpp
.
This file contains the source code for
ndb_print_sys_file. For information
about using this utility, see
ndb_print_sys_file.
Sysfile.hpp
.
Contains the definition of the
Sysfile
structure; in other words,
the format of an NDB
system file. See
Section 6.1, “MySQL Cluster File Systems”, for more
information about NDB
system files.
This block often makes use of BACKUP
blocks
on the data nodes to accomplish distributed tasks, such as
global checkpoints and system restarts.
This block is implemented as the Dbdih class, whose definition
may be found in the file
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp
.