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