ndbmtd は ndbd のマルチスレッドバージョンであり、NDBCLUSTER
ストレージエンジンを使用してテーブル内のすべてのデータを処理するために使用するプロセスです。ndbmtd は複数の CPU コアを持つホストコンピュータで使用することが意図されています。特に記載されていない場合、ndbmtd は ndbd と同様に機能します。このため、このセクションでは、ndbmtd が ndbd と異なる点に重点を置き、シングルスレッドバージョンとマルチスレッドバージョンの両方のデータノードプロセスに該当する MySQL Cluster のデータノードの実行の詳細については、セクション18.4.1「ndbd — MySQL Cluster データノードデーモン」を参照してください。
ndbd で使用されるコマンド行オプションおよび構成パラメータは、ndbmtd にも当てはまります。これらのオプションおよびパラメータについては、それぞれセクション18.4.1「ndbd — MySQL Cluster データノードデーモン」およびセクション18.3.2.6「MySQL Cluster データノードの定義」を参照してください。
また、ndbmtd は ndbd とファイルシステム互換です。言い換えると、ndbd を実行しているデータノードを停止し、バイナリを ndbmtd に置き換えて、データ損失なしに再起動できます(ただし、これを行うときに、ndbmtd をマルチスレッドで実行する場合は、ノードを再起動する前に、MaxNoOfExecutionThreads
に適切な値が設定されていることを確認する必要があります)。同様に、ノードを停止して、マルチスレッドバイナリの代わりに ndbd を開始することによって、ndbmtd バイナリを ndbd に置き換えることができます。これらの 2 つを切り替えるときに、--initial
を使用してデータノードバイナリを開始する必要はありません。
ndbmtd を使用した場合は、ndbd を使用した場合と 2 つの重要な点で異なります。
ndbmtd はデフォルトではシングルスレッドモードで実行されるため (つまり、ndbd のように動作します)、マルチスレッドを使用するように構成する必要があります。これを行うには、
config.ini
ファイルのMaxNoOfExecutionThreads
構成パラメータまたはThreadConfig
構成パラメータに適切な値を設定します。MaxNoOfExecutionThreads
は簡単に使用できますが、ThreadConfig
にはより柔軟性があります。これらの構成パラメータおよびその使用方法については、マルチスレッドの構成パラメータ (ndbmtd)を参照してください。トレースファイルは ndbmtd プロセスで重大なエラーが発生したときに生成されますが、ndbd で障害が発生したときにこれらが生成される仕組みとは若干異なります。これらの相違については、次のいくつかの段落で説明します。
ndbd と同様に、ndbmtd は config.ini
構成ファイルの DataDir
で指定されたディレクトリに配置される一連のログファイルを生成します。トレースファイルを除き、これらは ndbd で生成されるものと同様に生成され、同じ名前が付けられます。
重大なエラーが発生した場合、ndbmtd はエラーが発生する直前に発生した事象を示すトレースファイルを生成します。データノードの DataDir
にあるこれらのファイルは、MySQL Cluster の開発チームおよびサポートチームが問題を分析するために役に立ちます。各 ndbmtd スレッドに対して 1 つのトレースファイルが生成されます。これらのファイルの名前には次のパターンがあります。
ndb_node_id_trace.log.trace_id_tthread_id,
このパターンで、node_id
はクラスタ内のデータノード一意のノード ID を表し、trace_id
はトレースシーケンス番号であり、thread_id
はスレッド ID です。たとえば、ノード ID が 3 であり、MaxNoOfExecutionThreads
が 4 である MySQL Cluster データノードとして実行されている ndbmtd プロセスで障害が発生した場合は、4 つのトレースファイルがデータノードのデータディレクトリに生成されます。このノードで障害が発生したのがはじめてであった場合、これらのファイルには ndb_3_trace.log.1_t1
、ndb_3_trace.log.1_t2
、ndb_3_trace.log.1_t3
、および ndb_3_trace.log.1_t4
と名前が付けられます。内部的には、これらのトレースファイルは ndbd トレースファイルと同じ形式です。
データノードプロセスが予期せずに停止されたときに生成される ndbd の終了コードおよびメッセージは、ndbmtd でも使用されます。これらのリストについては、Data Node Error Messagesを参照してください。
同じ MySQL Cluster の異なるデータノードで ndbd および ndbmtd を同時に使用できます。ただし、そのような構成は十分にテストされていないため、現時点で本番設定でこれを行うことはお勧めできません。