Spec-Zone.ru › MySQL 9.2

25.4.3.12 Соединения NDB Cluster в общей памяти

Общение между узлами кластера NDB обычно осуществляется с использованием TCP/IP. Транспортный механизм общей памяти (SHM) отличается тем, что сигналы передаются путем записи в память, а не в сокет. Транспортный механизм общей памяти (SHM) может повысить производительность, снизив до 20% накладных расходов, необходимых для подключения TCP при совместной работе узла API (обычно узла SQL) и узла данных на одном хосте. Вы можете включить подключение через общую память одним из двух способов:

  • Установив параметр конфигурации узла данных UseShm в значение 1, и установив HostName для узла данных и HostName для узла API в одинаковое значение.

  • Используя секции [shm] в файле конфигурации кластера, каждая из которых содержит настройки для NodeId1 и NodeId2. Этот метод более подробно описан далее в этом разделе.

Предположим, в кластере работает узел данных с идентификатором узла 1 и узел SQL с идентификатором узла 51 на одном компьютере с хостом 10.0.0.1. Для включения соединения SHM между этими двумя узлами необходимо убедиться, что в файле конфигурации кластера включены следующие записи:

[ndbd]
NodeId=1
HostName=10.0.0.1
UseShm=1

[mysqld]
NodeId=51
HostName=10.0.0.1
Важно

Эти две записи дополняют любые другие записи и параметры настроек, необходимые для кластера. Более подробный пример показан далее в этом разделе.

Перед запуском узлов данных, использующих подключения SHM, также необходимо убедиться, что операционная система на каждом компьютере, на котором размещен такой узел данных, выделяет достаточно памяти для сегментов общей памяти. Сведения об этом см. в документации к вашей операционной системе. В конфигурациях, где на нескольких хостах работает по одному узлу данных и одному узлу API, можно включить общую память на всех таких хостах, установив UseShm в секции [ndbd default] файла конфигурации. Это показано в примере далее в этом разделе.

Хотя это и не строго обязательно, настройку всех подключений SHM в кластере можно выполнить, установив один или несколько следующих параметров в секции [shm default] файла конфигурации кластера (config.ini):

  • ShmSize: Размер общей памяти

  • ShmSpinTime: Время в мкс ожидания вращения перед переходом в режим сна

  • SendBufferMemory: Размер буфера для сигналов, отправленных с данного узла, в байтах.

  • SendSignalId: Указывает, что идентификатор сигнала включен в каждый сигнал, отправленный через транспортный механизм.

  • Checksum: Указывает, что контрольная сумма включена в каждый сигнал, отправленный через транспортный механизм.

  • PreSendChecksum: Проверка контрольной суммы выполняется до отправки сигнала; Контрольная сумма также должна быть включена для работы этой функции

В этом примере показана простая настройка с подключениями SHM, определенными на нескольких хостах в NDB Cluster, используя 3 компьютера, указанные здесь по имени хоста, на которых размещены указанные типы узлов:

  1. 10.0.0.0: Сервер управления

  2. 10.0.0.1: Узел данных и узел SQL

  3. 10.0.0.2: Узел данных и узел SQL

В этом сценарии каждый узел данных общается с сервером управления и другим узлом данных с помощью транспортных механизмов TCP; каждый узел SQL использует транспортный механизм общей памяти для общения с локальными узлами данных и транспортный механизм TCP для общения с удаленным узлом данных. Базовая конфигурация, отражающая эту установку, активируется файлом config.ini, содержимое которого показано здесь:

[ndbd default]
DataDir=/path/to/datadir
UseShm=1

[shm default]
ShmSize=8M
ShmSpintime=200
SendBufferMemory=4M

[tcp default]
SendBufferMemory=8M

[ndb_mgmd]
NodeId=49
Hostname=10.0.0.0
DataDir=/path/to/datadir

[ndbd]
NodeId=1
Hostname=10.0.0.1
DataDir=/path/to/datadir

[ndbd]
NodeId=2
Hostname=10.0.0.2
DataDir=/path/to/datadir

[mysqld]
NodeId=51
Hostname=10.0.0.1

[mysqld]
NodeId=52
Hostname=10.0.0.2

[api]
[api]

Параметры, влияющие на все транспортные механизмы общей памяти, задаются в секции [shm default]; эти параметры могут быть переопределены на уровне каждого соединения в одной или нескольких секциях [shm]. Каждая такая секция должна быть связана с определенным подключением SHM с использованием NodeId1 и NodeId2; необходимые значения для этих параметров — идентификаторы узлов двух узлов, соединенных транспортным механизмом. Вы также можете идентифицировать узлы по имени хоста, используя HostName1 и HostName2, но эти параметры не являются обязательными.

Узлы API, для которых не заданы имена хостов, используют транспортный механизм TCP для общения с узлами данных независимо от хостов, на которых они запущены; параметры и значения, заданные в секции [tcp default] файла конфигурации, применяются ко всем транспортным механизмам TCP в кластере.

Для оптимальной производительности можно определить время ожидания для транспортного механизма SHM (ShmSpinTime); это влияет как на поток приема узла данных, так и на поток опроса (потока приема или пользовательского потока) в NDB.

  • Checksum

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы boolean
    Значение по умолчанию true
    Диапазон true, false
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Этот параметр является булевым (Y/N) параметром, который по умолчанию отключен. Когда он включен, контрольные суммы для всех сообщений вычисляются перед размещением в буфере отправки.

    Эта функция предотвращает повреждение сообщений во время ожидания в буфере отправки. Она также служит проверкой на предмет повреждения данных во время передачи.

  • Group

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы unsigned
    Значение по умолчанию 35
    Диапазон 0 - 200
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Определяет близость группы; меньшее значение интерпретируется как более близкое. Значение по умолчанию достаточно для большинства условий.

  • HostName1

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы name or IP address
    Значение по умолчанию [...]
    Диапазон ...
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Параметры HostName1 и HostName2 могут использоваться для указания конкретных сетевых интерфейсов, которые будут использоваться для данного соединения SHM между двумя узлами. Значения, используемые для этих параметров, могут быть именами хостов или IP-адресами.

  • HostName2

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы name or IP address
    Значение по умолчанию [...]
    Диапазон ...
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Параметры HostName1 и HostName2 могут использоваться для указания конкретных сетевых интерфейсов, которые будут использоваться для данного соединения SHM между двумя узлами. Значения, используемые для этих параметров, могут быть именами хостов или IP-адресами.

  • NodeId1

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы numeric
    Значение по умолчанию [none]
    Диапазон 1 - 255
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Для идентификации соединения между двумя узлами необходимо указать идентификаторы узлов для каждого из них, как NodeId1 и NodeId2.

  • NodeId2

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы numeric
    Значение по умолчанию [none]
    Диапазон 1 - 255
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Для идентификации соединения между двумя узлами необходимо указать идентификаторы узлов для каждого из них, как NodeId1 и NodeId2.

  • NodeIdServer

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы numeric
    Значение по умолчанию [none]
    Диапазон 1 - 63
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Идентифицирует серверный конец соединения общей памяти. По умолчанию это идентификатор узла узла данных.

  • OverloadLimit

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы bytes
    Значение по умолчанию 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Когда в буфере отправки находится больше, чем указанное количество неотправленных байтов, соединение считается перегруженным. См. Раздел 25.4.3.14, «Настройка параметров буфера отправки кластера NDB», и Раздел 25.6.17.66, «Таблица ndbinfo transporters» для получения дополнительной информации.

  • PreSendChecksum

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы boolean
    Значение по умолчанию false
    Диапазон true, false
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Если этот параметр и Checksum включены, выполните предварительные проверки контрольных сумм перед отправкой и проверьте все сигналы SHM между узлами на наличие ошибок. Не оказывает никакого влияния, если Checksum также не включен.

  • SendBufferMemory

    Версия (или более поздняя) NDB 9.2.0
    Тип или единицы integer
    Значение по умолчанию 2M
    Диапазон 256K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска

    Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)

    Размер (в байтах) буфера общей памяти для сигналов, отправляемых с этого узла с использованием соединения общей памяти.

  • SendSignalId

    Version (or later) NDB 9.2.0
    Type or units boolean
    Default false
    Range true, false
    Restart Type

    Перезапуск узла: Требуется поэтапный перезапуск кластера. (NDB 9.2.0)

    Для отслеживания пути распределённого сообщения необходимо предоставить каждому сообщению уникальный идентификатор. Установка этого параметра в значение Y приводит к тому, что эти идентификаторы сообщений также передаются по сети. Эта функция по умолчанию отключена в производственных сборках и включена в -debug сборках.

  • ShmKey

    Version (or later) NDB 9.2.0
    Type or units unsigned
    Default 0
    Range 0 - 4294967039 (0xFFFFFEFF)
    Restart Type

    Перезапуск узла: Требуется поэтапный перезапуск кластера. (NDB 9.2.0)

    При настройке сегментов общей памяти используется идентификатор узла, выраженный как целое число, для уникальной идентификации сегмента общей памяти, используемого для связи. Значение по умолчанию отсутствует. Если UseShm включен, ключ общей памяти вычисляется автоматически NDB.

  • ShmSize

    Version (or later) NDB 9.2.0
    Type or units bytes
    Default 4M
    Range 64K - 4294967039 (0xFFFFFEFF)
    Restart Type

    Перезапуск узла: Требуется поэтапный перезапуск кластера. (NDB 9.2.0)

    Каждый SHM-соединение имеет сегмент общей памяти, куда сообщения между узлами помещаются отправителем и читаются получателем. Размер этого сегмента определяется параметром ShmSize. Значение по умолчанию равно 4 МБ.

  • ShmSpinTime

    Version (or later) NDB 9.2.0
    Type or units integer
    Default 0
    Range 0 - 2000
    Restart Type

    Перезапуск узла: Требуется поэтапный перезапуск кластера. (NDB 9.2.0)

    Время ожидания перед переходом в состояние сна при получении, в микросекундах.

  • SigNum

    Version (or later) NDB 9.2.0
    Type or units unsigned
    Default [...]
    Range 0 - 4294967039 (0xFFFFFEFF)
    Deprecated Да (в NDB 7.6)
    Restart Type

    Перезапуск узла: Требуется поэтапный перезапуск кластера. (NDB 9.2.0)

    Этот параметр ранее использовался для переопределения номеров сигналов операционной системы; в NDB 9.2 он больше не используется, и любое значение для него игнорируется.

Типы перезапуска. Информация о типах перезапуска, используемых в описаниях параметров в этом разделе, показана в следующей таблице:

Таблица 25.21 Типы перезапуска NDB кластера

Таблица 25.21 Типы перезапуска NDB кластера
Символ Тип перезапуска Описание
N Узел Параметр может быть обновлен с помощью поэтапного перезапуска (см. Раздел 25.6.5, «Выполнение поэтапного перезапуска кластера NDB»)
S Система Для изменения этого параметра необходимо полностью остановить все узлы кластера и затем перезапустить их.
I Начальный Узлы данных необходимо перезапустить с использованием параметра --initial

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/mysql-cluster-shm-definition.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API