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

1.1.2 NDB Cluster Data Node File System Directory Files

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 files and directories:


  • data-nodeid.dat

  • undo-nodeid.dat


  • LCP: This directory holds 2 subdirectories, named 0 and 1, each of which which contain local checkpoint data files, one per local checkpoint.

    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 to 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.

    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).

  • 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.