25.5.3 ndbmtd — Демон узла данных кластера NDB (многопоточная версия)
ndbmtd — это многопоточная версия ndbd, процесса, который используется для обработки всех данных в таблицах, использующих NDBCLUSTER движок хранения. ndbmtd предназначен для использования на хост-компьютерах с несколькими ядрами процессора. За исключением случаев, о которых сказано иначе, ndbmtd работает так же, как ndbd; поэтому в этом разделе мы сосредоточимся на способах, которыми ndbmtd отличается от ndbd, и вы можете обратиться к Разделу 25.5.1, «ndbd — Демон узла данных кластера NDB» для получения дополнительной информации о запуске узлов данных кластера NDB, которая применима как к однопоточной, так и к многопоточной версии процесса узла данных.
Командные параметры и параметры конфигурации, используемые с ndbd, также применяются к ndbmtd. Более подробную информацию об этих параметрах и параметрах см. в Разделе 25.5.1, «ndbd — Демон узла данных кластера NDB» и Разделе 25.4.3.6, «Определение узлов данных кластера NDB» соответственно.
ndbmtd также совместим с файловой системой с ndbd. Другими словами, узел данных, работающий с ndbd, может быть остановлен, двоичный файл заменён на ndbmtd, а затем перезапущен без потери данных. (Однако, делая это, необходимо убедиться, что MaxNoOfExecutionThreads имеет соответствующее значение перед перезапуском узла, если вы хотите, чтобы ndbmtd работал в многопоточном режиме.) Аналогично, двоичный файл ndbmtd может быть заменён на ndbd просто путём остановки узла и последующего запуска ndbd вместо многопоточного двоичного файла. При переключении между ними нет необходимости запускать двоичный файл узла данных с помощью --initial.
Использование ndbmtd отличается от использования ndbd в двух ключевых аспектах:
Поскольку ndbmtd по умолчанию работает в однопоточном режиме (то есть он ведет себя как ndbd), необходимо настроить его на использование нескольких потоков. Это можно сделать, установив соответствующее значение в файле
config.iniдля параметра конфигурацииMaxNoOfExecutionThreadsили параметра конфигурацииThreadConfig. ИспользованиеMaxNoOfExecutionThreadsпроще, ноThreadConfigпредоставляет большую гибкость. Более подробную информацию об этих параметрах конфигурации и их использовании см. в Параметрах конфигурации многопоточности (ndbmtd).Файлы трассировки генерируются критическими ошибками в процессах ndbmtd несколько иначе, чем при сбоях ndbd. Эти различия обсуждаются более подробно в следующих абзацах.
Как и ndbd, ndbmtd генерирует набор файлов журнала, которые размещаются в каталоге, указанном в DataDir в файле конфигурации config.ini. За исключением файлов трассировки, они генерируются таким же образом и имеют такие же имена, как и те, которые генерирует ndbd.
В случае критической ошибки ndbmtd генерирует файлы трассировки, описывающие события, непосредственно предшествовавшие возникновению ошибки. Эти файлы, которые можно найти в каталоге данных узла данных DataDir, полезны для анализа проблем командами разработки и поддержки кластера NDB. Для каждого потока ndbmtd генерируется один файл трассировки. Имена этих файлов имеют следующий шаблон:
ndb_node_id_trace.log.trace_id_tthread_id,
В этом шаблоне node_id представляет собой уникальный идентификатор узла данных в кластере, trace_id — номер последовательности трассировки, а thread_id — идентификатор потока. Например, в случае сбоя процесса ndbmtd, выполняющегося как узел данных кластера NDB с идентификатором узла 3 и значением MaxNoOfExecutionThreads, равным 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. См. Сообщения об ошибках узла данных для списка этих сообщений.
Возможна одновременная работа ndbd и ndbmtd на разных узлах данных в одном кластере NDB. Однако такие конфигурации не были полностью протестированы, поэтому на данный момент мы не рекомендуем их использовать в рабочей среде.
© 2025 Oracle
Licensed under the GPLv2 License.