25.5.3 ndbmtd — Демон узла данных кластера NDB (многопоточный)
ndbmtd — это многопоточная версия ndbd, процесса, который используется для обработки всех данных в таблицах с использованием NDBCLUSTER движка хранения. ndbmtd предназначен для использования на компьютерах-хостах с несколькими ядрами процессора. За исключением случаев, когда указано иное, ndbmtd работает так же, как и ndbd; поэтому в этом разделе мы сосредоточимся на способах, которыми ndbmtd отличается от ndbd, а для получения дополнительной информации о запуске узлов данных кластера NDB, которая применима как к однопоточной, так и к многопоточной версиям процесса узла данных, см. Раздел 25.5.1, «ndbd — Демон узла данных кластера 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.