NDB Cluster Internals  /  ...  /  NDB Cluster Data Node File System Directory

1.1.2 NDB Cluster Data Node File System Directory

The location of this directory can be set using FileSystemPath; the directory itself is always named ndb_nodeid_fs, where nodeid is the data node's node ID. The file system directory contains the following directories:

  • Directories named D1 and D2, each of which contains 2 subdirectories:

    • DBDICT: Contains data dictionary information. This is stored in:

      • The file P0.SchemaLog

      • A set of directories T0, T1, T2, ..., each of which contains an S0.TableList file.

    • Directories named D8, D9, D10, and D11, each of which contains a directory named DBLQH. These contain the redo log, which is divided into four parts that are stored in these directories. with redo log part 0 being stored in D8, part 1 in D9, and so on.

      Within each directory can be found a DBLQH subdirectory containing the N redo log files; these are named S0.Fraglog, S1.FragLog, S2.FragLog, ..., SN.FragLog, where N is equal to the value of the NoOfFragmentLogFiles configuration parameter. The default value for NoOfFragmentLogFiles is 16. The default size of each of these files is 16 MB, controlled by the FragmentLogFileSize configuration parameter.

      The size of each of the four redo log parts is NoOfFragmentLogFiles * FragmentLogFileSize. You can find out how much space the redo log is using with DUMP 2398 or DUMP 2399.

    • DBDIH: This directory contains the file PX.sysfile, which records information such as the last GCI, restart status, and node group membership of each node; its structure is defined in storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp in the NDB Cluster source tree. In addition, the SX.FragList files keep records of the fragments belonging to each table.

      The format used for the sysfile was updated from version 1 to version 2 in NDB 8.0.

    • LCP: When using full local checkpoints (LCPs), this directory holds 2 subdirectories, named 0 and 1, each of which which contain local checkpoint data files, one per local checkpoint. In NDB 7.6 (and later), when using partial LCPs (EnablePartialLcp set to true), there can be as many as 2064 subdirectories under LCP, named 0, 1, 2, ..., 2063, with a data file stored in each one. These directories are created as needed, in sequential order; for example, if the last data file used in the previous partial LCP was numbered 61 (in LCP/61), the next partial LCP data file is created in LCP/62.

      These subdirectories each contain a number of files whose names follow the pattern TNFM.Data, where N is a table ID and M is a fragment number. Each data node typically has one primary fragment and one backup fragment. This means that, for an NDB Cluster having 2 data nodes, and with NoOfReplicas equal to 2, M is either 0 or 1. For a 4-node cluster with NoOfReplicas equal to 2, M is either 0 or 2 on node group 1, and either 1 or 3 on node group 2.

      For a partial local checkpoint, a single data file is normally used, but when more than 12.5% of the table rows stored are to be checkpointed up to 8 data files can be used for each LCP. Altogether, there can be from 1 to 2048 data files at any given time.

      When using ndbmtd there may be more than one primary fragment per node. In this case, M is a number in the range of 0 to the number of LQH worker threads in the entire cluster, less 1. The number of fragments on each data node is equal to the number of LQH on that node times NoOfReplicas.


      Increasing MaxNoOfExecutionThreads does not change the number of fragments used by existing tables; only newly-created tables automatically use the new fragment count. To force the new fragment count to be used by an existing table after increasing MaxNoOfExecutionThreads, you must perform an ALTER TABLE ... REORGANIZE PARTITION statement (just as when adding new node groups).

  • LG: Default location for Disk Data undo log files. See Section 1.1.4, “Files Used by NDB Cluster Disk Data Tables”, NDB Cluster Disk Data Tables, and CREATE LOGFILE GROUP Statement, for more information.

  • TS: Default location for Disk Data tablespace data files. See Section 1.1.4, “Files Used by NDB Cluster Disk Data Tables”, NDB Cluster Disk Data Tables, and CREATE TABLESPACE Statement, for more information.